37]程序組922包含執(zhí)行在實(shí)施方式中作為“?部”說(shuō)明的功能的程序。程序(例如程序驗(yàn)證程序)由CPU901讀出并執(zhí)行。即,程序使計(jì)算機(jī)作為“?部”發(fā)揮作用,此外,使計(jì)算機(jī)執(zhí)行“?部”的順序或方法。
[0438]文件組923包含由在實(shí)施方式中說(shuō)明“?部”使用的各種數(shù)據(jù)(輸入、輸出、判定結(jié)果、計(jì)算結(jié)果、處理結(jié)果等)。
[0439]在實(shí)施方式中,結(jié)構(gòu)圖和流程圖中包含的箭頭主要表示數(shù)據(jù)或信號(hào)的輸入/輸出。
[0440]使用CPU 901、存儲(chǔ)裝置、輸入裝置、輸出裝置等硬件,執(zhí)行基于流程圖等說(shuō)明的實(shí)施方式的處理。
[0441]在實(shí)施方式中,作為“?部”說(shuō)明的部分可以是“?電路”、“?裝置”、“?設(shè)備”,此夕卜,也可以是“?步驟”、“?順序”、“?處理”。即,作為“?部”說(shuō)明的部分可以由固件、軟件、硬件或它們的組合中的任意一個(gè)來(lái)實(shí)現(xiàn)。
[0442]通過(guò)實(shí)施方式I,例如能夠起到以下的效果。
[0443]程序驗(yàn)證裝置100能夠通過(guò)靜態(tài)分析,發(fā)現(xiàn)并警告如下情況:機(jī)密信息或個(gè)人信息等保護(hù)對(duì)象信息保持明文的形態(tài)或未經(jīng)過(guò)適當(dāng)?shù)募用芊椒ǘ鞒龅匠绦虻耐獠俊?br>[0444]S卩,程序驗(yàn)證裝置100能夠驗(yàn)證:“重要的信息沒(méi)有以明文的形態(tài)從程序輸出到外部”、“在重要的信息被加密的情況下,用于加密的密鑰在程序內(nèi)未被硬編碼(常量化)”。
[0445]此外,能夠防止在對(duì)象程序101是將保護(hù)對(duì)象信息適當(dāng)?shù)丶用芎筝敵龅暮线m程序的情況下,程序驗(yàn)證裝置100作出對(duì)象程序101存在脆弱性這樣的誤診斷。
[0446]加密用或解密用的密鑰和密碼是機(jī)密信息的一例,電話簿、住所、郵件、位置信息和活體信息是個(gè)人信息的一例。
[0447]程序的外部例如是指網(wǎng)絡(luò)、其它程序、文件、數(shù)據(jù)庫(kù)或可移動(dòng)型存儲(chǔ)介質(zhì)等。
[0448]在實(shí)施方式I中,例如對(duì)以下的程序驗(yàn)證裝置(100)進(jìn)行了說(shuō)明。將實(shí)施方式I的結(jié)構(gòu)中對(duì)應(yīng)結(jié)構(gòu)的標(biāo)號(hào)記載在括弧內(nèi)。
[0449]程序驗(yàn)證裝置(100)具有列表存儲(chǔ)部(190)、程序輸入部(110)、輸出變量提取部(122)、密碼變量提取部(123)、密碼狀態(tài)變量提取部(131)、密碼狀態(tài)判定部(140)和驗(yàn)證結(jié)果輸出部(140)。
[0450]所述列表存儲(chǔ)部存儲(chǔ):輸出函數(shù)列表(182),其定義了輸出特定的變量中設(shè)定的信息的輸出函數(shù);以及加密函數(shù)列表(183),其定義了對(duì)信息進(jìn)行加密的加密函數(shù)。
[0451]所述程序輸入部輸入作為驗(yàn)證對(duì)象的程序,作為對(duì)象程序(101) (SllO)。
[0452]所述輸出變量提取部提取由所述對(duì)象程序使用的變量中的、設(shè)定由所述輸出函數(shù)列表中定義的所述輸出函數(shù)輸出的信息作為輸出信息的所述特定的變量,作為輸出變量(S122)。
[0453]所述密碼變量提取部提取由所述對(duì)象程序使用的變量中的、設(shè)定由所述加密函數(shù)列表中定義的所述加密函數(shù)加密后的信息作為密碼信息的變量,作為密碼變量(S123)。
[0454]所述密碼狀態(tài)變量提取部參照所述對(duì)象程序中包含的賦值語(yǔ)句,從所述對(duì)象程序提取被代入由所述密碼變量提取部提取出的所述密碼變量中設(shè)定的所述密碼信息的變量,作為密碼狀態(tài)變量(S200)。
[0455]所述密碼狀態(tài)判定部判定由所述密碼狀態(tài)變量提取部提取出的所述密碼狀態(tài)變量與由所述輸出變量提取部提取出的所述輸出變量是否為相同的變量(S146-1)。
[0456]所述驗(yàn)證結(jié)果輸出部輸出基于所述密碼狀態(tài)判定部的判定結(jié)果的信息,作為所述對(duì)象程序的驗(yàn)證結(jié)果(S147)。
[0457]所述列表存儲(chǔ)部存儲(chǔ)定義了取得作為保護(hù)對(duì)象的保護(hù)對(duì)象信息的信息取得函數(shù)的信息取得函數(shù)列表(181)。
[0458]所述程序驗(yàn)證裝置具有保護(hù)對(duì)象變量提取部(121)和保護(hù)對(duì)象判定部(140)。
[0459]所述保護(hù)對(duì)象變量提取部提取由所述對(duì)象程序使用的變量中的、設(shè)定由所述信息取得函數(shù)列表中定義的所述信息取得函數(shù)取得的所述保護(hù)對(duì)象信息的變量,作為保護(hù)對(duì)象變量(S121)。
[0460]所述保護(hù)對(duì)象判定部判定由所述保護(hù)對(duì)象變量提取部提取出的所述保護(hù)對(duì)象變量與由所述輸出變量提取部提取出的所述輸出變量是否為相同的變量(S145)。
[0461]所述驗(yàn)證結(jié)果輸出部輸出基于所述保護(hù)對(duì)象判定部的判定結(jié)果和所述密碼狀態(tài)判定部的判定結(jié)果的信息,作為所述對(duì)象程序的所述驗(yàn)證結(jié)果(S147)。
[0462]所述程序驗(yàn)證裝置具有密鑰變量提取部(123)和密鑰內(nèi)容判定部(132)。
[0463]所述密鑰變量提取部提取由所述對(duì)象程序使用的變量中的、對(duì)所述加密函數(shù)作為設(shè)定有加密密鑰的變量而指定的變量,作為密鑰變量(S123)。
[0464]所述密鑰內(nèi)容判定部參照所述對(duì)象程序中包含的賦值語(yǔ)句,判定作為所述加密密鑰而被代入由所述密鑰變量提取部提取出的所述密鑰變量的值是否為可變值(S300)。
[0465]所述驗(yàn)證結(jié)果輸出部輸出基于所述密鑰內(nèi)容判定部的判定結(jié)果、所述保護(hù)對(duì)象判定部的判定結(jié)果和所述密碼狀態(tài)判定部的判定結(jié)果的信息,作為所述對(duì)象程序的所述驗(yàn)證結(jié)果(S147) ο
[0466]所述程序驗(yàn)證裝置具有密鑰狀態(tài)判定部(132)。
[0467]所述密鑰狀態(tài)判定部參照所述對(duì)象程序中包含的賦值語(yǔ)句,判定作為所述加密密鑰而被代入由所述密鑰變量提取部提取出的所述密鑰變量的值是否為隱匿值,其中,該隱匿值由于通過(guò)規(guī)定的隱匿運(yùn)算生成而被隱匿(S300)。
[0468]所述驗(yàn)證結(jié)果輸出部輸出基于所述密鑰狀態(tài)判定部的判定結(jié)果、所述密鑰內(nèi)容判定部的判定結(jié)果、所述保護(hù)對(duì)象判定部的判定結(jié)果和所述密碼狀態(tài)判定部的判定結(jié)果的信息,作為所述對(duì)象程序的所述驗(yàn)證結(jié)果(S147)。
[0469]標(biāo)號(hào)說(shuō)明
[0470]100程序驗(yàn)證裝置,101對(duì)象程序,110程序輸入部,120必要信息提取部,121保護(hù)對(duì)象提取部,122輸出函數(shù)提取部,123密碼函數(shù)提取部,124變量信息提取部,130保護(hù)狀態(tài)分析部,131保護(hù)對(duì)象狀態(tài)取得部,132密鑰狀態(tài)取得部,140脆弱性判定部,181信息取得函數(shù)列表,182輸出函數(shù)列表,183密碼函數(shù)列表,184哈希函數(shù)列表,190驗(yàn)證裝置存儲(chǔ)部,191保護(hù)對(duì)象提取列表,192輸出函數(shù)提取列表,193密碼函數(shù)提取列表,194變量信息提取列表,195保護(hù)對(duì)象狀態(tài)管理表,196密鑰狀態(tài)管理表,197程序驗(yàn)證結(jié)果,901CPU,902總線,903R0M,904RAM,905通信板,911顯示器,912鍵盤(pán),913鼠標(biāo),914驅(qū)動(dòng)器,920磁盤(pán)裝置,9210S,922程序組,923文件組。
【主權(quán)項(xiàng)】
1.一種程序驗(yàn)證裝置,其特征在于,該程序驗(yàn)證裝置具有: 程序輸入部,其輸入使用變量、輸出函數(shù)和加密函數(shù)且包含賦值語(yǔ)句的程序; 輸出變量提取部,其從所述程序提取設(shè)定由所述輸出函數(shù)輸出的輸出信息的輸出變量; 密碼變量提取部,其從所述程序提取設(shè)定由所述加密函數(shù)加密后的密碼信息的密碼變量; 密碼狀態(tài)變量提取部,其參照所述程序中包含的賦值語(yǔ)句從所述程序提取密碼狀態(tài)變量,其中,該密碼狀態(tài)變量被代入由所述密碼變量提取部提取出的所述密碼變量中設(shè)定的所述密碼信息; 密碼狀態(tài)判定部,其判定由所述密碼狀態(tài)變量提取部提取出的所述密碼狀態(tài)變量與由所述輸出變量提取部提取出的所述輸出變量是否為相同的變量;以及 驗(yàn)證結(jié)果輸出部,其基于所述密碼狀態(tài)判定部的判定結(jié)果,輸出所述程序的驗(yàn)證結(jié)果。
2.根據(jù)權(quán)利要求1所述的程序驗(yàn)證裝置,其特征在于, 所述程序驗(yàn)證裝置具有: 保護(hù)對(duì)象變量提取部,其提取由所述程序使用的變量中的設(shè)定由信息取得函數(shù)取得的保護(hù)對(duì)象信息的保護(hù)對(duì)象變量;以及 保護(hù)對(duì)象判定部,其判定由所述保護(hù)對(duì)象變量提取部提取出的所述保護(hù)對(duì)象變量與由所述輸出變量提取部提取出的所述輸出變量是否為相同的變量, 所述驗(yàn)證結(jié)果輸出部基于所述保護(hù)對(duì)象判定部的判定結(jié)果和所述密碼狀態(tài)判定部的判定結(jié)果,輸出所述程序的所述驗(yàn)證結(jié)果。
3.根據(jù)權(quán)利要求2所述的程序驗(yàn)證裝置,其特征在于, 所述程序驗(yàn)證裝置具有: 密鑰變量提取部,其提取由所述程序使用的變量中的設(shè)定由所述加密函數(shù)使用的加密密鑰的密鑰變量;以及 密鑰內(nèi)容判定部,其參照所述程序中包含的賦值語(yǔ)句,判定作為所述加密密鑰而被代入由所述密鑰變量提取部提取出的所述密鑰變量的值是否為可變值, 所述驗(yàn)證結(jié)果輸出部基于所述密鑰內(nèi)容判定部的判定結(jié)果、所述保護(hù)對(duì)象判定部的判定結(jié)果和所述密碼狀態(tài)判定部的判定結(jié)果,輸出所述程序的所述驗(yàn)證結(jié)果。
4.根據(jù)權(quán)利要求3所述的程序驗(yàn)證裝置,其特征在于, 所述程序驗(yàn)證裝置具有密鑰狀態(tài)判定部,該密鑰狀態(tài)判定部參照所述程序中包含的賦值語(yǔ)句,判定作為所述加密密鑰而被代入由所述密鑰變量提取部提取出的所述密鑰變量的值是否為通過(guò)隱匿運(yùn)算而被隱匿的隱匿值, 所述驗(yàn)證結(jié)果輸出部基于所述密鑰狀態(tài)判定部的判定結(jié)果、所述密鑰內(nèi)容判定部的判定結(jié)果、所述保護(hù)對(duì)象判定部的判定結(jié)果和所述密碼狀態(tài)判定部的判定結(jié)果,輸出所述程序的所述驗(yàn)證結(jié)果。
5.根據(jù)權(quán)利要求1所述的程序驗(yàn)證裝置,其特征在于, 所述程序驗(yàn)證裝置具有: 密鑰變量提取部,其提取由所述程序使用的變量中的設(shè)定由所述加密函數(shù)使用的加密密鑰的密鑰變量;以及 密鑰內(nèi)容判定部,其參照所述程序中包含的賦值語(yǔ)句,判定作為所述加密密鑰而被代入由所述密鑰變量提取部提取出的所述密鑰變量的值是否為可變值, 所述驗(yàn)證結(jié)果輸出部基于所述密鑰內(nèi)容判定部的判定結(jié)果和所述密碼狀態(tài)判定部的判定結(jié)果,輸出所述程序的所述驗(yàn)證結(jié)果。
6.根據(jù)權(quán)利要求1所述的程序驗(yàn)證裝置,其特征在于, 所述程序驗(yàn)證裝置具有: 密鑰變量提取部,其提取由所述程序使用的變量中的設(shè)定由所述加密函數(shù)使用的加密密鑰的密鑰變量;以及 密鑰狀態(tài)判定部,其參照所述程序中包含的賦值語(yǔ)句,判定作為所述加密密鑰而被代入由所述密鑰變量提取部提取出的所述密鑰變量的值是否為通過(guò)隱匿運(yùn)算而被隱匿的隱匿值, 所述驗(yàn)證結(jié)果輸出部基于所述密鑰狀態(tài)判定部的判定結(jié)果和所述密碼狀態(tài)判定部的判定結(jié)果,輸出所述程序的所述驗(yàn)證結(jié)果。
7.—種程序驗(yàn)證方法,該程序驗(yàn)證方法使用具有程序輸入部、輸出變量提取部、密碼變量提取部、密碼狀態(tài)變量提取部、密碼狀態(tài)判定部和驗(yàn)證結(jié)果輸出部的計(jì)算機(jī),其特征在于,在所述程序驗(yàn)證方法中, 所述程序輸入部輸入使用變量、輸出函數(shù)和加密函數(shù)且包含賦值語(yǔ)句的程序, 所述輸出變量提取部從所述程序提取設(shè)定由所述輸出函數(shù)輸出的輸出信息的輸出變量, 所述密碼變量提取部從所述程序提取設(shè)定由所述加密函數(shù)加密后的密碼信息的密碼變量, 所述密碼狀態(tài)變量提取部參照所述程序中包含的賦值語(yǔ)句從所述程序提取密碼狀態(tài)變量,其中,該密碼狀態(tài)變量被代入由所述密碼變量提取部提取出的所述密碼變量中設(shè)定的所述密碼信息, 所述密碼狀態(tài)判定部判定由所述密碼狀態(tài)變量提取部提取出的所述密碼狀態(tài)變量與由所述輸出變量提取部提取出的所述輸出變量是否為相同的變量, 所述驗(yàn)證結(jié)果輸出部基于所述密碼狀態(tài)判定部的判定結(jié)果,輸出所述程序的驗(yàn)證結(jié)果O
8.一種程序驗(yàn)證程序,其中,該程序驗(yàn)證程序用于使計(jì)算機(jī)執(zhí)行權(quán)利要求7所述的程序驗(yàn)證方法。
【專(zhuān)利摘要】必要信息提取部(120)提取由對(duì)象程序(101)使用的變量中的輸出變量,其中,該輸出變量設(shè)定由輸出函數(shù)列表(182)中定義的輸出函數(shù)輸出的輸出信息。必要信息提取部(120)提取由對(duì)象程序(101)使用的變量中的密碼變量,其中,該密碼變量設(shè)定由密碼函數(shù)列表(183)中定義的加密函數(shù)加密后的密碼信息。保護(hù)狀態(tài)分析部(130)參照對(duì)象程序(101)中包含的賦值語(yǔ)句,提取被代入密碼信息的密碼狀態(tài)變量。脆弱性判定部(140)判定密碼狀態(tài)變量與輸出變量是否為相同的變量,基于判定結(jié)果,輸出程序驗(yàn)證結(jié)果(197)。
【IPC分類(lèi)】G06F21-57
【公開(kāi)號(hào)】CN104662553
【申請(qǐng)?zhí)枴緾N201380049331
【發(fā)明人】山本匠
【申請(qǐng)人】三菱電機(jī)株式會(huì)社
【公開(kāi)日】2015年5月27日
【申請(qǐng)日】2013年8月30日
【公告號(hào)】EP2902939A1, WO2014050431A1