專利名稱:一種對設(shè)備系統(tǒng)自帶的軟件進(jìn)行合法性認(rèn)證的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件合法性認(rèn)證技術(shù)領(lǐng)域,特別涉及對設(shè)備系統(tǒng)自帶的軟件進(jìn)行
合法性認(rèn)證的方法。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)上交易以其使用的方便性、使用成本的低廉逐步為大眾所接受,網(wǎng)上交易的用戶也正逐步增多。然而,網(wǎng)上交易的安全問題也逐漸成為用戶關(guān)注的焦點(diǎn),因"木馬"或"肉雞"程序造成的網(wǎng)上交易安全事件的報道也越來越多,大量用戶對于網(wǎng)上交易的憂慮也日漸強(qiáng)烈。
網(wǎng)上交易現(xiàn)有的客戶端身份認(rèn)證體系是以U盾為技術(shù)核心的,例如工商銀
行的網(wǎng)上銀行,在交易的安全性上面,工行使用u盾來保護(hù)每一筆交易。當(dāng)前,隨著對于安全問題的更多關(guān)注,u盾工作各環(huán)節(jié)中的安全隱患正逐個被解決,
在整個PKI體系內(nèi),U盾工作的安全性已經(jīng)到達(dá)一個高的層次。但是,在交易過程中,除要保證U盾的合法性外,網(wǎng)絡(luò)鏈路里面的安全性也是非常重要的。交易過程中,用戶在軟件系統(tǒng)中輸入交易信息, 一旦交易信息在網(wǎng)絡(luò)鏈路中被惡意篡改,將導(dǎo)致用戶對非法交易信息進(jìn)行確認(rèn)而未被發(fā)覺。
使用網(wǎng)上銀行交易,客戶端身份認(rèn)證設(shè)備(例說USBKey)在與業(yè)務(wù)系統(tǒng)、CA認(rèn)證中心交互過程中是完全遵循公鑰基礎(chǔ)設(shè)施(PKI)體系標(biāo)準(zhǔn)的。現(xiàn)有技術(shù)網(wǎng)上銀行交易由以下四個步驟
1).用戶通過應(yīng)用瀏覽器在網(wǎng)絡(luò)銀行界面中輸入交易數(shù)據(jù);2) .在應(yīng)用瀏覽器中的輸入的交易數(shù)據(jù)被控件接收,由控件進(jìn)行處理;
3) .交易數(shù)據(jù)從控件傳送到CSP(加密服務(wù)提供程序,Cryptographic ServiceProvider)處理;
4) .CSP傳送交易數(shù)據(jù)到USBKEY進(jìn)行加密;
5) .USBKEY輸出加密后的交易數(shù)據(jù),送入業(yè)務(wù)系統(tǒng)進(jìn)行處理。
通過PKI體系,可以保證交易數(shù)據(jù)被傳入USBKEY加密并送入業(yè)務(wù)系統(tǒng)過程的安全性。但是在交易過程中,從用戶輸入數(shù)據(jù),到輸入數(shù)據(jù)被送入設(shè)備進(jìn)行數(shù)字簽名的過程中,對用戶輸入數(shù)據(jù)是缺乏必要的保護(hù)措施的。此過程中用戶輸入的數(shù)據(jù)可能會被竊取或篡改。為防止交易過程中被篡改,申請人將數(shù)據(jù)簽名軟件在出廠時寫入USBKEY,屏蔽CSP的原有標(biāo)準(zhǔn)接口,致使黑客無法通過標(biāo)準(zhǔn)接口的接入來進(jìn)行攻擊.
為了防止惡意程序侵入計算機(jī)系統(tǒng),截獲交易數(shù)據(jù)需對數(shù)據(jù)簽名軟件合法性認(rèn)證機(jī)制,進(jìn)一步提高網(wǎng)上銀行交易的安全性。
發(fā)明內(nèi)容
本發(fā)明旨在避免系統(tǒng)應(yīng)用軟件被非法替換,發(fā)送的非法數(shù)據(jù)被誤接受和誤確認(rèn)的風(fēng)險,提供一種在交易前進(jìn)行軟件系統(tǒng)中重要程序和系統(tǒng)設(shè)備之間的雙向認(rèn)證,系統(tǒng)設(shè)備在確認(rèn)軟件系統(tǒng)的合法性后才可以正常工作,杜絕"木馬"程序假冒合法程序非法訪問設(shè)備或竊取和篡改用戶的輸入數(shù)據(jù)。
為達(dá)到發(fā)明目的本發(fā)明采用的技術(shù)方案是200910153017.X 一種對設(shè)備系統(tǒng)自帶的軟件進(jìn)行合法性認(rèn)證的方法,其特征在于所述設(shè)備
系統(tǒng)為USBKEY為無驅(qū)無軟方式,所需驗證的軟件在出廠時寫入USBKEY,首次使用USBKEY時軟件自動安裝于操作系統(tǒng)中,USBKEY和所需驗證的軟件共享密鑰或共享指紋算法和隨機(jī)數(shù)混淆/解混淆算法,在用戶進(jìn)行交易前進(jìn)行如下步驟的合法性驗證,如果合法性不能通過,則拒絕交易;合法性驗證通過情況下,繼續(xù)后續(xù)流程;
所述認(rèn)證方法包括以下步驟-
(1) 用戶輸入交易確認(rèn)指紋;
(2) USBKEY進(jìn)行指紋識別,獲取指紋數(shù)據(jù),并用指紋算法運(yùn)算得到指紋特征值l;
(3) USBKEY產(chǎn)生一個隨機(jī)數(shù),并用隨機(jī)數(shù)混淆加密指紋數(shù)據(jù),傳送給系統(tǒng)軟件;
(4) 系統(tǒng)軟件以相應(yīng)的解混淆算法解出指紋數(shù)據(jù),并用指紋算法運(yùn)行得到指紋特征值2-,
(5) 系統(tǒng)軟件將特征值2傳送給USBKEY;
(6) 將兩個特征值在USBKEY內(nèi)進(jìn)行比對,成功則一體化組件的合法性通過,
失敗則合法性未通過。
進(jìn)一歩,本發(fā)明方法還包括對對軟件二進(jìn)制代碼是否被篡改進(jìn)行認(rèn)證,即采用
如下歩驟
A. USBKEY產(chǎn)生一個隨機(jī)數(shù);B. 按照隨機(jī)數(shù)的值,對USBKEY中存放的軟件找到隨機(jī)數(shù)值對應(yīng)的位置作
為起始位置,取一段二進(jìn)制代碼;
C. 將代碼進(jìn)行Hash運(yùn)算,得到Hash值l;
D. USBKEY按照隨機(jī)數(shù)的數(shù)值,在系統(tǒng)安裝軟件中,找到隨機(jī)數(shù)對應(yīng)的位置,作為起始位置,取同樣一段二進(jìn)制代碼;
E. 用同一Hash算法運(yùn)算得到Hash值2;
F.將運(yùn)算得到的Hash值2傳送給USBKEY;
G.在USBKEY中對兩個Hash值進(jìn)行比對,成功則一體化組件合法性驗證通過,失敗則合法性驗證未通過。
本發(fā)明還可包括歩驟系統(tǒng)認(rèn)為該軟件己被非法替換時,系統(tǒng)將屏蔽該軟件執(zhí)行的交易數(shù)據(jù),對交易進(jìn)行關(guān)閉,并提示用戶。
為便于軟件的更新,本發(fā)明方法在判斷軟件為合法軟件后,通過網(wǎng)絡(luò)接受遠(yuǎn)端控制進(jìn)行此軟件的更新動作。
相比現(xiàn)有技術(shù),本發(fā)明有益效果在于通過對用于網(wǎng)上銀行交易的簽名認(rèn)證程序(或稱組件)與設(shè)備系統(tǒng)進(jìn)行合法性認(rèn)證的方法,安全地解決在網(wǎng)上交易過程當(dāng)中,由于系統(tǒng)應(yīng)用軟件被非法替換,發(fā)送的非法數(shù)據(jù)被誤接受和誤確認(rèn)的風(fēng)險。該機(jī)制基于"可信設(shè)備"的思想,在交易前進(jìn)行軟件系統(tǒng)中重要組件和系統(tǒng)設(shè)備之間的雙向認(rèn)證,系統(tǒng)設(shè)備在確認(rèn)軟件系統(tǒng)的合法性后才可以正常工作,杜絕"木馬"程序假冒合法程序非法訪問設(shè)備或竊取和篡改用戶的輸入數(shù)據(jù)。
7圖1為依照本發(fā)明的一實施例所繪示的軟件認(rèn)證方法的流程。圖2為依照本發(fā)明的第二實施例繪示的軟件認(rèn)證方法的流程。
具體實施例方式
下面結(jié)合具體實施例來對本發(fā)明進(jìn)行進(jìn)一步說明,但并不將本發(fā)明局限于這些具體實施方式
。本領(lǐng)域技術(shù)人員應(yīng)該認(rèn)識到,本發(fā)明涵蓋了權(quán)利要求書范圍內(nèi)所可能包括的所有備選方案、改進(jìn)方案和等效方案。
在出廠時,設(shè)備內(nèi)部即存有用于網(wǎng)上銀行交易簽名認(rèn)證的軟件(或組件),利用軟件(或組件)與設(shè)備的綁定,使用共享密鑰的方法,對系統(tǒng)軟件在應(yīng)用時做合法性的認(rèn)證,從而確保設(shè)備所接收的數(shù)據(jù)來自于合法的系統(tǒng)軟件。
首先,設(shè)備在出廠時,系統(tǒng)軟件已經(jīng)被存放在設(shè)備的安全存儲空間當(dāng)中,并且系統(tǒng)軟件帶有與設(shè)備共享的指紋算法和混淆密鑰,所有的共享內(nèi)容均能夠
在軟件安裝或移動過程中攜帶,但是,因USBKey設(shè)備具有安全存儲空間,系統(tǒng)軟件的二進(jìn)制代碼在寫入空間時,其寫入的起始地址、數(shù)據(jù)空間均無法從外部讀取,所以其數(shù)據(jù)結(jié)構(gòu)無法被第三方直接讀出,以保護(hù)其私密性;被首次使用時,系統(tǒng)軟件被自動安裝到操作系統(tǒng)當(dāng)中,
所述認(rèn)證方法包括以下步驟
(1) 用戶輸入交易確認(rèn)指紋;
(2) USBKEY進(jìn)行指紋識別,獲取指紋數(shù)據(jù),并用指紋算法運(yùn)算得到指紋特征值1;
(3) USBKEY產(chǎn)生一個隨機(jī)數(shù),并用隨機(jī)數(shù)混淆加密指紋數(shù)據(jù),傳送給系統(tǒng)軟件;
8(4) 系統(tǒng)軟件以相應(yīng)的解混淆算法解出指紋數(shù)據(jù),并用指紋算法運(yùn)行得到指紋特征值2;
(5) 系統(tǒng)軟件將特征值2傳送給USBKEY;
(6) 將兩個特征值在USBKEY內(nèi)進(jìn)行比對,成功則一體化組件的合法性通過,失敗則合法性未通過。
為進(jìn)一步提高鑒別合法軟件的有效性和安全性,本發(fā)明還采用二進(jìn)制代碼進(jìn)行Hash值比對法,其認(rèn)證過程如圖2所示
A. USBKEY產(chǎn)生一個隨機(jī)數(shù);
B. 按照隨機(jī)數(shù)的值,對USBKEY中存放的一體化組件,找到隨機(jī)數(shù)值對應(yīng)的位置作為起始位置,取一段二進(jìn)制代碼(例如32位);
C. 將代碼進(jìn)行Hash運(yùn)算,得到Hash值l;
D. USBKEY按照隨機(jī)數(shù)的數(shù)值,在系統(tǒng)軟件中,找到隨機(jī)數(shù)對應(yīng)的位置,作為起始位置,取同樣一段二進(jìn)制代碼,如32位;
E. 用同一 Hash算法運(yùn)算得到Hash值2;
F. 將運(yùn)算得到的Hash值2傳送給USBKEY;
G. 在USBKEY中對兩個Hash值進(jìn)行比對,成功則軟件合法性驗證通過,
失敗則合法性驗證未通過。
對于合法性未被認(rèn)證通過的一體化組件,系統(tǒng)認(rèn)為該一體化組件已被非法替換,系統(tǒng)將屏蔽該一體化組件發(fā)送的交易數(shù)據(jù),對交易進(jìn)行關(guān)閉,并提示用戶。
權(quán)利要求
1.一種對設(shè)備系統(tǒng)自帶的軟件進(jìn)行合法性認(rèn)證的方法,其特征在于所述設(shè)備系統(tǒng)為USBKEY為無驅(qū)無軟方式,所需驗證的軟件在出廠時寫入USBKEY,首次使用USBKEY時軟件自動安裝于操作系統(tǒng)中,USBKEY和所需驗證的軟件共享密鑰或共享指紋算法和隨機(jī)數(shù)混淆/解混淆算法,在用戶進(jìn)行交易前進(jìn)行如下步驟的合法性驗證,如果合法性不能通過,則拒絕交易;合法性驗證通過情況下,繼續(xù)后續(xù)流程;所述認(rèn)證方法包括以下步驟(1)用戶輸入交易確認(rèn)指紋;(2)USBKEY進(jìn)行指紋識別,獲取指紋數(shù)據(jù),并用指紋算法運(yùn)算得到指紋特征值1;(3)USBKEY產(chǎn)生一個隨機(jī)數(shù),并用隨機(jī)數(shù)混淆加密指紋數(shù)據(jù),傳送給系統(tǒng)軟件;(4)系統(tǒng)軟件以相應(yīng)的解混淆算法解出指紋數(shù)據(jù),并用指紋算法運(yùn)行得到指紋特征值2;(5)系統(tǒng)軟件將特征值2傳送給USBKEY;(6)將兩個特征值在USBKEY內(nèi)進(jìn)行比對,成功則一體化組件的合法性通過,失敗則合法性未通過。
2、如權(quán)利要求l所述的對設(shè)備系統(tǒng)自帶的軟件進(jìn)行合法性認(rèn)證的方法,其特征 在于還包括對軟件二進(jìn)制代碼是否被篡改進(jìn)行認(rèn)證,即采用如下步驟A. USBKEY產(chǎn)生一個隨機(jī)數(shù);B. 按照隨機(jī)數(shù)的值,對USBKEY中存放的軟件找到隨機(jī)數(shù)值對應(yīng)的位置作 為起始位置,取一段二進(jìn)制代碼;C. 將代碼進(jìn)行Hash運(yùn)算,得到Hash值l;D. USBKEY按照隨機(jī)數(shù)的數(shù)值,在系統(tǒng)安裝軟件中,找到隨機(jī)數(shù)對應(yīng)的位置,作為起始位置,取同樣一段二進(jìn)制代碼;E. 用同一Hash算法運(yùn)算得到Hash值2;F. 將運(yùn)算得到的Hash值2傳送給USBKEY;G. 在USBKEY中對兩個Hash值進(jìn)行比對,成功則一體化組件合法性驗證通 過,失敗則合法性驗證未通過。
3、 如權(quán)利要求1或2所述的對設(shè)備系統(tǒng)自帶的軟件進(jìn)行合法性認(rèn)證的方法, 其特征在于還包括系統(tǒng)認(rèn)為該軟件已被非法替換時,系統(tǒng)將屏蔽該軟件執(zhí)行的 交易數(shù)據(jù),對交易進(jìn)行關(guān)閉,并提示用戶。
4、 如權(quán)利要求3所述的對設(shè)備系統(tǒng)自帶的軟件進(jìn)行合法性認(rèn)證的方法,其 特征在于還包括系統(tǒng)認(rèn)為該軟件為合法軟件,通過網(wǎng)絡(luò)接受遠(yuǎn)端控制進(jìn)行此軟 件的更新動作。
全文摘要
一種對設(shè)備系統(tǒng)自帶的軟件進(jìn)行合法性認(rèn)證的方法,系統(tǒng)軟件與設(shè)備共享的指紋算法和混淆密鑰被同時裝入操作系統(tǒng),在用戶輸入信息確認(rèn)交易時,USBKey獲得用戶指紋數(shù)據(jù),產(chǎn)生一個隨機(jī)數(shù),用混淆算法將指紋數(shù)據(jù)和隨機(jī)數(shù)進(jìn)行加密,發(fā)送給系統(tǒng)軟件。系統(tǒng)軟件利用混淆算法解密后獲得指紋數(shù)據(jù),并且利用指紋算法計算該用戶指紋特征,與USBKey計算獲得指紋特征作比較,比較結(jié)果相同則系統(tǒng)軟件合法性認(rèn)證通過,交易被確認(rèn)。本發(fā)明基于“可信設(shè)備”的思想,在交易前進(jìn)行軟件系統(tǒng)中重要組件和系統(tǒng)設(shè)備之間的雙向認(rèn)證,系統(tǒng)設(shè)備在確認(rèn)軟件系統(tǒng)的合法性后才可以正常工作,杜絕“木馬”程序假冒合法程序非法訪問設(shè)備或竊取和篡改用戶的輸入數(shù)據(jù)。
文檔編號G06Q30/00GK101661599SQ20091015301
公開日2010年3月3日 申請日期2009年9月25日 優(yōu)先權(quán)日2009年9月25日
發(fā)明者岑旭聚, 張偉峰, 鄒建軍, 捷 陸 申請人:浙江維爾生物識別技術(shù)股份有限公司