一種基于安全標(biāo)識(shí)文件的軟件實(shí)名認(rèn)證方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全技術(shù)領(lǐng)域,特別是涉及一種基于安全標(biāo)識(shí)文件的軟件實(shí)名認(rèn) 證方法和裝置。
【背景技術(shù)】
[0002] 公開(kāi)密鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,簡(jiǎn)稱(chēng)PKI),是一種遵循X. 509 標(biāo)準(zhǔn)的密鑰管理和用戶(hù)驗(yàn)證安全基礎(chǔ)設(shè)施,它能夠?yàn)樗芯W(wǎng)絡(luò)應(yīng)用透明地提供加密和數(shù)字 簽名等密碼服務(wù)所必需的密鑰,并通過(guò)認(rèn)證權(quán)威機(jī)構(gòu)CA將用戶(hù)的公鑰和用戶(hù)的身份信息 捆綁在一起,并結(jié)合公鑰密碼和對(duì)稱(chēng)密碼,實(shí)現(xiàn)密鑰的自動(dòng)管理,保證網(wǎng)上數(shù)據(jù)的安全傳 輸。
[0003] PKI主要由認(rèn)證權(quán)威機(jī)構(gòu)(CA)、注冊(cè)機(jī)構(gòu)(RA)、密鑰管理系統(tǒng)、證書(shū)簽發(fā)系統(tǒng)、證 書(shū)注冊(cè)系統(tǒng)、證書(shū)目錄系統(tǒng)、證書(shū)服務(wù)系統(tǒng)以及證書(shū)應(yīng)用中間件等部分組成。PKI提供了一 個(gè)框架,在這個(gè)框架下可以實(shí)施認(rèn)證、完整性和機(jī)密性三種基本加密安全服務(wù)。
[0004] 數(shù)字簽名(Digital Signature),是手寫(xiě)簽名的電子模擬,數(shù)字簽名可以確定簽名 者身份,說(shuō)明簽名者與被簽名數(shù)據(jù)之間的關(guān)系。數(shù)字簽名與手寫(xiě)簽名一樣,是認(rèn)證的主要工 具,其主要目的是防抵賴(lài)、防否認(rèn)、防冒充和防篡改。
[0005] 數(shù)字簽名是一個(gè)具有特殊性質(zhì)的數(shù)學(xué)運(yùn)算的輸出結(jié)果,其安全性基于非對(duì)稱(chēng)加 密,即加密與解密過(guò)程使用不同的密鑰。通過(guò)數(shù)字簽名,可以對(duì)簽名者身份、簽名日期進(jìn)行 驗(yàn)證,對(duì)被簽名的消息內(nèi)容進(jìn)行認(rèn)證,而且在出現(xiàn)爭(zhēng)執(zhí)時(shí),簽名可由第三方進(jìn)行仲裁。
[0006] 數(shù)字簽名具有不可仿造性和不可否認(rèn)性。在身份認(rèn)證、數(shù)據(jù)完整性、不可否認(rèn)性以 及匿名性等信息中具有重要應(yīng)用,特別是在大型網(wǎng)絡(luò)安全通信的密鑰分配、認(rèn)證以及電子 商務(wù)系統(tǒng)中具有重要作用。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,數(shù)字簽名技術(shù)也在不斷發(fā)展,并 得到廣泛應(yīng)用。通常,我們需要用數(shù)字簽名保護(hù)的對(duì)象是一些重要的文件資料。但在這之 夕卜,數(shù)字簽名也可用于軟件代碼,可對(duì)軟件起到防篡改、防抵賴(lài)的作用。軟件實(shí)名認(rèn)證機(jī)制 中軟件安全標(biāo)識(shí)的生成,以及檢查軟件撤銷(xiāo)列表的有效性上均要用到數(shù)字簽名技術(shù)。
[0007] 軟件實(shí)名認(rèn)證技術(shù),是運(yùn)用數(shù)字簽名技術(shù)和PKI技術(shù),對(duì)計(jì)算機(jī)軟件進(jìn)行完整性 保護(hù)和身份認(rèn)證,將計(jì)算機(jī)軟件和其編制者以及發(fā)布者的身份信息進(jìn)行綁定。實(shí)名化后的 軟件具備防篡改及防抵賴(lài)的功能,當(dāng)軟件分發(fā)安裝或啟動(dòng)運(yùn)行時(shí)可在計(jì)算環(huán)境中對(duì)軟件進(jìn) 行認(rèn)證,根據(jù)認(rèn)證的結(jié)果來(lái)決定是否允許軟件的安裝以及運(yùn)行,同時(shí)如果軟件對(duì)計(jì)算機(jī)系 統(tǒng)造成了危害,將依據(jù)軟件編制者及發(fā)布者的身份信息進(jìn)行責(zé)任追宄。因此,通過(guò)軟件實(shí)名 認(rèn)證,既可以限制惡意軟件的執(zhí)行,又可以為軟件造成損害的責(zé)任追宄提供科學(xué)證據(jù),從而 給計(jì)算機(jī)系統(tǒng)提供一種強(qiáng)有力的安全保障。
[0008] 目前,軟件實(shí)名認(rèn)證機(jī)制是利用可執(zhí)行文件加殼技術(shù)實(shí)現(xiàn)軟件編制者身份信息以 及軟件完整性信息的添加。該機(jī)制在實(shí)際應(yīng)用方面存在以下問(wèn)題:
[0009] (1)依賴(lài)于具體的軟件文件類(lèi)型,技術(shù)通用性差?,F(xiàn)有的實(shí)名認(rèn)證只適用于EXE、 DLL等PE格式文件,不適用于ELF格式的可執(zhí)行文件和庫(kù)文件以及RPM、TAR等格式的安裝 文件,因此技術(shù)應(yīng)用的適用范圍受限。
[0010] (2)修改可執(zhí)行文件改變加載時(shí)的執(zhí)行流程,影響軟件執(zhí)行效率?,F(xiàn)有的軟件實(shí)名 認(rèn)證機(jī)制需要修改PE格式文件結(jié)構(gòu),為PE文件添加一個(gè)新節(jié)以插入一段代碼,并且修改加 載流程,使得PE文件加載時(shí)先加載用于認(rèn)證的動(dòng)態(tài)鏈接庫(kù),由該庫(kù)完成認(rèn)證功能。雖然該 方法能夠達(dá)到確保軟件安全性的目的,但是每次可執(zhí)行文件尤其是DLL文件加載時(shí)都需要 進(jìn)行認(rèn)證,影響了計(jì)算機(jī)系統(tǒng)的可用性。
[0011] (3)在系統(tǒng)用戶(hù)層實(shí)現(xiàn)對(duì)軟件的實(shí)名認(rèn)證,系統(tǒng)自身安全性難以保證?,F(xiàn)有的軟件 實(shí)名認(rèn)證機(jī)制利用應(yīng)用層的動(dòng)態(tài)鏈接庫(kù)來(lái)對(duì)軟件進(jìn)行認(rèn)證,但是該動(dòng)態(tài)鏈接庫(kù)的安全沒(méi)有 保證。一旦該動(dòng)態(tài)鏈接庫(kù)被替換或遭到篡改,則整個(gè)實(shí)名認(rèn)證機(jī)制將失效。
【發(fā)明內(nèi)容】
[0012] 為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種基于安全標(biāo)識(shí)的軟件實(shí)名認(rèn)證方法和 裝置?;谏鲜黾夹g(shù)問(wèn)題,本發(fā)明是通過(guò)以下技術(shù)方案來(lái)解決的。
[0013] 一方面,本發(fā)明提供一種基于安全標(biāo)識(shí)文件的軟件實(shí)名認(rèn)證方法,包括:預(yù)先存儲(chǔ) 為軟件生成的與其對(duì)應(yīng)的安全標(biāo)識(shí)文件,形成安全標(biāo)識(shí)文件庫(kù);基于預(yù)先存儲(chǔ)的所述安全 標(biāo)識(shí)文件庫(kù),在軟件啟動(dòng)時(shí),對(duì)所述軟件進(jìn)行安全認(rèn)證。
[0014] 其中,基于預(yù)先存儲(chǔ)的所述安全標(biāo)識(shí)文件庫(kù),在軟件啟動(dòng)時(shí),對(duì)所述軟件進(jìn)行安全 認(rèn)證,包括:根據(jù)為軟件預(yù)設(shè)的安全等級(jí)和預(yù)先存儲(chǔ)的所述安全標(biāo)識(shí)文件庫(kù),在軟件啟動(dòng) 時(shí),對(duì)軟件進(jìn)行相應(yīng)的安全認(rèn)證。
[0015] 其中,在所述安全標(biāo)識(shí)文件中,包括:軟件基本信息、軟件安全信息、軟件標(biāo)識(shí)符信 息、軟件簽名信息。
[0016] 其中,對(duì)所述軟件進(jìn)行安全認(rèn)證的方式,包括:本地認(rèn)證和遠(yuǎn)程認(rèn)證。
[0017] 其中,當(dāng)進(jìn)行本地認(rèn)證時(shí),基于預(yù)先存儲(chǔ)的所述安全標(biāo)識(shí)文件庫(kù),在軟件啟動(dòng)時(shí), 對(duì)所述軟件進(jìn)行安全認(rèn)證,包括:截獲軟件的啟動(dòng)運(yùn)行操作;計(jì)算軟件的軟件安全信息;在 安全標(biāo)識(shí)文件庫(kù)中,檢索是否存在包含所述軟件安全信息的安全標(biāo)識(shí)文件;在存在包含所 述軟件安全信息的安全標(biāo)識(shí)文件的情況下,在預(yù)先保存的公鑰鏈表中,檢索是否存在與所 述軟件對(duì)應(yīng)的可信公鑰;在存在所述可信公鑰的情況下,基于所述可信公鑰對(duì)安全標(biāo)識(shí)文 件中的軟件簽名信息進(jìn)行認(rèn)證;如果認(rèn)證通過(guò),則反饋認(rèn)證成功的信息;反之,則反饋認(rèn)證 失敗的?目息。
[0018] 其中,當(dāng)進(jìn)行遠(yuǎn)程認(rèn)證時(shí),基于預(yù)先存儲(chǔ)的所述安全標(biāo)識(shí)文件庫(kù),在軟件啟動(dòng)時(shí), 對(duì)所述軟件進(jìn)行安全認(rèn)證,包括:截獲軟件的啟動(dòng)運(yùn)行操作;計(jì)算軟件的軟件安全信息;將 所述軟件的軟件安全信息發(fā)送至安全認(rèn)證服務(wù)器,由安全認(rèn)證服務(wù)器進(jìn)行安全認(rèn)證;接收 安全認(rèn)證服務(wù)器反饋的認(rèn)證結(jié)果;其中,所述認(rèn)證結(jié)果包括:認(rèn)證成功和認(rèn)證失敗。
[0019] 另一個(gè)方面,本發(fā)明提供了一種基于安全標(biāo)識(shí)文件的軟件實(shí)名認(rèn)證裝置,包括:存 儲(chǔ)模塊,用于預(yù)先存儲(chǔ)為軟件生成的與其對(duì)應(yīng)的安全標(biāo)識(shí)文件,形成安全標(biāo)識(shí)文件庫(kù);認(rèn) 證模塊,用于基于預(yù)先存儲(chǔ)的所述安全標(biāo)識(shí)文件庫(kù),在軟件啟動(dòng)時(shí),對(duì)所述軟件進(jìn)行安全認(rèn) 證。
[0020] 其中,所述認(rèn)證模塊,用于:根據(jù)為軟件預(yù)設(shè)的安全等級(jí)和預(yù)先存儲(chǔ)的所述安全標(biāo) 識(shí)文件庫(kù),在軟件啟動(dòng)時(shí),對(duì)軟件進(jìn)行相應(yīng)的安全認(rèn)證。
[0021] 其中,在所述安全標(biāo)識(shí)文件中,包括:軟件基本信息、軟件安全信息、軟件標(biāo)識(shí)符信 息、軟件簽名信息。
[0022] 其中,所述認(rèn)證模塊包括本地認(rèn)證子模塊,用于:截獲軟件的啟動(dòng)運(yùn)行操作;計(jì)算 軟件的軟件安全信息;在安全標(biāo)識(shí)文件庫(kù)中,檢索是否存在包含所述軟件安全信息的安全 標(biāo)識(shí)文件;在存在包含所述軟件安全信息的安全標(biāo)識(shí)文件的情況下,在預(yù)先保存的公鑰鏈 表中,檢索是否存在與所述軟件對(duì)應(yīng)的可信公鑰;在存在所述可信公鑰的情況下,基于所述 可信公鑰對(duì)安全標(biāo)識(shí)文件中的軟件簽名信息進(jìn)行認(rèn)證;如果認(rèn)證通過(guò),則反饋認(rèn)證成功的 信息;反之,則反饋認(rèn)證失敗的信息。
[0023] 其中,所述認(rèn)證模塊包括遠(yuǎn)程認(rèn)證子模塊,用于:截獲軟件的啟動(dòng)運(yùn)行操作;計(jì)算 軟件的軟件安全信息;將所述軟件的軟件安全信息發(fā)送至安全認(rèn)證服務(wù)器,由安全認(rèn)證服 務(wù)器進(jìn)行安全認(rèn)證;接收安全認(rèn)證服務(wù)器反饋的認(rèn)證結(jié)果;其中,所述認(rèn)證結(jié)果包括:認(rèn)證 成功和認(rèn)證失敗。
[0024] 本發(fā)明有益效果如下:
[0025] 本發(fā)明通過(guò)為軟件生成對(duì)應(yīng)的安全標(biāo)識(shí)文件,并將安全標(biāo)識(shí)文件和軟件獨(dú)立存 儲(chǔ),并基于此,在軟件啟動(dòng)時(shí),對(duì)軟件進(jìn)行安全認(rèn)證。本發(fā)明能夠適用于國(guó)產(chǎn)軟件計(jì)算環(huán)境、 提升計(jì)算機(jī)終端軟件資源管理能力、提升計(jì)算平臺(tái)安全防護(hù)能力和支持實(shí)現(xiàn)軟件使用責(zé)任 認(rèn)定。
【附圖說(shuō)明】
[0026] 圖1是根據(jù)本發(fā)明一實(shí)施例的基于安全標(biāo)識(shí)文件的軟件實(shí)名認(rèn)證系統(tǒng)的結(jié)構(gòu)圖;
[0027] 圖2是根據(jù)本發(fā)明一實(shí)施例的基于安全標(biāo)識(shí)文件的軟件實(shí)名認(rèn)證方法的流程圖;
[0028] 圖3是根據(jù)本發(fā)明一實(shí)施例的安全標(biāo)識(shí)文件的生成步驟流程圖;
[0029] 圖4是根據(jù)本發(fā)明一實(shí)施例的軟件啟動(dòng)運(yùn)行認(rèn)證的示意圖;
[0030] 圖5是根據(jù)本發(fā)明一實(shí)施例的本地認(rèn)證步驟的流程圖;
[0031] 圖6是根據(jù)本發(fā)明一實(shí)施例的本地認(rèn)證的示意圖;
[0032] 圖7是根據(jù)本發(fā)明一實(shí)施例的遠(yuǎn)程認(rèn)證步驟的流程圖;
[0033] 圖8是根據(jù)本發(fā)明一實(shí)施例的遠(yuǎn)程認(rèn)證的示意圖;
[0034] 圖9是根據(jù)本發(fā)明一實(shí)施例的基于安全標(biāo)識(shí)的軟件實(shí)名認(rèn)證裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0035] 以下結(jié)合附圖以及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述 的具