專利名稱:支持數(shù)字簽名的個人可信設(shè)備及其實現(xiàn)簽名的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種支持數(shù)字簽名的個人可信設(shè)備(Personal TrustedDevice,PTD),也涉及使用該個人可信設(shè)備進行數(shù)字簽名的方法,屬于信息安全技術(shù)領(lǐng)域。
背景技術(shù):
當前,隨著信息化進程的深入和互聯(lián)網(wǎng)的迅速發(fā)展,人們的工作、學(xué)習(xí)和生活方式正在發(fā)生巨大變化,工作效率大為提高,信息資源得到最大程度的共享。但同時必須看到,緊隨信息化發(fā)展而來的信息安全問題日漸突出,如果不很好地解決這個問題,必將阻礙信息化發(fā)展的進程。
個人計算機是目前使用最為普遍的信息處理終端設(shè)備,但由于其自身軟硬件方面的缺陷,個人計算機是一種不安全的計算環(huán)境,在硬件和操作系統(tǒng)方面都存在很多安全隱患。硬件的不安全性主要體現(xiàn)在抵抗自然災(zāi)難、電磁干擾與泄漏、線路竊取等方面表現(xiàn)脆弱。龐大而復(fù)雜的操作系統(tǒng)更是存在諸多的安全缺陷,分別分布在身份認證、訪問控制、系統(tǒng)漏洞、安全配置等領(lǐng)域。另外,目前的個人計算機都不是孤立的計算機,幾乎都會接入互聯(lián)網(wǎng),這使得個人計算機成為一個相對開放的計算環(huán)境。網(wǎng)絡(luò)的開放性和惡意攻擊給接入互聯(lián)網(wǎng)的計算機帶來更多的安全隱患。
在這種不安全的個人計算機環(huán)境中,無法實施某些安全性要求高的運算操作,例如數(shù)字簽名。首先,個人計算機不能保證簽名私鑰的安全存儲;其次,在個人計算機上進行簽名運算會泄漏私鑰等敏感信息;再者,被簽名的數(shù)據(jù)可能是遭受篡改的數(shù)據(jù),導(dǎo)致違背用戶意愿的錯誤簽名。
由于個人計算機無法保證計算環(huán)境的安全性,人們就積極尋求個人計算機以外的安全存儲環(huán)境和安全運算環(huán)境。智能卡或USB Key順理成章地成為了安全計算環(huán)境的理想選擇,被廣泛應(yīng)用于數(shù)字簽名等安全領(lǐng)域。
首先,智能卡或USB KEY的硬件結(jié)構(gòu)比個人計算機簡單得多,具備高度的硬件安全性;其次,智能卡或USB KEY具有運算能力,是一個獨立和封閉的運算環(huán)境;再者,智能卡或USB KEY上的操作系統(tǒng)比通用計算機操作系統(tǒng)簡單得多,幾乎沒有攻擊者可利用的安全漏洞,并具有嚴格的身份認證和訪問控制。因此,智能卡和USB KEY能夠保證數(shù)據(jù)存儲和數(shù)據(jù)運算的安全性,被稱為個人安全環(huán)境(Personal SecureEnvironment,PSE)。
然而,智能卡和USB KEY都沒有鍵盤和顯示屏,其存儲和運算功能依賴于它們與計算機的數(shù)據(jù)交互,這就難以保證數(shù)據(jù)傳輸?shù)陌踩浴R詳?shù)字簽名為例,用戶需要在個人計算機上使用應(yīng)用軟件(例如word)處理完需要簽名的數(shù)據(jù)(例如word文檔,A.doc),然后由數(shù)字簽名軟件將需要簽名的數(shù)據(jù)傳輸給智能卡或USB KEY,智能卡或USB KEY對數(shù)據(jù)進行簽名運算,再將計算出的簽名結(jié)果返回給用戶計算機上的數(shù)字簽名軟件。雖然智能卡或USB KEY可以保證存儲和運算的安全性。但它們卻無法保證數(shù)據(jù)傳輸?shù)陌踩?。在輸入的?shù)據(jù)是錯誤數(shù)據(jù)的情況下,根本保證不了數(shù)字簽名的安全可靠性。
圖1描繪了采用智能卡的數(shù)字簽名方案可能遭受的木馬攻擊。如圖1所示,木馬程序可以在多處實施攻擊(1)攻擊用戶輸入,截獲PIN碼;(2)攻擊應(yīng)用軟件,例如以宏的形式隱藏于word文檔內(nèi);(3)非法篡改存儲介質(zhì)上的數(shù)據(jù);(4)攻擊簽名軟件;(5)攻擊智能卡驅(qū)動;(6)監(jiān)控簽名軟件和智能卡之間的通信,篡改傳輸給智能卡的數(shù)據(jù),例如將要簽名的數(shù)據(jù)A.doc更換為內(nèi)容已被篡改的B.doc;(7)篡改輸出,欺騙用戶的眼睛。
有的簽名軟件要求在計算簽名之前對要簽名的數(shù)據(jù)進行確認,但這種確認是在用戶計算機上進行的,如果木馬程序篡改了要簽名的數(shù)據(jù)(A.doc變成了B.doc),并對原來的正確數(shù)據(jù)A.doc進行備份。當簽名軟件要求用戶確認已輸入卡內(nèi)的數(shù)據(jù)時,會向用戶輸出數(shù)據(jù),木馬程序可以截獲輸出數(shù)據(jù),替換成原來的正確數(shù)據(jù)再顯示給用戶,從而騙過用戶確認,但實際輸入智能卡內(nèi)的數(shù)據(jù)是已經(jīng)被篡改過的B.doc。
在簽名運算需要用到私鑰時,可能要求用戶輸入PIN碼,通常PIN碼是通過用戶計算機的鍵盤輸入再傳輸給智能卡,這種PIN碼輸入方式很容易被截獲。非法用戶截獲PIN碼后,就可以使用用戶的PIN碼進行違背用戶意愿的簽名。
由此可見,智能卡或USB KEY也不能保證簽名運算是針對用戶想要簽名的數(shù)據(jù),即簽名運算不是針對用戶確認過的數(shù)據(jù),無法保證“所見即所簽(what you see is what you sign)”。
另一方面,隨著移動通信的飛速發(fā)展,越來越多的人使用各類手持設(shè)備如手機(移動電話)、PDA等從事移動的電子交易。尤其是手機,已經(jīng)不僅僅是一個可移動的無線電話,而逐漸成為一種獨立的安全計算環(huán)境,能夠處理廣泛的服務(wù)和應(yīng)用,比如銀行業(yè)務(wù)、電子支付、票務(wù)等。
該類手持設(shè)備具有如下的特點安全性硬件方面可以抵抗硬件破壞、電磁干擾等攻擊,能夠保證數(shù)據(jù)存儲和運算的封閉性和安全性;操作系統(tǒng)具有嚴格的認證與授權(quán)機制,具有安全會話功能和較強的密碼算法。
可信性安全是可信的基礎(chǔ);軟件行為是可知的,是按照用戶預(yù)期方式運行的;設(shè)備有相關(guān)部門的認證和數(shù)字版權(quán)保護。
個人化載有個人化的安全相關(guān)數(shù)據(jù),比如PIN碼或指紋,執(zhí)行安全相關(guān)操作需要輸入這些個人秘密信息;個人身份與設(shè)備綁定,可以實現(xiàn)用戶與個人可信設(shè)備之間的雙向認證,也可以通過個人可信設(shè)備向其他服務(wù)認證用戶身份;也是用戶的認證代理,可以向用戶認證其他實體或服務(wù)的身份。
移動性和便攜性支持最新的網(wǎng)絡(luò)通信協(xié)議,比如2G/3G、TCP/IP、(W)USB、藍牙等等;支持無縫的有線或無線連接,方便隨身攜帶,通常只受用戶本人控制和使用。
但是,現(xiàn)有的手持設(shè)備主要是針對通話、記事等用途設(shè)計的,本身并不能直接提供數(shù)字簽名服務(wù)。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對現(xiàn)有智能卡和手持設(shè)備的不足,提供一種既使用方便、又安全可靠的新型個人可信設(shè)備。該個人可信設(shè)備能夠支持數(shù)字簽名,從而為使用者提供安全的計算環(huán)境。
本發(fā)明的另外一個目的是提供上述個人可信設(shè)備實現(xiàn)數(shù)字簽名的方法。
為實現(xiàn)上述的發(fā)明目的,本發(fā)明采用下述的技術(shù)方案一種支持數(shù)字簽名的個人可信設(shè)備,具有通信接口和用戶接口,其特征在于所述個人可信設(shè)備還具有交易數(shù)據(jù)處理模塊、交易數(shù)據(jù)解析器和安全組件,所述交易數(shù)據(jù)處理模塊和所述交易數(shù)據(jù)解析器相互連接,并通過安全組件接口與所述安全組件進行連接;所述交易數(shù)據(jù)處理模塊接收所述個人可信設(shè)備收到的簽名請求和需要數(shù)字簽名的數(shù)據(jù),該數(shù)據(jù)經(jīng)所述交易數(shù)據(jù)解析器解析之后,通過所述用戶接口接受用戶的檢驗;用戶確認之后由所述安全組件執(zhí)行簽名運算,簽名運算結(jié)果返回所述交易數(shù)據(jù)處理模塊,由所述個人可信設(shè)備向外發(fā)送。
其中較優(yōu)地,所述安全組件包括中央處理器、存儲器組、芯片操作系統(tǒng)、輸入/輸出接口、隨機數(shù)發(fā)生器和密碼協(xié)處理器。
所述安全組件還包括用于實現(xiàn)數(shù)字簽名處理的數(shù)字簽名處理模塊。
所述存儲器組中存放有初始密鑰對、根CA證書、初始PIN碼,具體應(yīng)用的服務(wù)證書。
所述個人可信設(shè)備為手機或者具有手機通信功能的PDA。
所述個人可信設(shè)備支持GSM通信系統(tǒng)時,所述安全組件為PKSIM卡。
所述個人可信設(shè)備支持CDMA通信系統(tǒng)時,所述安全組件為支持數(shù)字簽名的UIM卡。
所述通信接口為天線,所述用戶接口包括顯示屏和鍵盤。
所述交易數(shù)據(jù)解析器為XML數(shù)據(jù)解析器。
一種利用支持數(shù)字簽名的個人可信設(shè)備實現(xiàn)數(shù)字簽名的方法,其特征在于(1)服務(wù)端將需要簽名的交易數(shù)據(jù)和簽名請求發(fā)送到所述個人可信設(shè)備上;(2)交易數(shù)據(jù)處理模塊接收簽名請求和需要簽名的交易數(shù)據(jù),并將需要簽名的交易數(shù)據(jù)發(fā)送給交易數(shù)據(jù)解析器,交易數(shù)據(jù)解析器解析出各個交易數(shù)據(jù)項反饋給交易數(shù)據(jù)處理模塊;
(3)交易數(shù)據(jù)處理模塊通知用戶檢驗交易數(shù)據(jù)項的真實性和完整性;(4)如果交易數(shù)據(jù)都已確認無誤,交易數(shù)據(jù)處理模塊就將交易數(shù)據(jù)發(fā)送給安全組件,并向安全組件發(fā)出數(shù)字簽名命令;(5)安全組件使用私鑰進行數(shù)字簽名運算;(6)安全組件向交易數(shù)據(jù)處理模塊返回簽名結(jié)果;(7)個人可信設(shè)備將簽名結(jié)果發(fā)送給服務(wù)端。
其中較優(yōu)地,所述步驟(1)中,所述服務(wù)端按照與交易數(shù)據(jù)解析器一致的編碼/解碼規(guī)則將需要簽名的交易數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的格式之后,發(fā)送給所述個人可信設(shè)備。
所述步驟(4)中,如果用戶對交易數(shù)據(jù)項確認無誤,就按確認鍵通知交易數(shù)據(jù)處理模塊;否則交易數(shù)據(jù)處理模塊拒絕進行數(shù)字簽名運算。
所述步驟(5)中,如果所述安全組件進行數(shù)字簽名運算需要用到用戶私鑰,個人可信設(shè)備提示用戶輸入私鑰保護PIN;所述安全組件驗證PIN碼是否正確,如果PIN錯誤并且重試次數(shù)已滿,所述安全組件將拒絕簽名運算;如果PIN正確,所述安全組件執(zhí)行簽名運算。
所述安全組件為支持數(shù)字簽名的SIM或者UIM卡。
本發(fā)明所述的個人可信設(shè)備可以提供一種安全的計算環(huán)境,保證數(shù)據(jù)傳輸、數(shù)據(jù)再現(xiàn)確認、密鑰存儲、簽名運算的安全性。該個人可信設(shè)備可以由現(xiàn)有的手機改造而成,使用和攜帶都很方便。
下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步的說明。
圖1描繪了采用智能卡的數(shù)字簽名方案可能遭受的木馬攻擊;圖2為本發(fā)明所提供的個人可信設(shè)備的系統(tǒng)結(jié)構(gòu)和應(yīng)用模型;圖3為本發(fā)明中,安全組件的結(jié)構(gòu)示意圖。
圖4為使用本發(fā)明所提供的手機進行數(shù)字簽名的流程圖;圖5為使用本發(fā)明所提供的手機進行個人銀行業(yè)務(wù)中的異地跨行轉(zhuǎn)帳交易及數(shù)字簽名流程圖。
具體實施例方式
前已述及,信息安全包括數(shù)據(jù)存儲的安全性、運算的安全性、數(shù)據(jù)傳輸?shù)陌踩?,這些安全性需要構(gòu)成計算環(huán)境的硬件和軟件共同來保證?,F(xiàn)有的智能卡或USB KEY雖然可以保障數(shù)據(jù)存儲和數(shù)據(jù)運算的安全性,實現(xiàn)一定意義上的個人安全環(huán)境。但由于其自身沒有鍵盤和顯示屏,其存儲和運算功能依賴于它們與個人計算機的數(shù)據(jù)交互,從而難以保證數(shù)據(jù)傳輸?shù)陌踩?。而個人計算機雖然具有鍵盤和顯示屏,便于人們進行相應(yīng)的計算工作,但本身的安全性是缺乏保障的。
本發(fā)明人分析了上述智能卡及個人計算機的不足,認為必須將智能卡的安全可靠和個人計算機的操作方便兩方面特性結(jié)合起來,才有可能為用戶提供一種既使用方便、又安全可靠的新型個人可信設(shè)備。經(jīng)過研究,本發(fā)明人認為現(xiàn)有的手機、PDA等手持設(shè)備是該個人可信設(shè)備可行的技術(shù)原型。手機內(nèi)的SIM/UIM卡具有安全存儲和運算功能,手機的鍵盤可以輸入PIN碼,手機屏幕可以再現(xiàn)和確認要簽名的數(shù)據(jù),因此,在手機內(nèi)可以順利完成數(shù)字簽名的數(shù)據(jù)再現(xiàn)確認、密鑰訪問、簽名運算,可以保證數(shù)字簽名的各個步驟無懈可擊。
下面,將以GSM手機作為手持設(shè)備的典型代表,對本個人可信設(shè)備的具體實施方式
展開詳細的說明,支持其他通信模式的手機或者PDA具體實施方式
與以下描述基本類似,在此不一一贅述。圖2描述了該個人可信設(shè)備的系統(tǒng)結(jié)構(gòu)和應(yīng)用模型。在該圖中,突出了為支持數(shù)字簽名而對手機本身和SIM卡的改造。
如圖2所示,在現(xiàn)有手機的內(nèi)部,增加了兩個模塊,分別是交易數(shù)據(jù)處理模塊和交易數(shù)據(jù)解析器。另外,對作為安全組件的SIM卡也進行了改造,使之成為支持數(shù)字簽名應(yīng)用的PKSIM(Public Key SubscriberIdentity Module)卡,該卡內(nèi)集成有手機的芯片操作系統(tǒng)。上述的交易數(shù)據(jù)處理模塊與手機的處理器相連,并且和數(shù)據(jù)解析器相互連接,交易數(shù)據(jù)處理模塊通過安全組件接口與PKSIM卡相互連接。這樣,該手機一方面通過用戶接口(鍵盤和屏幕)實現(xiàn)與手機用戶之間的交互,另一方面通過通信接口實現(xiàn)向服務(wù)注冊機構(gòu)的注冊和與應(yīng)用服務(wù)商之間的交易。
在本發(fā)明中,作為安全組件的PKSIM卡是使手機實現(xiàn)各種安全功能的關(guān)鍵性部件。如圖3所示,該PKSIM卡除了包括一般SIM卡都具有的中央處理器(CPU)、存儲器組、芯片操作系統(tǒng)(Chip Operating System,COS)、輸入/輸出接口之外,還具有隨機數(shù)發(fā)生器和密碼協(xié)處理器,以支持數(shù)字簽名應(yīng)用,同時還增加了數(shù)字簽名處理模塊,負責接收數(shù)字簽名相關(guān)命令,處理命令并返回簽名結(jié)果,通常情況下,是將數(shù)字簽名處理模塊作為芯片操作系統(tǒng)的一部分。芯片操作系統(tǒng)與CPU進行交互,完成命令解析、數(shù)據(jù)I/O、普通運算與控制,當解析到數(shù)字簽名相關(guān)命令時,由CPU調(diào)用密碼協(xié)處理器完成簽名運算,當要用到隨機數(shù)時,CPU調(diào)用隨機數(shù)發(fā)生器處理取隨機數(shù)命令,CPU取到隨機數(shù)后交給密碼協(xié)處理器進一步完成簽名運算。如果安全組件是由SIM此類智能卡擴展而成,那么輸入/輸出接口通常為IC卡的8個觸點;存儲器組通常包含RAM、ROM、EEPROM、FLASH等類型的存儲器。
這里的隨機數(shù)發(fā)生器可以采用現(xiàn)有的多種技術(shù),如直接放大、離散時間混沌和振蕩器采樣等。目前,隨機數(shù)發(fā)生器設(shè)計中最流行的方法是振蕩器采樣法,其基本設(shè)計思想是利用兩個獨立工作的高、低頻振蕩器之間的相對關(guān)系來得到非確定噪聲源,用高抖動低頻振蕩器采樣高頻振蕩器,從而產(chǎn)生隨機數(shù)序列。其中,產(chǎn)生隨機數(shù)的關(guān)鍵元件是低頻振蕩器,因為它的設(shè)計具有頻率不穩(wěn)定性,即抖動,而且低頻與高頻之比經(jīng)過仔細選擇可以符合一定條件。隨機數(shù)發(fā)生器的詳細設(shè)計方案是智能卡領(lǐng)域一般技術(shù)人員所公知的技術(shù)內(nèi)容,在此就不贅述了。
密碼運算協(xié)處理器是一個專用于加密和相關(guān)運算的處理器。該處理器用于從主處理器中將計算量繁重的密碼運算轉(zhuǎn)移到專用的數(shù)字處理器中。該設(shè)備也是智能卡領(lǐng)域的常規(guī)技術(shù),在此就不詳細說明了。
上述的PKSIM卡由智能卡廠商初始化后,卡內(nèi)就存放了初始密鑰對、根CA(Certificate Authority)證書、初始PIN碼。再經(jīng)過服務(wù)注冊過程(個人化)后,具體應(yīng)用的服務(wù)證書被裝載到PKSIM卡中。
PKSIM卡的芯片操作系統(tǒng)(Chip Operating System,COS)能夠?qū)崿F(xiàn)簽名的命令解析與應(yīng)答。為支持PKI和數(shù)字簽名,作為芯片操作系統(tǒng)一部分的數(shù)字簽名處理模塊添加的主要命令有●數(shù)據(jù)壓縮命令采用安全散列算法將數(shù)據(jù)壓縮。
●密鑰對生成命令卡內(nèi)自動生成非對稱算法密鑰對。
●數(shù)據(jù)加密命令采用非對稱算法公鑰對數(shù)據(jù)進行加密。
●數(shù)據(jù)解密命令采用非對稱算法私鑰對數(shù)據(jù)進行解密。
●簽名命令用非對稱算法私鑰對交易數(shù)據(jù)進行簽名。
●簽名驗證用非對稱算法公鑰對簽名數(shù)據(jù)進行驗證。
使用手機進行數(shù)字簽名,有個難點就是支持的文件格式和數(shù)據(jù)量有限。比如,對于音頻或視頻數(shù)據(jù)、帶有表格的大文本數(shù)據(jù),就很難顯示和確認。因此,要在手機的小小顯示屏上再現(xiàn)要簽名的數(shù)據(jù),確?!八娂此灐保壳半y以實現(xiàn)通用的簽名設(shè)備,只能針對具體的應(yīng)用定制相應(yīng)的編碼格式和數(shù)據(jù)解析器。一般的電子交易最后形成的要簽名的數(shù)據(jù)只是少量的關(guān)鍵文本數(shù)據(jù),易于進行編碼和解析,易于按照特定格式在手機屏幕上顯示。為此,本發(fā)明人在此提供了采用對此類關(guān)鍵性的文本數(shù)據(jù)采用了基于XML的解決方案,即交易數(shù)據(jù)解析器為XML數(shù)據(jù)解析器。當然,采用其它的數(shù)據(jù)格式也是完全可以的,在此就不贅述了。
XML是一種用來結(jié)構(gòu)化文件信息的標記語言,XML規(guī)范中對于如何標記文件的結(jié)構(gòu)性有一個詳細的法則,解析器就是根據(jù)這些法則寫出來的軟件。XML以其標準的結(jié)構(gòu),嚴謹?shù)奈姆ǎ瑥姶蟮拿枋瞿芰Γ约蔼毩⒑烷_放性,在描述數(shù)據(jù)資源方面得到了廣泛的應(yīng)用。由于手機屏幕能顯示的數(shù)據(jù)格式有限,而且數(shù)字簽名通常針對不同的應(yīng)用,需要簽名的數(shù)據(jù)的格式各不相同,因此,需要針對具體的應(yīng)用設(shè)計相應(yīng)的數(shù)據(jù)解析器,使得交易數(shù)據(jù)在計算機上和手機上的顯示一致。通常,我們要簽名的數(shù)據(jù)只是少數(shù)關(guān)鍵數(shù)據(jù)項,比如支付交易的支出金額、支出帳號、支付時間、收款方帳號等等,因此,針對具體的電子交易業(yè)務(wù),服務(wù)端對要簽名的交易數(shù)據(jù)用采用XML規(guī)范編碼成一定格式,同時,在手機上增加相應(yīng)的XML數(shù)據(jù)解析器,以便能夠正確地顯示交易數(shù)據(jù)的語法格式和語義。該XML數(shù)據(jù)解析器只要將有關(guān)的XML規(guī)范置入其中即可實現(xiàn)。
交易數(shù)據(jù)處理模塊的作用在于對上層用戶提供簽名操作界面,對下層向PKSIM卡發(fā)送簽名、驗證、加密、解密等命令。為用戶提供圖形化界面,提供方便的菜單或按鈕,對交易數(shù)據(jù)進行再現(xiàn)和審閱確認,發(fā)送簽名命令或取消簽名操作。根據(jù)用戶的操作,向PKSIM卡發(fā)送相應(yīng)的命令,由PKSIM卡完成簽名相關(guān)操作并返回結(jié)果。
用戶接口是用戶與手機的交互界面,主要包括鍵盤和顯示屏,還可以包括語音提示。它是數(shù)字簽名的操作平臺。通過鍵盤操作手機和PKSIM卡提供的各種功能,重要的是可以提供安全的PIN碼輸入方式。屏幕顯示可以讓用戶清楚地知道手機正在執(zhí)行什么操作,可以讓用戶檢查和確認要簽名的數(shù)據(jù)。這種在手機上直接執(zhí)行的輸入輸出,解決了個人計算機上輸入輸出容易被監(jiān)控和截獲的危險。
安全組件接口定義手機機身與PKSIM卡之間的交互,主要功能包括★設(shè)備控制(打開、關(guān)閉);★驗證,包括驗證數(shù)據(jù)的管理(比如更改或解鎖PIN碼);
★數(shù)據(jù)訪問證書、密鑰是只讀的,其它數(shù)據(jù)可能是可讀寫的;★基于傳輸層安全協(xié)議(Transport Layer Security,TLS)或無線傳輸層安全協(xié)議(WTLS)的身份認證和會話管理;★數(shù)字簽名。
通信接口用于實現(xiàn)手機與各種應(yīng)用服務(wù)的交互。根據(jù)不同的應(yīng)用環(huán)境,可具備多種通信接口。個人可信設(shè)備通常有遠程、局部、個人三種應(yīng)用環(huán)境。對于遠程應(yīng)用環(huán)境,通過GSM網(wǎng)絡(luò)實現(xiàn)通信,可以通過WAP網(wǎng)關(guān)將手機接入Internet。對于局部應(yīng)用環(huán)境,可使用藍牙技術(shù)實現(xiàn)通信,將WAP協(xié)議棧應(yīng)用于藍牙之上,可利用WAP提供的各種安全機制實現(xiàn)認證與安全會話。對于個人應(yīng)用環(huán)境,通常是把手機與個人計算機通過USB接口相連接,也可使用紅外無線通信,或者直接通過天線發(fā)送。
根據(jù)上述系統(tǒng)模型設(shè)計的手機,已經(jīng)具備數(shù)字簽名的完整接口和安全環(huán)境。用戶買到的手機已經(jīng)完成設(shè)備初始化。在設(shè)備初始化階段,PKSIM廠商將初始PIN、密鑰對和根CA證書裝載到PKSIM中,然后將PKSIM賣給移動運營商(比如中國移動)。用戶從移動運營商那里購買手機,運營商將初始PIN等秘密信息以安全秘密的方式告訴用戶,用戶可以隨后修改PIN或重新生成自己的密鑰對。然后用戶可以使用手機注冊服務(wù),得到相應(yīng)的服務(wù)證書;只有通過注冊得到了相應(yīng)的服務(wù)證書,才能使用此服務(wù)證書實施相應(yīng)的電子交易。
下面,結(jié)合圖4詳細說明使用本手機進行數(shù)字簽名的具體過程。該過程從手機接收到需要簽名的交易數(shù)據(jù)開始,包括下述的步驟A1.對于需要簽名的交易數(shù)據(jù),服務(wù)端需要按照一定的格式進行編碼,我們采用XML編碼方式,然后將編碼后的數(shù)據(jù)發(fā)送到手機上。
A2.手機收到需要簽名的交易數(shù)據(jù)后,采用相應(yīng)的XML數(shù)據(jù)解析器解析出各個交易數(shù)據(jù)項。
A3.顯示第一項交易數(shù)據(jù)。根據(jù)具體的應(yīng)用,可能一次性顯示所有交易數(shù)據(jù),也可以采用分頁顯示。
A4.用戶判斷交易數(shù)據(jù)項是否符合自己的意愿。檢驗交易數(shù)據(jù)項的真實性和完整性,保證交易數(shù)據(jù)確實符合自己的操作,沒有遭受篡改。
A5.交易數(shù)據(jù)項確認無誤,符合用戶的意愿,就按確認鍵。
A6.判斷是否所有交易數(shù)據(jù)項都已顯示和確認完畢。如果所有數(shù)據(jù)都已顯示和確認完畢,就進入步驟A11,準備進行數(shù)字簽名運算。
A7.如果交易數(shù)據(jù)沒有顯示完畢,那么繼續(xù)顯示下一項數(shù)據(jù),轉(zhuǎn)入步驟A4。
A8.在步驟A4中,一旦發(fā)現(xiàn)數(shù)據(jù)有誤或者用戶不愿繼續(xù)此項交易,就按取消鍵。
A9.因為交易數(shù)據(jù)有誤而發(fā)出取消命令或PIN碼輸入錯誤,PKSIM卡拒絕簽名。
A10.手機向服務(wù)端報告報告簽名失敗原因;交易雙方可以取消或重復(fù)本次交易。
A11.如果所有交易數(shù)據(jù)都已確認無誤,手機就將交易數(shù)據(jù)發(fā)送給PKSIM卡,并向PKSIM卡發(fā)出數(shù)字簽名命令。
A12.PKSIM卡進行數(shù)字簽名運算需要用到用戶私鑰,提示用戶輸入私鑰保護PIN。
A13.PKSIM卡驗證PIN碼是否正確,如果PIN錯誤并且重試次數(shù)已滿,就轉(zhuǎn)入步驟A9;如果PIN正確,就轉(zhuǎn)入下一步驟A14。
A14.PKSIM卡使用私鑰進行數(shù)字簽名運算。
A15.PKSIM卡向手機返回簽名結(jié)果。
A16.手機將簽名結(jié)果發(fā)送給服務(wù)端。
A17.服務(wù)端將交易數(shù)據(jù)及相應(yīng)的簽名存入數(shù)據(jù)庫,作為交易記錄,以便日后驗證交易簽名。
A18.繼續(xù)本次交易的剩余操作,直到完成交易。
下面以個人銀行業(yè)務(wù)的異地跨行轉(zhuǎn)帳交易為例來說明使用手機進行數(shù)字簽名的具體應(yīng)用方案。在電子交易過程中,不是所有交易數(shù)據(jù)都需要簽名,比如余額查詢、歷史帳務(wù)查詢,這些交易數(shù)據(jù)都不需用戶簽名;需要用戶簽名的數(shù)據(jù)是那些涉及資金流動的數(shù)據(jù)。在個人銀行業(yè)務(wù)的異地跨行轉(zhuǎn)帳交易中,形成的需要簽名的交易數(shù)據(jù)主要包括下列的數(shù)據(jù)項
銀行服務(wù)端要求用戶對上述交易數(shù)據(jù)進行確認,然后進行數(shù)字簽名,返回簽名結(jié)果后交易才會繼續(xù)進行。
目前的網(wǎng)上銀行,對交易數(shù)據(jù)的確認都是在用戶計算機上完成的,用戶確認完畢后,才將此交易數(shù)據(jù)傳輸給USB Key進行簽名運算。我們將上述正確的交易數(shù)據(jù)稱為A記錄,用戶查看A記錄,確認無誤后,就將A記錄傳給USB Key。然而,隱藏在用戶計算機上的木馬程序會監(jiān)控網(wǎng)上銀行客戶端軟件與USB Key之間的通信,會截取A記錄,然后將A記錄中的支出金額篡改為20000.00元甚至更多,將此篡改后的記錄(稱為B記錄)傳給USB Key,這就導(dǎo)致用戶簽署的并不是剛才確認過的交易數(shù)據(jù)。
本發(fā)明的重要創(chuàng)新在于將手機改造成為一種支持PKI和數(shù)字簽名的個人可信設(shè)備,將交易數(shù)據(jù)的再現(xiàn)和確認、密鑰存儲和簽名運算從不安全的個人計算機轉(zhuǎn)移到了安全的個人可信設(shè)備中。針對上述個人銀行業(yè)務(wù)的異地跨行轉(zhuǎn)帳交易,具體的實施流程如圖5所示。其中步驟A5至A10就是對圖4所示的各項交易數(shù)據(jù)進行再現(xiàn)和確認,在交易數(shù)據(jù)進入手機之前,對交易數(shù)據(jù)的任何非法篡改都會在手機上的再現(xiàn)和確認步驟中發(fā)現(xiàn)。只有用戶對所有交易數(shù)據(jù)都確認無誤后才會進入簽名,服務(wù)端收到用戶的簽名后才會將資金轉(zhuǎn)出。各步驟的具體細節(jié)可參照對圖4的說明。
上面以最廣泛使用的手機為實例,將手機改造成支持PKI和數(shù)字簽名的個人可信設(shè)備,但本發(fā)明中所述的個人可信設(shè)備決不局限于手機,可以是其他具備類似特征的手持設(shè)備或便攜設(shè)備,如PDA等。
另外,在本實施例中,安全組件是以手機內(nèi)使用的SIM卡為例,但也不局限于此。例如現(xiàn)有CDMA手機使用的UIM卡也可以很容易地改造為支持數(shù)字簽名應(yīng)用的安全組件。
以上對本發(fā)明進行了詳細的說明,但顯然本發(fā)明的具體實現(xiàn)形式并不局限于此。對于本技術(shù)領(lǐng)域的一般技術(shù)人員來說,在不背離本發(fā)明所述方法的精神和權(quán)利要求范圍的情況下對它進行的各種顯而易見的改變都在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種支持數(shù)字簽名的個人可信設(shè)備,具有通信接口和用戶接口,其特征在于所述個人可信設(shè)備還具有交易數(shù)據(jù)處理模塊、交易數(shù)據(jù)解析器和安全組件,所述交易數(shù)據(jù)處理模塊和所述交易數(shù)據(jù)解析器相互連接,并通過安全組件接口與所述安全組件進行連接;所述交易數(shù)據(jù)處理模塊接收所述個人可信設(shè)備收到的簽名請求和需要數(shù)字簽名的數(shù)據(jù),該數(shù)據(jù)經(jīng)所述交易數(shù)據(jù)解析器解析之后,通過所述用戶接口接受用戶的檢驗;用戶確認之后由所述安全組件執(zhí)行簽名運算,簽名運算結(jié)果返回所述交易數(shù)據(jù)處理模塊,由所述個人可信設(shè)備向外發(fā)送。
2.如權(quán)利要求1所述的個人可信設(shè)備,其特征在于所述安全組件包括中央處理器、存儲器組、芯片操作系統(tǒng)、輸入/輸出接口、隨機數(shù)發(fā)生器和密碼協(xié)處理器。
3.如權(quán)利要求2所述的個人可信設(shè)備,其特征在于所述安全組件還包括用于實現(xiàn)數(shù)字簽名處理的數(shù)字簽名處理模塊。
4.如權(quán)利要求2或3所述的個人可信設(shè)備,其特征在于所述存儲器組中存放有初始密鑰對、根CA證書、初始PIN碼,具體應(yīng)用的服務(wù)證書。
5.如權(quán)利要求1所述的個人可信設(shè)備,其特征在于所述個人可信設(shè)備為手機或者具有手機通信功能的PDA。
6.如權(quán)利要求5所述的個人可信設(shè)備,其特征在于所述個人可信設(shè)備支持GSM通信系統(tǒng)時,所述安全組件為PKSIM卡。
7.如權(quán)利要求5所述的個人可信設(shè)備,其特征在于所述個人可信設(shè)備支持CDMA通信系統(tǒng)時,所述安全組件為支持數(shù)字簽名的UIM卡。
8.如權(quán)利要求5所述的個人可信設(shè)備,其特征在于所述通信接口為天線,所述用戶接口包括顯示屏和鍵盤。
9.如權(quán)利要求1所述的個人可信設(shè)備,其特征在于所述交易數(shù)據(jù)解析器為XML數(shù)據(jù)解析器。
10.一種利用支持數(shù)字簽名的個人可信設(shè)備實現(xiàn)數(shù)字簽名的方法,其特征在于(1)服務(wù)端將需要簽名的交易數(shù)據(jù)和簽名請求發(fā)送到所述個人可信設(shè)備上;(2)交易數(shù)據(jù)處理模塊接收簽名請求和需要簽名的交易數(shù)據(jù),并將需要簽名的交易數(shù)據(jù)發(fā)送給交易數(shù)據(jù)解析器,交易數(shù)據(jù)解析器解析出各個交易數(shù)據(jù)項反饋給交易數(shù)據(jù)處理模塊;(3)交易數(shù)據(jù)處理模塊通知用戶檢驗交易數(shù)據(jù)項的真實性和完整性;(4)如果交易數(shù)據(jù)都已確認無誤,交易數(shù)據(jù)處理模塊就將交易數(shù)據(jù)發(fā)送給安全組件,并向安全組件發(fā)出數(shù)字簽名命令;(5)安全組件使用私鑰進行數(shù)字簽名運算;(6)安全組件向交易數(shù)據(jù)處理模塊返回簽名結(jié)果;(7)個人可信設(shè)備將簽名結(jié)果發(fā)送給服務(wù)端。
11.如權(quán)利要求10所述的利用支持數(shù)字簽名的個人可信設(shè)備實現(xiàn)數(shù)字簽名的方法,其特征在于所述步驟(1)中,所述服務(wù)端按照與交易數(shù)據(jù)解析器一致的編碼/解碼規(guī)則將需要簽名的交易數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的格式之后,發(fā)送給所述個人可信設(shè)備。
12.如權(quán)利要求10所述的利用支持數(shù)字簽名的個人可信設(shè)備實現(xiàn)數(shù)字簽名的方法,其特征在于所述步驟(4)中,如果用戶對交易數(shù)據(jù)項確認無誤,就按確認鍵通知交易數(shù)據(jù)處理模塊;否則交易數(shù)據(jù)處理模塊拒絕進行數(shù)字簽名運算。
13.如權(quán)利要求10所述的利用支持數(shù)字簽名的個人可信設(shè)備實現(xiàn)數(shù)字簽名的方法,其特征在于所述步驟(5)中,如果所述安全組件進行數(shù)字簽名運算需要用到用戶私鑰,個人可信設(shè)備提示用戶輸入私鑰保護PIN;所述安全組件驗證PIN碼是否正確,如果PIN錯誤并且重試次數(shù)已滿,所述安全組件將拒絕簽名運算;如果PIN正確,所述安全組件執(zhí)行簽名運算。
14.如權(quán)利要求10所述的利用支持數(shù)字簽名的個人可信設(shè)備實現(xiàn)數(shù)字簽名的方法,其特征在于所述安全組件為支持數(shù)字簽名的SIM或者UIM卡。
全文摘要
本發(fā)明提供了一種支持數(shù)字簽名的個人可信設(shè)備及其實現(xiàn)簽名方法。該設(shè)備具有通信接口和用戶接口,并包括交易數(shù)據(jù)處理模塊、交易數(shù)據(jù)解析器和安全組件,交易數(shù)據(jù)處理模塊和交易數(shù)據(jù)解析器相互連接,交易數(shù)據(jù)處理模塊通過安全組件接口與安全組件相互連接。該個人可信設(shè)備可以是GSM手機,安全組件可以是PKSIM卡。使用本發(fā)明,能夠確保數(shù)字簽名的密鑰存儲安全、簽名計算安全、數(shù)據(jù)傳輸安全,從而保證數(shù)字簽名全過程的安全性,具有廣泛的應(yīng)用前景。
文檔編號H04L9/32GK1805339SQ20051004888
公開日2006年7月19日 申請日期2005年12月31日 優(yōu)先權(quán)日2005年12月31日
發(fā)明者高翔, 雷繼業(yè) 申請人:北京握奇數(shù)據(jù)系統(tǒng)有限公司