電子簽名方法、系統(tǒng)及設(shè)備的制造方法
【專利摘要】公開了用于生成數(shù)字簽名的方法、設(shè)備和系統(tǒng)。設(shè)備可以將其本身作為大容量存儲(chǔ)裝置提供至主計(jì)算機(jī),以通過用于交換文件的標(biāo)準(zhǔn)大容量存儲(chǔ)裝置訪問機(jī)構(gòu)來提供加密處理結(jié)果。
【專利說明】電子簽名方法、系統(tǒng)及設(shè)備
[0001]相關(guān)申請(qǐng)的交叉引用
[0002]本申請(qǐng)要求于2013年12月31日提交的序列號(hào)為61/922 ,128的題為“ElectronicSigning Methods,Systems,and Apparatus”的美國(guó)臨時(shí)申請(qǐng)的優(yōu)先權(quán),該申請(qǐng)的全部公開內(nèi)容通過引用并入本文中。
技術(shù)領(lǐng)域
[0003]本發(fā)明涉及對(duì)計(jì)算機(jī)和應(yīng)用的遠(yuǎn)程訪問以及通過計(jì)算機(jī)網(wǎng)絡(luò)的遠(yuǎn)程交易進(jìn)行保護(hù)。更具體地,本發(fā)明涉及用于生成電子簽名的方法和設(shè)備。
【背景技術(shù)】
[0004]隨著對(duì)計(jì)算機(jī)系統(tǒng)和應(yīng)用的遠(yuǎn)程訪問日漸普及,通過公共網(wǎng)絡(luò)如因特網(wǎng)遠(yuǎn)程訪問的交易的數(shù)目和種類顯著增加。這種普及強(qiáng)調(diào)了對(duì)安全性的需要;具體地:如何確保正在遠(yuǎn)程訪問應(yīng)用的人是他們所聲稱的人,如何確保正在遠(yuǎn)程進(jìn)行的交易是由合法的個(gè)體發(fā)起的,如何確保在應(yīng)用服務(wù)器處接收交易數(shù)據(jù)之前該交易處理數(shù)據(jù)不被更改,以及如何保證個(gè)體一旦從事交易則不能否認(rèn)。
[0005]過去,應(yīng)用提供者曾依賴靜態(tài)口令來提供針對(duì)遠(yuǎn)程應(yīng)用的安全性。近年來,顯而易見,靜態(tài)口令是不夠的,并且需要更先進(jìn)的安全性技術(shù)。
[0006]—種解決方案是數(shù)字簽名數(shù)據(jù),例如使用非對(duì)稱數(shù)字簽名算法的電子文件(例如電子文檔),該非對(duì)稱數(shù)字簽名算法利用公鑰私鑰對(duì)中的私鑰來進(jìn)行參數(shù)化。這可以例如使用公鑰構(gòu)架(PKI)而發(fā)生。在公鑰構(gòu)架中,將公鑰私鑰對(duì)與每個(gè)用戶相關(guān)聯(lián)。該密鑰對(duì)與(由受信任的認(rèn)證機(jī)構(gòu)頒發(fā)的)證書相關(guān)聯(lián),該證書將所述公鑰私鑰對(duì)綁定到特定用戶。通過使用非對(duì)稱加密,該公鑰私鑰對(duì)可以用于:驗(yàn)證用戶;對(duì)交易、文件、電子郵件進(jìn)行簽名(以便防止否認(rèn));建立加密的通信渠道;以及對(duì)已經(jīng)由發(fā)送者使用收件人的公鑰而加密的消息或文件進(jìn)行解密。
[0007]在許多情況下,用戶使用通用計(jì)算裝置(例如個(gè)人計(jì)算機(jī))與應(yīng)用進(jìn)行交互。在與應(yīng)用進(jìn)行交互的某些時(shí)候,可能會(huì)要求用戶利用與該用戶相關(guān)聯(lián)的私鑰對(duì)電子文件進(jìn)行電子簽名。
[0008]為了安全起見,用戶的私鑰通常存儲(chǔ)在適于安全地存儲(chǔ)用戶的私鑰的獨(dú)立密鑰存儲(chǔ)裝置上。在大多數(shù)情況下,密鑰存儲(chǔ)裝置還適于使用所存儲(chǔ)的私鑰根據(jù)非對(duì)稱加密算法來進(jìn)行加密計(jì)算。這樣的密鑰存儲(chǔ)裝置的示例包括PKI智能卡和PKI USB(通用串行總線)令牌。通常,用戶的通用計(jì)算機(jī)使用智能卡閱讀器與智能卡進(jìn)行交互。在大多數(shù)情況下,這些智能卡閱讀器必須通過USB接口連接至通用計(jì)算機(jī)。PKI USB令牌經(jīng)常將USB智能卡閱讀器和PKI智能卡的功能結(jié)合在單個(gè)加密狗類裝置中。
[0009]在大多數(shù)情況下,應(yīng)用通過標(biāo)準(zhǔn)加密API(應(yīng)用編程接口)例如MS-CAPI(微軟加密API)或PKCS# 11 (公鑰加密標(biāo)準(zhǔn)11)與向應(yīng)用提供高級(jí)別加密服務(wù)(例如對(duì)電子文件進(jìn)行簽名或解密)的加密庫(kù)對(duì)接,并且加密庫(kù)將高級(jí)別應(yīng)用請(qǐng)求轉(zhuǎn)化為呈一系列命令-響應(yīng),所述應(yīng)用將一系列命令-響應(yīng)與持有用戶相關(guān)聯(lián)的私鑰的用戶的智能卡進(jìn)行交換。
[0010]然而,該解決方案存在許多問題。為了使解決方案起作用,用戶所使用的PC必須具有這樣的加密庫(kù),但很多PC(個(gè)人計(jì)算機(jī))在默認(rèn)情況下不具有這種的加密庫(kù),這意味著用戶必須安裝加密庫(kù)。此外,在實(shí)踐中,智能卡與加密庫(kù)之間的接口未被標(biāo)準(zhǔn)化,這意味著用戶必須安裝與用戶的特定智能卡兼容的特定加密庫(kù)。此外,雖然大多數(shù)PC都支持USB,但他們?cè)谀J(rèn)情況下往往不支持USB智能卡閱讀器,所以用戶還必須安裝與用戶所用的智能卡閱讀器兼容的用于智能卡閱讀器的USB驅(qū)動(dòng)器。安裝要求的這種組合在實(shí)際中往往對(duì)于許多用戶來說首先開始太復(fù)雜,或者引起安裝失敗,從而使得系統(tǒng)不可靠或者甚至不能正常工作。
[0011]所需要的是一種以下解決方案:利用用戶的私鑰對(duì)電子文件進(jìn)行簽名而不要求用戶在用戶的通用計(jì)算設(shè)備上安裝特定的硬件和軟件。
【發(fā)明內(nèi)容】
[0012]本發(fā)明基于本發(fā)明人的見解,即盡管許多計(jì)算機(jī)在默認(rèn)情況下不支持USB智能卡閱讀器,但他們幾乎無一例外地支持USB大容量存儲(chǔ)裝置。
[0013]本發(fā)明的一個(gè)方面提供了一種設(shè)備,該設(shè)備包括通信接口和數(shù)據(jù)處理部件,該通信接口用于在本地將所述設(shè)備連接至主計(jì)算機(jī),該數(shù)據(jù)處理部件適于提供由通過將加密密鑰(cryptographic secret key)與第一輸入數(shù)據(jù)進(jìn)行加密組合而生成的加密處理結(jié)果;其中,所述設(shè)備可以適于:當(dāng)所述設(shè)備通過通信接口被連接至主計(jì)算機(jī)時(shí),將其本身作為大容量存儲(chǔ)裝置提供至主計(jì)算機(jī),主計(jì)算機(jī)上的應(yīng)用可以通過用于交換文件的標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)訪問大容量存儲(chǔ)裝置;以及通信接口可以適于:經(jīng)由通信接口將輸出文件返回至主計(jì)算機(jī),其中所述輸出文件可以包括加密處理結(jié)果,并且所述主計(jì)算機(jī)可以通過以下來獲得所述輸出文件:通過標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于讀取文件的機(jī)構(gòu),經(jīng)由通信接口從所述設(shè)備讀取所述輸出文件。
[0014]在一些實(shí)施方式中,所述通信接口可以包括USB接口,并且當(dāng)所述設(shè)備被連接至主計(jì)算機(jī)計(jì)算機(jī)時(shí),所述設(shè)備還可以適于將其本身作為USB大容量存儲(chǔ)裝置類的USB裝置提供至主計(jì)算機(jī)。
[0015]在一些實(shí)施方式中,所述設(shè)備可以是前述實(shí)施方式中的任一實(shí)施方式所述的設(shè)備,所述設(shè)備還包括存儲(chǔ)器部件和數(shù)據(jù)處理部件,該存儲(chǔ)器部件適于存儲(chǔ)所述加密密鑰,該數(shù)據(jù)處理部件適于利用所述加密密鑰執(zhí)行加密計(jì)算;其中,對(duì)所述加密密鑰與所述第一輸入數(shù)據(jù)進(jìn)行所述加密組合可以包括:所述數(shù)據(jù)處理部件執(zhí)行所述加密計(jì)算。
[0016]在一些實(shí)施方式中,所述設(shè)備可以是前述實(shí)施方式中的任一實(shí)施方式所述的設(shè)備,所述設(shè)備還包括:第二通信接口,用于與外部可移除密鑰存儲(chǔ)裝置進(jìn)行命令和響應(yīng)的接收和交換,所述密鑰存儲(chǔ)裝置包括密鑰存儲(chǔ)裝置存儲(chǔ)器部件和密鑰存儲(chǔ)裝置數(shù)據(jù)處理部件,該密鑰存儲(chǔ)裝置存儲(chǔ)器部件適于存儲(chǔ)所述加密密鑰,該密鑰存儲(chǔ)裝置數(shù)據(jù)處理部件適于利用所述加密密鑰來執(zhí)行加密計(jì)算;其中,對(duì)所述加密密鑰與所述第一輸入數(shù)據(jù)進(jìn)行所述加密組合可以包括:所述密鑰存儲(chǔ)裝置數(shù)據(jù)處理部件利用所述加密密鑰來執(zhí)行所述加密計(jì)算。
[0017]在一些實(shí)施方式中,所述第二通信接口可以包括智能卡接口,其可以是與IS0/IEC(國(guó)際標(biāo)準(zhǔn)化組織/國(guó)際電工委員會(huì))7816組的標(biāo)準(zhǔn)(特別是ISO/IEC 7816-2和IS0/IEC7816-3)兼容,并且所述命令和響應(yīng)可以包括智能卡命令和響應(yīng),例如智能卡APDU(應(yīng)用協(xié)議數(shù)據(jù)單元),并且所述密鑰存儲(chǔ)裝置可以是能夠執(zhí)行非對(duì)稱加密的智能卡例如PKI(公鑰構(gòu)架)智能卡。在一些實(shí)施方式中,第二通信接口可以包括可從外部訪問的智能卡插槽,以用于接收ISO/IEC 7810ID-1格式的智能卡,并且密鑰存儲(chǔ)裝置可以是ISO/IEC 7810ID-1格式的IS0/IEC 7816可兼容智能卡。在一些實(shí)施方式中,智能卡可以與IS0/IEC 7816-15標(biāo)準(zhǔn)相兼容。
[0018]在一些實(shí)施方式中,所述設(shè)備可以是前述實(shí)施方式中的任一實(shí)施方式所述的設(shè)備,所述設(shè)備還包括:用戶輸入接口,用于所述設(shè)備的用戶指示許可,其中,所述設(shè)備可以適于通過用戶輸入接口獲取用戶的許可,并且其中,以下中的至少一個(gè)可以為在所述設(shè)備上獲得許可的條件:將密鑰與第一數(shù)據(jù)進(jìn)行加密組合;或者返回包括加密組合結(jié)果的至少一個(gè)輸出文件。
[0019]在一些實(shí)施方式中,所述設(shè)備可以是前述實(shí)施方式中的任一實(shí)施方式所述的設(shè)備,其中,所述加密密鑰可以包括與應(yīng)用共享的對(duì)稱密鑰,并且其中,加密密鑰與第一輸入數(shù)據(jù)的加密組合可以包括:對(duì)第一輸入數(shù)據(jù)執(zhí)行對(duì)稱加密算法,其中對(duì)稱加密算法利用對(duì)稱密鑰被參數(shù)化。在一些實(shí)施方式中,對(duì)稱加密算法可以包括對(duì)稱加密或者解密算法,例如AES(高級(jí)加密標(biāo)準(zhǔn))。在一些實(shí)施方式中,對(duì)稱加密算法可以包括加密散列算法,例如HMAC(Hash-based Message Authenticat1n Code,基于散列的消息認(rèn)證碼)。
[0020]在一些實(shí)施方式中,所述設(shè)備可以是前述實(shí)施方式中的任一實(shí)施方式所述的設(shè)備,其中,所述加密密鑰包括非對(duì)稱公鑰私鑰對(duì)的私有密鑰(secret private key),并且其中,加密密鑰與第一輸入數(shù)據(jù)的加密組合包括:對(duì)第一輸入數(shù)據(jù)執(zhí)行非對(duì)稱加密算法,例如RSA(Rivest-Shamir-Adleman),該非對(duì)稱加密算法利用私有密鑰被參數(shù)化。
[0021]在一些實(shí)施方式中,所述設(shè)備還可以適于使得公鑰文件可用于主計(jì)算機(jī),該公鑰文件包括公鑰私鑰對(duì)的公鑰,并且其中,該主計(jì)算機(jī)通過用于讀取文件的機(jī)構(gòu)經(jīng)由通信接口從設(shè)備讀取公鑰文件來獲得公鑰文件。在一些實(shí)施方式中,公鑰文件可以與輸出文件是相同的。在其他實(shí)施方式中,公鑰文件可以是除了輸出文件之外的另外的文件。在一些實(shí)施方式中,公鑰文件包括采用標(biāo)準(zhǔn)化格式例如根據(jù)PKCS#1的公鑰。
[0022]在一些實(shí)施方式中,所述設(shè)備還可以適于使得證書文件可用于主計(jì)算機(jī),該證書文件包括與公鑰私鑰對(duì)相關(guān)聯(lián)的一個(gè)或更多個(gè)證書,并且其中,該主計(jì)算機(jī)通過以下來獲得證書文件:通過用于讀取文件的機(jī)構(gòu),經(jīng)由通信接口從設(shè)備讀取證書文件。可以由認(rèn)證機(jī)構(gòu)生成證書。在一些實(shí)施方式中,證書文件可以包括證書鏈。在一些實(shí)施方式中,所述設(shè)備可以具有一個(gè)以上的證書文件以及一個(gè)以上的證書。在一些實(shí)施方式中,證書文件可以與輸出文件或公鑰文件是相同的。在其他實(shí)施方式中,證書文件可以是與輸出文件和公鑰文件不同的另外的文件。在一些實(shí)施方式中,證書文件可以包括例如在X.509標(biāo)準(zhǔn)中所描述的標(biāo)準(zhǔn)化格式的證書。
[0023]在一些實(shí)施方式中,所述設(shè)備可以是前述實(shí)施方式中的任一實(shí)施方式所述的設(shè)備,該設(shè)備還適于生成一次性口令,其中,所述一次性口令被包括在加密密鑰與第一輸入數(shù)據(jù)的加密組合的結(jié)果中,并且其中,所述第一輸入數(shù)據(jù)包括動(dòng)態(tài)變量。
[0024]在一些實(shí)施方式中,所述設(shè)備還可以包括時(shí)鐘,并且所述動(dòng)態(tài)變量可以基于由所述時(shí)鐘提供的時(shí)間值。
[0025]在一些實(shí)施方式中,所述設(shè)備還可以適于:存儲(chǔ)第二變量;根據(jù)所存儲(chǔ)的第二變量來確定動(dòng)態(tài)變量的值;并且當(dāng)?shù)诙兞康闹狄延糜谒鼋M合時(shí),更新并存儲(chǔ)第二變量的值。在一些實(shí)施方式中,所述設(shè)備還可以包括存儲(chǔ)部件,并且還可以適于:將第二變量存儲(chǔ)在存儲(chǔ)部件中;根據(jù)所存儲(chǔ)的第二變量來確定動(dòng)態(tài)變量的值;當(dāng)?shù)诙兞康闹狄延糜谒鼋M合例如用于生成一次性口令時(shí),更新第二變量的值并且將第二變量的值存儲(chǔ)在存儲(chǔ)部件中。在一些實(shí)施方式中,所述第二變量可以包括計(jì)數(shù)器,并且更新所述第二變量可以包括:使所述計(jì)數(shù)器的值單調(diào)增加(或遞增)或單調(diào)遞減(或遞減)ο例如,在一些實(shí)施方式中,動(dòng)態(tài)變量可以是計(jì)數(shù)器,所述設(shè)備可以將該計(jì)數(shù)器存儲(chǔ)在其存儲(chǔ)器中,并且每當(dāng)所述設(shè)備生成一次性口令時(shí),該計(jì)數(shù)器可以遞增(或遞減)一。
[0026]在一些實(shí)施方式中,所述設(shè)備可以適于:在所述設(shè)備已收到來自主計(jì)算機(jī)的要讀取包括一次性口令的輸出文件的請(qǐng)求之后,生成一次性口令(OTP),并且可以在生成一次性口令之后生成包括所生成的一次性口令的輸出文件,并將所生成的輸出文件返回至主計(jì)算機(jī)。在其他實(shí)施方式中,所述設(shè)備可以適于:將一次性口令的當(dāng)前值存儲(chǔ)在永久性存儲(chǔ)器中,并且當(dāng)接收到第二變量即從主計(jì)算機(jī)接收到要讀取包括一次性口令的輸出文件的請(qǐng)求時(shí),所述設(shè)備可以生成包括所存儲(chǔ)的一次性口令的輸出文件,并且將具有所存儲(chǔ)的一次性口令的該輸出文件返回至主計(jì)算機(jī),并且隨后可以(在返回所述輸出文件之后)生成一次性口令的新值,并且在從主計(jì)算機(jī)接收到要讀取輸出文件的請(qǐng)求之前將一次性口令的存儲(chǔ)值更新為新生成的值。換句話說,在一些實(shí)施方式中,所述設(shè)備可以在接收要讀取包括所述一次性口令的輸出文件的請(qǐng)求與返回包括該一次性口令的輸出文件之間生成所述一次性口令,而在其他實(shí)施方式中,所述設(shè)備可以在返回包括一次性口令的先前值的輸出文件之后以及在接收到要讀取包括新生成的一次性口令的輸出文件的請(qǐng)求之前生成新的一次性口令值。
[0027]在一些實(shí)施方式中,所述設(shè)備可以是前述實(shí)施方式中的任一實(shí)施方式所述的設(shè)備,所述設(shè)備還適于:在輸入文件的至少一些內(nèi)容上生成數(shù)字簽名,其中所述通信接口還可以適于從主計(jì)算機(jī)接收所述輸入文件,其中所述主計(jì)算機(jī)可以通過以下來經(jīng)由通信接口將輸入文件發(fā)送至所述設(shè)備:通過標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于保存文件的機(jī)構(gòu)將輸入文件保存至由所述設(shè)備所提供的大容量存儲(chǔ)裝置,所述第一輸入數(shù)據(jù)可以基于表示輸入文件的至少一些內(nèi)容的值;以及所述數(shù)字簽名可以被包括在加密密鑰與第一輸入數(shù)據(jù)的加密組合的結(jié)果中。在一些實(shí)施方式中,所述輸入文件的所述至少一些內(nèi)容包括整個(gè)輸入文件。即,在一些實(shí)施方式中,所述設(shè)備可以適于在整個(gè)輸入文件上生成簽名。在一些實(shí)施方式中,數(shù)字簽名可以是MAC(消息認(rèn)證碼),MAC可以由所述設(shè)備利用對(duì)稱加密算法來生成。在一些實(shí)施方式中,所述加密密鑰可以包括公鑰私鑰對(duì)的私鑰,并且加密密鑰與第一輸入數(shù)據(jù)的加密組合可以包括:所述設(shè)備生成輸入文件的至少一些內(nèi)容的散列;并且通過利用私鑰而參數(shù)化的非對(duì)稱加密算法來處理該散列。在一些實(shí)施方式中,所述私鑰可以存儲(chǔ)在外部可移除密鑰存儲(chǔ)裝置上,并且所述設(shè)備可以將涉及私鑰的加密操作(例如通過利用私鑰而參數(shù)化的非對(duì)稱加密算法對(duì)所述散列的處理)委托給外部可移除密鑰存儲(chǔ)裝置。
[0028]在一些實(shí)施方式中,所述設(shè)備可以包括用于向所述設(shè)備的用戶提供輸出的用戶輸出接口以及用于獲取來自用戶的輸入的用戶輸入接口。所述設(shè)備還可以適用于:識(shí)別所述輸入文件的多個(gè)可能的文件類型格式中的至少一個(gè)的格式;讀取所述輸入文件的至少一些內(nèi)容;通過用戶輸出接口將所述至少一些內(nèi)容提供至用戶;并且通過用戶輸入接口從用戶獲取由用戶對(duì)提供至用戶的至少一些內(nèi)容作出的許可或拒絕;其中,以下中的至少一個(gè)可以為在所述設(shè)備上獲得許可的條件:將密鑰與第一數(shù)據(jù)進(jìn)行加密組合;或者返回包括加密組合結(jié)果的至少一個(gè)輸出文件。所述用戶輸出接口可以例如包括顯示器,例如LCD(液晶顯示器)。用戶輸入接口可以例如包括鍵盤,該鍵盤可以例如包括用于指示許可的OK(確定)按鈕以及用于指示拒絕的Cancel(取消)按鈕。在一些實(shí)施方式中,輸入文件可以包括例如可表示交易的數(shù)據(jù),并且所述設(shè)備可以將這些數(shù)據(jù)提供至用戶以供許可。如果用戶許可所提供的數(shù)據(jù),則所述設(shè)備可以接著在這些數(shù)據(jù)上生成簽名。如果用戶拒絕所提供的數(shù)據(jù),則所述設(shè)備可以拒絕生成有效簽名。在一些實(shí)施方式中,輸入文件可以包括呈文本形式的待簽名的數(shù)據(jù),并且將該文本提供至用戶。例如,在一些實(shí)施方式中,輸入文件可以包括ASCII(美國(guó)信息交換標(biāo)準(zhǔn)代碼)文本。
[0029]在一些實(shí)施方式中,所述設(shè)備可以是前述實(shí)施方式中的任一實(shí)施方式所述的設(shè)備,所述設(shè)備還適于:對(duì)輸入文件的至少一些內(nèi)容進(jìn)行加密或解密,其中所述通信接口還可以適于從主計(jì)算機(jī)接收所述輸入文件,其中所述主計(jì)算機(jī)可以通過以下來經(jīng)由通信接口將輸入文件發(fā)送至所述設(shè)備:通過標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于保存文件的機(jī)構(gòu)將輸入文件保存至由所述設(shè)備所提供的大容量存儲(chǔ)裝置;所述第一輸入數(shù)據(jù)可以包括所述至少一些內(nèi)容;并且加密密鑰與第一輸入數(shù)據(jù)的加密組合可以包括利用加密或解密算法對(duì)第一輸入數(shù)據(jù)進(jìn)行加密或解密,其中可以利用加密密鑰將加密或解密算法參數(shù)化。在一些實(shí)施方式中,加密或解密算法可以包括對(duì)稱加密或解密算法例如AES。在一些實(shí)施方式中,所述輸入文件的至少一些內(nèi)容包括整個(gè)輸入文件。在一些實(shí)施方式中,所述設(shè)備可以適于對(duì)整個(gè)輸入文件進(jìn)行加密或解密。
[0030]在一些實(shí)施方式中,所述設(shè)備可以是前述實(shí)施方式中的任一實(shí)施方式所述的設(shè)備,所述設(shè)備還包括用戶輸入接口,用于所述設(shè)備的用戶向所述設(shè)備提供PIN和/或口令值;所述設(shè)備還可以適于:通過用戶輸入接口從用戶獲得PIN和/或口令值,并且驗(yàn)證PIN和/或口令是否正確;其中,所述將密鑰與第一數(shù)據(jù)進(jìn)行加密組合或者所述返回包括加密組合結(jié)果的至少一個(gè)輸出文件可以以由用戶提供的PIN和/或口令值是正確的為條件。在一些實(shí)施方式中,所述設(shè)備可以適于驗(yàn)證由用戶輸入的PIN和/或口令,并且所述設(shè)備可以適于僅繼續(xù)進(jìn)行密鑰與第一數(shù)據(jù)的加密組合(例如,生成OTP或者生成簽名或者對(duì)數(shù)據(jù)進(jìn)行解密或加密),并且如果PIN和/或口令是正確的,則返回結(jié)果。在一些實(shí)施方式中,所述設(shè)備還可以適于存儲(chǔ)參考值,其中,對(duì)所獲得的PIN和/或口令值的驗(yàn)證可以包括:所述設(shè)備將所獲得的PIN和/或口令值與參考值進(jìn)行比較。
[0031]在一些實(shí)施方式中,所述設(shè)備可以將對(duì)PIN和/或口令的驗(yàn)證委托給外部可移除密鑰存儲(chǔ)裝置。在一些實(shí)施方式中,所述設(shè)備還可以包括第二通信接口,用于與外部可移除裝置進(jìn)行命令和響應(yīng)的接收和交換,其中對(duì)所獲得的PIN和/或口令值的驗(yàn)證可以包括:所述設(shè)備經(jīng)由第二通信接口向外部可移除裝置傳送PIN和/或口令代表值,所述PIN和/或口令代表值表示用于外部可移除裝置進(jìn)行驗(yàn)證的所獲得的PIN和/或口令值;并且所述設(shè)備經(jīng)由第二通信接口從外部可移除裝置接收由外部可移除裝置對(duì)代表值進(jìn)行驗(yàn)證的結(jié)果。
[0032]在一些實(shí)施方式中,所述設(shè)備可以是前述實(shí)施方式中的任一實(shí)施方式所述的設(shè)備,所述設(shè)備還包括生物特征傳感器,用于獲取所述設(shè)備的用戶的生物特征測(cè)量;所述設(shè)備還可以適于通過生物特征傳感器從用戶獲得所述生物特征測(cè)量,并且驗(yàn)證所述生物特征測(cè)量是否正確;其中,以下中的至少一個(gè)可以以所獲得的生物特征測(cè)量是正確的為條件:所述將密鑰與第一數(shù)據(jù)進(jìn)行加密組合或所述返回包括加密組合結(jié)果的至少一個(gè)輸出文件。在一些實(shí)施方式中,所述生物特征傳感器可以包括例如指紋傳感器,并且生物特征測(cè)量可以包括用戶的指紋數(shù)據(jù)。在一些實(shí)施方式中,所述設(shè)備可以適于驗(yàn)證用戶的生物特征測(cè)量,并且所述設(shè)備可以適于僅繼續(xù)對(duì)密鑰與第一數(shù)據(jù)進(jìn)行加密組合(例如,生成OTP或者生成簽名或者對(duì)數(shù)據(jù)進(jìn)行解密或加密),并且如果生物特征測(cè)量被所述設(shè)備接受,則返回結(jié)果。在一些實(shí)施方式中,所述設(shè)備還可以適于存儲(chǔ)生物特征參考數(shù)據(jù),其中,對(duì)所獲得的生物特征測(cè)量的所述驗(yàn)證可以包括:將所獲得的生物特征測(cè)量與生物特征參考數(shù)據(jù)進(jìn)行比較。
[0033]在一些實(shí)施方式中,所述設(shè)備可以將對(duì)生物特征測(cè)量的驗(yàn)證委托給外部可移除密鑰存儲(chǔ)裝置。在一些實(shí)施方式中,所述設(shè)備還可以包括第二通信接口,用于與外部可移除裝置進(jìn)行命令和響應(yīng)的接收和交換,其中對(duì)所獲得的生物特征測(cè)量的所述驗(yàn)證包括:所述設(shè)備經(jīng)由第二通信接口向外部可移除裝置傳送生物特征測(cè)量,以供外部可移除裝置進(jìn)行驗(yàn)證;并且所述設(shè)備經(jīng)由第二通信接口從外部可移除裝置接收由外部可移除裝置對(duì)生物特征測(cè)量進(jìn)行驗(yàn)證的結(jié)果。
[0034]本發(fā)明的另一方面提供了一種在電子輸入文件上生成數(shù)字簽名的方法。在一些實(shí)施方式中,所述方法可以供前述實(shí)施方式中的任一實(shí)施方式所述的設(shè)備使用。在一些實(shí)施方式中,所述方法可以供下述設(shè)備使用,所述設(shè)備可以包括用于在本地將所述設(shè)備連接至主計(jì)算機(jī)的通信接口,并且所述設(shè)備可以適于:當(dāng)所述設(shè)備被連接至主計(jì)算機(jī)時(shí),將其本身作為大容量存儲(chǔ)裝置提供至主計(jì)算機(jī),主計(jì)算機(jī)上的應(yīng)用可以通過用于讀取和保存文件的標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)來訪問大容量存儲(chǔ)裝置;經(jīng)由通信接口從主計(jì)算機(jī)接收所述輸入文件;通過向輸入文件應(yīng)用數(shù)字簽名算法來在輸入文件上生成數(shù)字簽名,其中所述數(shù)字簽名算法通過簽名密鑰(secret signature key)被參數(shù)化;經(jīng)由通信接口將輸出文件返回至主計(jì)算機(jī),其中,所述輸出文件包括輸入文件上的數(shù)字簽名。在一些實(shí)施方式中,所述方法可以包括以下步驟:使得所述設(shè)備在主計(jì)算機(jī)處進(jìn)行連接;通過使用一種用于將文件保存至標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的方法將輸入文件保存至由所述設(shè)備所提供的大容量存儲(chǔ)裝置來在主計(jì)算機(jī)處經(jīng)由通信接口將輸入文件發(fā)送至所述設(shè)備;通過使用一種用于讀取標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的文件的方法讀取所述輸出文件,來在主計(jì)算機(jī)處經(jīng)由通信接口從所述設(shè)備獲得所述輸出文件;從輸出文件中檢索數(shù)字簽名。
[0035]在一些實(shí)施方式中,所述通信接口包括USB接口,并且其中,所述設(shè)備還適于在所述設(shè)備連接至主計(jì)算機(jī)時(shí),將其本身作為USB大容量存儲(chǔ)裝置類的USB裝置提供至主計(jì)算機(jī)。
[0036]本發(fā)明的又一方面提供了一種用于在電子輸入文件中生成數(shù)字簽名的系統(tǒng)。在一些實(shí)施方式中,所述系統(tǒng)可以包括前述實(shí)施方式中的任一實(shí)施方式所述的設(shè)備。在一些實(shí)施方式中,所述系統(tǒng)可以包括適于執(zhí)行前述任一方法的一些或所有步驟的一個(gè)或更多個(gè)部件。在一些實(shí)施方式中,所述系統(tǒng)可以包括:主計(jì)算機(jī),該主計(jì)算機(jī)包括數(shù)據(jù)處理部件和連接機(jī)構(gòu),該數(shù)據(jù)處理部件用于運(yùn)行軟件應(yīng)用,該連接機(jī)構(gòu)用于將至少一個(gè)外部外圍裝置可拆卸地連接至主計(jì)算機(jī),其中,所述主計(jì)算機(jī)可以適于:支持一類大容量存儲(chǔ)裝置;如果當(dāng)所述設(shè)備被連接至主計(jì)算機(jī)時(shí)所述設(shè)備將自己通告為屬于所述種類的大容量存儲(chǔ)裝置,則將通過連接機(jī)構(gòu)被連接至主計(jì)算機(jī)的裝置識(shí)別為屬于所述種類;支持標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)以將文件讀取和保存至大容量存儲(chǔ)裝置,所述大容量存儲(chǔ)裝置經(jīng)由連接機(jī)構(gòu)連接至主計(jì)算機(jī)并且被主計(jì)算機(jī)識(shí)別為屬于所述類別的大容量存儲(chǔ)裝置;向軟件應(yīng)用提供標(biāo)準(zhǔn)大容量存儲(chǔ)裝置訪問機(jī)構(gòu)的用于將文件讀取到大容量存儲(chǔ)裝置的第一方法以及標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于將文件保存至大容量存儲(chǔ)裝置的第二方法;所述系統(tǒng)還可以包括:簽名設(shè)備,所述簽名設(shè)備包括用于通過連接機(jī)構(gòu)將簽名設(shè)備在本地連接至主計(jì)算機(jī)的通信接口,其中所述簽名設(shè)備可以適于:當(dāng)簽名設(shè)備連接至主計(jì)算機(jī)時(shí),將其本身作為屬于所述類別的大容量存儲(chǔ)裝置提供至主計(jì)算機(jī);經(jīng)由通信接口從主計(jì)算機(jī)接收所述輸入文件;通過將數(shù)字簽名算法應(yīng)用于輸入文件來在輸入文件上生成數(shù)字簽名,其中通過簽名密鑰將數(shù)字簽名算法參數(shù)化;經(jīng)由通信接口將輸出文件返回至主計(jì)算機(jī),其中所述輸出文件包括輸入文件上的數(shù)字簽名;并且其中,所述簽名設(shè)備通過通信接口和連接機(jī)構(gòu)被連接至主計(jì)算機(jī);并且所述主計(jì)算機(jī)運(yùn)行簽名應(yīng)用,所述簽名應(yīng)用適于:通過使用標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于保存文件的第二方法將輸入文件保存至所述設(shè)備,來經(jīng)由通信接口將輸入文件發(fā)送至簽名設(shè)備;并且通過使用標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的第一方法讀取所述輸出文件,來在主計(jì)算機(jī)處經(jīng)由通信接口從簽名設(shè)備獲得輸出文件。
[0037]在一些實(shí)施方式中,所述連接機(jī)構(gòu)可以包括主連接器或端口(例如USB端口),其用于將至少一個(gè)外圍裝置可拆卸地連接至主計(jì)算機(jī)和驅(qū)動(dòng)軟件(其針對(duì)主連接器)。在一些實(shí)施方式中,所述簽名設(shè)備的通信接口可以包括外圍裝置連接器,該外圍裝置連接器可以匹配主連接器或端口。
[0038]在一些實(shí)施方式中,所述通信接口可以包括USB接口,并且所述簽名設(shè)備還可以適于:當(dāng)所述簽名設(shè)備連接至主計(jì)算機(jī)時(shí),將其本身作為USB大容量存儲(chǔ)裝置類的USB裝置提供至主計(jì)算機(jī)。
[0039]在一些實(shí)施方式中,所述主計(jì)算機(jī)可以例如包括筆記本電腦或PC(個(gè)人計(jì)算機(jī))。在一些實(shí)施方式中,在主計(jì)算機(jī)上運(yùn)行的應(yīng)用可以包括客戶端應(yīng)用,該客戶端應(yīng)用使得主計(jì)算機(jī)的用戶能夠進(jìn)行遠(yuǎn)程訪問以及/或者與基于可遠(yuǎn)程訪問計(jì)算機(jī)的應(yīng)用進(jìn)行交互。例如,在一些實(shí)施方式中,在主計(jì)算機(jī)上運(yùn)行的應(yīng)用可以包括web瀏覽器,用戶可以與在遠(yuǎn)程web服務(wù)器上運(yùn)行的基于web的應(yīng)用進(jìn)行交互,其中遠(yuǎn)程web服務(wù)器可以經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)例如因特網(wǎng)被連接至主計(jì)算機(jī)。該應(yīng)用可以將待簽名的一些數(shù)據(jù)(例如合同)匯編到輸入文件中并且將輸入文件提供至用戶。用戶可以將他或她的簽名設(shè)備連接至主計(jì)算機(jī)(例如,在主計(jì)算機(jī)的USB端口上),并且簽名設(shè)備可以將其本身作為大容量存儲(chǔ)裝置(例如USB大容量存儲(chǔ)裝置)提供至主計(jì)算機(jī)。用戶可以例如在稱為“待簽名文件”的目錄中下載文件,并且將具有待簽名數(shù)據(jù)的輸入文件保存至簽名設(shè)備(其作為大容量存儲(chǔ)裝置出現(xiàn)在主計(jì)算機(jī)上)。簽名設(shè)備可以通過創(chuàng)建其中包括簽名的輸出文件來對(duì)輸入文件進(jìn)行簽名和用信號(hào)通知該簽名已準(zhǔn)備好用于檢索,所述簽名可以具有與輸入文件相同的名稱或者可以具有固定名稱(例如‘ signature_fi Ie ’),或者可以是輸入文件名稱的更改版本,并且可以使得該輸出文件在例如稱為“簽名”的目錄中的特定位置處可用,并且用戶可以指引瀏覽器來將該輸出文件讀取并上傳至應(yīng)用。在一些實(shí)施方式中,輸入文件可以是文本文件,并且簽名設(shè)備在對(duì)所述輸入文件的內(nèi)容進(jìn)行簽名之前可以在簽名設(shè)備的顯示器上將在輸入文件中包括的文本提供至用戶。用戶可以查看所提供的文本,并且通過按壓在簽名設(shè)備的鍵盤上的OK(或Cancel)按鈕來許可(或拒絕)所提供的文本。在用戶已許可所提供的文本之后,簽名設(shè)備可以接著對(duì)該輸入文件進(jìn)行簽名。
[0040]在另一示例中,用戶可以使用客戶端應(yīng)用與需要用戶來認(rèn)證的應(yīng)用進(jìn)行交互??蛻舳藨?yīng)用可以通過讀取其中包括一次性口令的輸出文件來獲得一次性口令(其可以具有固定的名稱和位置,例如“憑證/一次性口令”),其中,該設(shè)備可以在接收到要讀取所述輸出文件的請(qǐng)求時(shí)立即生成一次性口令。然后,應(yīng)用可以從輸出文件中檢索一次性口令。在一些實(shí)施方式中,所述設(shè)備可以生成一次性口令或者通過使用非對(duì)稱數(shù)字簽名算法來對(duì)文件進(jìn)行簽名,其中可以通過與用戶相關(guān)聯(lián)的公鑰私鑰對(duì)的私鑰將非對(duì)稱數(shù)字簽名算法參數(shù)化。在一些實(shí)施方式中,應(yīng)用可以通過讀取其他特定文件來獲得與私鑰對(duì)應(yīng)的公鑰和/或公鑰的證書(用于驗(yàn)證簽名或一次性口令),其中其他特定文件可能包括公鑰和/或證書(如“憑證/公鑰”或“憑證/證書”)。在其他實(shí)施方式中,可以將公鑰和/或證書作為簽名或一次性口令編碼到同一輸出文件中。
[0041]在一些實(shí)施方式中,根據(jù)本發(fā)明的方面的設(shè)備包括或者包括簽名裝置,該簽名裝置具有用于在本地將所述裝置連接至主計(jì)算機(jī)的第一通信接口,該主計(jì)算機(jī)可以包括通用計(jì)算裝置,例如PC(個(gè)人計(jì)算機(jī))或者筆記本電腦。在一些實(shí)施方式中,通信接口可以包括USB接口。在一些實(shí)施方式中,簽名裝置將其本身作為USB大容量存儲(chǔ)裝置類的裝置通告所連接的主計(jì)算機(jī)。
[0042]在一些實(shí)施方式中,簽名裝置可以適于:從簽名裝置通過其USB接口所連接的主計(jì)算機(jī)接收輸入文件,其中主計(jì)算機(jī)可以通過經(jīng)由用于將文件保存至USB大容量存儲(chǔ)裝置類的裝置的標(biāo)準(zhǔn)接口以將輸入文件保存至簽名裝置所提供至主計(jì)算機(jī)的大容量存儲(chǔ)裝置來將輸入文件遞送至簽名裝置。然后,簽名裝置可以使用與用戶相關(guān)聯(lián)的公鑰私鑰對(duì)的私鑰來對(duì)所接收的輸入文件進(jìn)行加密處理。簽名裝置可以將輸入文件的加密處理結(jié)果(例如,簽名或經(jīng)解密的文件或一次性口令)存儲(chǔ)在輸出文件中。主計(jì)算機(jī)上的應(yīng)用可以通過以下來獲得結(jié)果:通過用于從USB大容量存儲(chǔ)裝置類的裝置讀取文件的標(biāo)準(zhǔn)接口,從簽名裝置提供至主計(jì)算機(jī)的大容量存儲(chǔ)裝置讀取所述輸出文件。
[0043]在一些實(shí)施方式中,簽名裝置可以安全地存儲(chǔ)與用戶相關(guān)聯(lián)的簽名密鑰,并且可以適于使用所存儲(chǔ)的用于對(duì)文件進(jìn)行簽名或解密的簽名密鑰根據(jù)加密算法來執(zhí)行加密計(jì)算。在一些實(shí)施方式中,簽名密鑰可以包括與用戶相關(guān)聯(lián)的公鑰私鑰對(duì)的私鑰,并且加密算法可以包括非對(duì)稱加密算法,例如RSA (R ivest-Sham ir-Ad I eman)算法或橢圓曲線算法。
[0044]用于智能卡的接口裝置。
[0045]在一些實(shí)施方式中,簽名裝置可以包括用于與外部可移除密鑰存儲(chǔ)裝置進(jìn)行通信的第二通信接口,該外部可移除密鑰存儲(chǔ)裝置適于存儲(chǔ)與用戶相關(guān)聯(lián)的私鑰,并且使用所存儲(chǔ)的私鑰根據(jù)非對(duì)稱加密算法來執(zhí)行加密計(jì)算。在一些實(shí)施方式中,簽名裝置可以將涉及私鑰(例如用于對(duì)文件進(jìn)行簽名或解密或者用于生成0ΤΡ)的加密計(jì)算中的至少一些加密計(jì)算委托給密鑰存儲(chǔ)裝置。在一些實(shí)施方式中,第二通信接口可以包括智能卡接口,并且密鑰存儲(chǔ)裝置可以包括智能卡。在一些實(shí)施方式中,智能卡可以是ISO 7816可兼容的智能卡,并且第二通信接口可以是ISO 7816可兼容的。在一些實(shí)施方式中,智能卡可以是具有PKI功能的智能卡。
[0046]加密庫(kù)、智能卡閱讀器和/或智能卡驅(qū)動(dòng)器的仿真。
[0047]在一些實(shí)施方式中,簽名裝置可以用于模擬加密庫(kù)、USB智能卡閱讀器和USB智能卡驅(qū)動(dòng)器中的一個(gè)或更多個(gè)(包括所有三種的組合),從而不再需要將所述這些的一個(gè)或更多個(gè)提供或安裝在用戶的主計(jì)算機(jī)上。
[0048]例如,在一些實(shí)施方式中,尋求在電子文件例如電子文檔上獲得簽名的應(yīng)用可以如下繼續(xù)進(jìn)行,其中利用與用戶相關(guān)聯(lián)的私鑰生成簽名,并且將其安全地存儲(chǔ)在例如用戶的智能卡上。代替與標(biāo)準(zhǔn)加密的API例如PKCS# 11或MS-CAPI進(jìn)行對(duì)接以獲得通過與用戶相關(guān)聯(lián)并存儲(chǔ)在用戶的智能卡上的私鑰來簽名的電子文檔,所述應(yīng)用可以使用標(biāo)準(zhǔn)接口將待簽名的文件傳送至簽名裝置,以將包括電子文檔的文件保存至USB大容量存儲(chǔ)裝置類的裝置。然后,簽名裝置可以進(jìn)行通過使用現(xiàn)有智能卡命令與智能卡針對(duì)生成簽名進(jìn)行交互來在電子文檔上生成簽名。例如,簽名裝置可以通過用于將文件保存至簽名裝置的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口從主計(jì)算機(jī)上的應(yīng)用接收具有待簽名的電子文檔的輸入文件。然后,簽名裝置可以(例如使用散列算法,例如SHA-1)生成所接收的電子文檔的消息摘要,并且使用普通現(xiàn)有的智能卡命令來將所生成的消息摘要遞送至智能卡,以指示智能卡在消息摘要上生成簽名并且從智能卡接收所生成的簽名。然后,簽名裝置可以將所接收的簽名保存在輸出文件中,并且所述應(yīng)用可以通過以下來檢索包括簽名的該輸出文件:通過用于從簽名裝置讀取文件的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口,從簽名裝置讀取所述輸出文件。
[0049]對(duì)電子文件進(jìn)行簽名。
[0050]在一些實(shí)施方式中,簽名裝置可以用于按以下方式對(duì)電子文件進(jìn)行簽名。所述應(yīng)用可以通過使用用于將文件保存至簽名裝置的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口來將待簽名的文件(其還可以被稱為輸入文件)傳送至簽名裝置。當(dāng)接收到所述輸入文件時(shí),簽名裝置可以使用與用戶相關(guān)聯(lián)的私鑰在所接收的輸入文件上生成簽名。當(dāng)簽名裝置已生成簽名時(shí),簽名裝置可以使得能夠讀取包括所生成的簽名的輸出文件。所述應(yīng)用可以如將在下面更詳細(xì)地描述的那樣通過使用用于從簽名裝置讀取文件的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口讀取該簽名文件或輸出文件來獲得簽名。
[0051]在一些實(shí)施方式中,輸出文件采用標(biāo)準(zhǔn)簽名格式。在一些實(shí)施方式中,輸出文件包括待簽名的原始文件的數(shù)據(jù)以及實(shí)際簽名二者。在一些實(shí)施方式中,輸出文件的格式可以通過輸入文件的格式來確定。在一些實(shí)施方式中,簽名裝置可以在輸入文件被接收時(shí)立即處理待簽名的輸入文件,并且可以不存儲(chǔ)整個(gè)輸入。例如,在一些實(shí)施方式中,簽名裝置可以立即在輸入文件上生成消息摘要,并且當(dāng)輸入文件的原始內(nèi)容已經(jīng)被用于生成消息摘要時(shí)可以丟棄輸入文件的原始內(nèi)容,并且可以使用消息摘要來生成簽名。
[0052]對(duì)電子文件進(jìn)行解密。
[0053]在一些實(shí)施方式中,簽名裝置可以用于利用與用戶相關(guān)聯(lián)的私鑰對(duì)應(yīng)的公鑰來對(duì)已加密的電子文件進(jìn)行解密。所述應(yīng)用可以通過使用用于將文件保存至簽名裝置的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口來將待解密的文件(其還可以被稱為輸入文件)傳送至簽名裝置。當(dāng)接收到所述輸入文件時(shí),簽名裝置可以使用與用戶相關(guān)聯(lián)的私鑰對(duì)所接收的輸入文件進(jìn)行解密。當(dāng)簽名裝置已經(jīng)將輸入文件解密時(shí),簽名裝置可以使得能夠讀取包括解密文件的輸出文件。所述應(yīng)用可以如將在下面更詳細(xì)地描述的那樣通過使用用于從簽名裝置讀取文件的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口以讀取該解密文件或輸出文件來獲得簽名。
[0054]生成一次性口令。
[0055]在一些實(shí)施方式中,簽名裝置可以用于生成一次性口令,其中,用戶的私鑰用于對(duì)動(dòng)態(tài)變量進(jìn)行簽名,其中動(dòng)態(tài)變量的值是簽名裝置和將驗(yàn)證一次性口令(OTP)的實(shí)體二者已知的(或使得知曉)。在一些實(shí)施方式中,一次性口令可以包括動(dòng)態(tài)變量上的簽名。在一些實(shí)施方式中,通過簽名裝置生成以及/或者保持動(dòng)態(tài)變量。例如,在一些實(shí)施方式中,簽名裝置可以包括用于生成時(shí)間值的時(shí)鐘,簽名裝置可以使用該時(shí)間值來確定用于生成基于時(shí)間的OTP的動(dòng)態(tài)變量的值。在其他實(shí)施方式中,簽名裝置可以將基于某些事件而更新的事件相關(guān)值存儲(chǔ)和保持在存儲(chǔ)器中,并且簽名裝置可以使用該事件相關(guān)值來確定用于生成基于事件的OTP的動(dòng)態(tài)變量的值。例如,在一些實(shí)施方式中,簽名裝置可以每當(dāng)簽名裝置生成一次性口令時(shí)更新該事件相關(guān)值。在一些實(shí)施方式中,事件相關(guān)值可以是計(jì)數(shù)器,并且更新事件相關(guān)值可以包括遞增計(jì)數(shù)器。在一些實(shí)施方式中,更新事件相關(guān)值可以包括:簽名裝置用新值替換事件相關(guān)值的當(dāng)前值,其中該簽名裝置可以根據(jù)事件相關(guān)值的當(dāng)前值來計(jì)算所述新值。在一些實(shí)施方式中,簽名裝置可以例如通過將散列函數(shù)應(yīng)用于事件相關(guān)值的當(dāng)前值來計(jì)算事件相關(guān)值的新值。
[0056]當(dāng)簽名裝置已生成一次性口令時(shí),簽名裝置可以使得能夠讀取包括該一次性口令的輸出文件。所述應(yīng)用可以如將在下面更詳細(xì)地描述的那樣通過使用用于從簽名裝置讀取文件的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口以讀取該簽名文件或輸出文件來獲得簽名。在一些實(shí)施方式中,可以通過經(jīng)由標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口的要讀取具有一次性口令的文件的讀取請(qǐng)求來提示由簽名裝置生成一次性口令。在一些實(shí)施方式中(例如在基于時(shí)間的OTP的情況下),簽名裝置可以在接收到來自主計(jì)算機(jī)的要讀取一次性口令輸出文件的請(qǐng)求時(shí),立即計(jì)算一次性口令,用新生成的OTP更新一次性口令輸出文件的內(nèi)容,并且將所更新的OTP輸出文件返回至主計(jì)算機(jī)。在一些實(shí)施方式中(例如在基于事件的OTP的情況下),簽名裝置可以計(jì)算新的一次性口令,并且在主計(jì)算機(jī)讀取OTP輸出文件之后用新計(jì)算的OTP值更新OTP輸出文件的內(nèi)容。
[0057]在一些實(shí)施方式中,除了一次性口令的值之外,OTP輸出文件還可以包括由簽名裝置用于計(jì)算OTP的動(dòng)態(tài)變量的值。
[0058]在一些實(shí)施方式中,OTP輸出文件可以包括采用人類可讀格式的OTP的值。在一些實(shí)施方式中,OTP輸出文件可以例如是文本文件,并且OTP可以例如以ASCII格式被編碼。在一些實(shí)施方式中,用戶可以利用例如主計(jì)算機(jī)上的文件管理器應(yīng)用來打開包括一次性口令的輸出文件,復(fù)制包括OTP的輸出文件中的文本,并且將所復(fù)制的OTP粘貼到應(yīng)用中。
[0059]接收輸入文件。
[0060]在一些實(shí)施方式中,簽名裝置適于:對(duì)通過用于將文件保存至簽名裝置的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口接收的任何文件進(jìn)行簽名或解密。在一些實(shí)施方式中,簽名裝置可以適于對(duì)其文件名稱與特定格式符合的任何文件進(jìn)行簽名或解密。例如,在一些實(shí)施方式中,簽名裝置可以適于對(duì)通過用于將文件保存至簽名裝置的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口接收到的具有特定文件名稱(例如“input_file_to_be_signed”)的任何文件進(jìn)行簽名,以及/或者類似地對(duì)具有另一特定文件名(例如“input_f iIe_to_be_decrypted” )的任何文件進(jìn)行解密。在一些實(shí)施方式中,簽名裝置可以適于對(duì)通過用于將文件保存至簽名裝置的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口接收到的具有特定文件路徑或正被保存至特定位置(例如,目錄“;[即111:_;^168_1:0_&6_818116(1”)的任何文件進(jìn)行簽名,以及/或者類似地對(duì)在另一特定位置(例如,目錄“input_files_to_be_decrypted”)接收到的任何文件進(jìn)行解密。
[0061 ]將輸出文件提供給主計(jì)算機(jī)。
[0062]在一些實(shí)施方式中,(如果適用的話,即如果執(zhí)行涉及輸入文件的操作)可以由簽名裝置將輸出文件保存在由標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口使用的名稱和位置下,以便正式保存所述輸入文件。也就是說,不是(如USB大容量存儲(chǔ)裝置類接口所指示的)將輸入文件本身保存在給定名稱下和指定位置處,而是簽名裝置可以將輸出文件保存在該名稱下和該位置處。例如,這可以在對(duì)文件進(jìn)行簽名或解密的情況下適用。在一些實(shí)施方式中,簽名裝置可以將輸出文件提供在固定位置處(例如在具有固定路徑的目錄例如“signature,files”中),并且輸出文件的名稱可以例如是與已簽名或已解密的輸入文件的名稱相同的名稱。在一些實(shí)施方式中,當(dāng)生成新的輸出文件時(shí),最近生成的輸出文件被自動(dòng)刪除或者覆蓋。在一些實(shí)施方式中,簽名裝置可以將輸出文件提供在固定位置處(例如在具有固定路徑的目錄例如“output_f iles”中)以及在固定名稱(例如“one_time_password”)下。
[0063]在一些實(shí)施方式中,簽名裝置可以適于執(zhí)行多種類型的口令操作,例如在輸入文件的內(nèi)容中的至少一些上生成簽名,生成一次性口令或者對(duì)輸入文件的內(nèi)容中的至少一些進(jìn)行加密或解密。在一些實(shí)施方式中,可以在輸入文件的名稱或名稱的結(jié)構(gòu)中指示要執(zhí)行的操作。在一些實(shí)施方式中,可以在輸出文件的名稱或名稱的結(jié)構(gòu)中指示要執(zhí)行的操作。在一些實(shí)施方式中,可以在輸入文件或輸出文件的位置中指示要執(zhí)行的操作,如在輸入文件或輸出文件的路徑中表示的一樣。例如,如果輸入文件應(yīng)當(dāng)被簽名,則可以通過簽名應(yīng)用將輸入文件保存在具有特定目錄名稱例如“input/to_be_signed’的位置處。
[0064]在一些實(shí)施方式中,簽名裝置可以適于指示何時(shí)輸出文件是可用的。在一些實(shí)施方式中,簽名裝置指示通過仿真簽名裝置提供至主計(jì)算機(jī)的大容量存儲(chǔ)裝置的斷開事件和重新連接事件可得到所述輸出文件。在一些實(shí)施方式中,簽名裝置將輸出文件提供至另一大容量存儲(chǔ)裝置中,所述另一大容量存儲(chǔ)裝置與簽名裝置提供至主計(jì)算機(jī)的用于接收輸入文件的大容量存儲(chǔ)裝置不同,并且當(dāng)輸出文件可用時(shí),將具有輸出文件的所述另一大容量存儲(chǔ)裝置連接至主計(jì)算機(jī)。
[0065]公鑰和證書
[0066]在一些實(shí)施方式中,簽名裝置可以存儲(chǔ)與用戶相關(guān)聯(lián)的公鑰私鑰對(duì)的也存儲(chǔ)在簽名裝置中的與前述私鑰對(duì)應(yīng)的公鑰。在一些實(shí)施方式中,簽名裝置可以附加地存儲(chǔ)該公鑰的證書,該證書可以將公鑰與例如用戶的身份加密地綁定。
[0067]在一些實(shí)施方式中,公鑰和/或證書可以在簽名裝置上的文件中得到。在一些實(shí)施方式中,主計(jì)算機(jī)上的應(yīng)用可以通過使用用于從簽名裝置讀取文件的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口以讀取該文件來獲得公鑰和/或證書。在一些實(shí)施方式中,該文件可以位于固定位置(例如具有特定的固定名稱的目錄例如“證書”)處。在一些實(shí)施方式中,該文件可以具有固定的名稱(例如“certif icate_f ile” )。
[0068]在一些實(shí)施方式中,如在本申請(qǐng)的別處中更詳細(xì)地描述的,簽名裝置可以依靠外部可移除密鑰存儲(chǔ)裝置,該外部可移除密鑰存儲(chǔ)裝置用于存儲(chǔ)私鑰并且執(zhí)行涉及私鑰的加密計(jì)算。在這種情況下,簽名裝置可以以適當(dāng)?shù)姆绞綇耐獠靠梢瞥荑€存儲(chǔ)裝置獲得公鑰和/或證書(例如,在外部可移除密鑰存儲(chǔ)裝置包括智能卡的情況下,通過交換適用智能卡的命令和響應(yīng)以讀取公鑰和證書),并且可以將所獲得的公鑰和/或證書存儲(chǔ)在如下文件中,所述簽名裝置如上所述使所述文件對(duì)主計(jì)算機(jī)上的應(yīng)用可用。
[0069]在一些實(shí)施方式中并且對(duì)于一些操作,公鑰和/或證書可以被包括在輸出文件中。例如,在生成簽名的情況下,公鑰和證書可以被包括在簽名輸出文件中。
[0070]配置、狀態(tài)和參數(shù)化。
[0071]在一些實(shí)施方式中,簽名裝置可以是可配置的。在一些實(shí)施方式中,可以通過經(jīng)由用于讀取文件的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口以讀取配置文件來獲得簽名裝置的當(dāng)前配置。在一些實(shí)施方式中,配置文件可以具有固定名稱和/或固定位置。
[0072]在一些實(shí)施方式中,簽名裝置可以在任何給定的時(shí)間處于一組不同的狀態(tài)中的一種狀態(tài)。在一些實(shí)施方式中,可以通過經(jīng)由(用于讀取文件的)標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口以讀取狀態(tài)文件來獲得簽名裝置的當(dāng)前狀態(tài)。在一些實(shí)施方式中,狀態(tài)文件可以具有固定名稱和/或固定位置。
[0073]在一些實(shí)施方式中,簽名裝置的某些操作(例如對(duì)輸入文件進(jìn)行簽名的簽名操作)可以是可配置的。例如,在一些實(shí)施方式中,選擇用于生成待簽名的輸入文件的內(nèi)容的消息摘要的散列算法可以是可參數(shù)化的。在一些實(shí)施方式中,可以在由簽名裝置執(zhí)行所述操之前通過將參數(shù)文件保存至簽名裝置來對(duì)簽名裝置的操作進(jìn)行參數(shù)化。
[0074]固件更新
[0075]在一些實(shí)施方式中,簽名裝置適于使得能夠?qū)崿F(xiàn)其固件的更新。在一些實(shí)施方式中,可以通過將固件更新文件保存至簽名裝置來更新簽名裝置的固件,其中,固件更新文件可以具有特定文件名或者可以被保存在特定位置處。在一些實(shí)施方式中,簽名裝置可以要求由可信的認(rèn)證機(jī)構(gòu)對(duì)固件更新文件進(jìn)行簽名。在一些實(shí)施方式中,簽名裝置適于驗(yàn)證固件更新文件上的簽名,并且簽名裝置僅在發(fā)現(xiàn)該簽名是有效時(shí)利用所接收的固件更新文件的內(nèi)容來更新其固件。
[0076]用戶許可和PIN輸入。
[0077]在一些實(shí)施方式中,在加密操作中私鑰的使用(例如,以生成簽名或者對(duì)文件進(jìn)行解密)可能受制于用戶許可。在一些實(shí)施方式中,簽名裝置適于從用戶獲得這樣的許可。在一些實(shí)施方式中,簽名裝置可以包括用于獲得用戶許可的用戶輸入接口。在一些實(shí)施方式,簽名裝置可以例如包括OK(確定)按鈕,用戶可以致動(dòng)該OK按鈕以指示許可。在一些實(shí)施方式中,可以通過個(gè)人識(shí)別碼(PIN)和/或口令來保護(hù)對(duì)私鑰的使用。在一些實(shí)施方式中,可能會(huì)要求用戶輸入PIN和/或口令,可以將該P(yáng)IN和/或口令與參考PIN和/或口令進(jìn)行比較,并且如果由用戶提供的PIN和/或口令與參考PIN和/或口令相匹配,則簽名裝置可以進(jìn)行到執(zhí)行與私鑰的加密使用有關(guān)的操作。在一些實(shí)施方式中,簽名裝置可以包括用戶輸入裝置,該用戶輸入裝置適于允許用戶向簽名裝置提供PIN和/或口令的值。在一些實(shí)施方式中,用戶可以在主計(jì)算機(jī)上輸入PIN和/或口令,并且主計(jì)算機(jī)可以通過經(jīng)由用于將文件保存至簽名裝置的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口將包括PIN和/或口令的文件保存至簽名裝置來將PIN和/或口令傳送至簽名裝置。在一些實(shí)施方式中,具有PIN和/或口令的所述文件可以以固定名稱進(jìn)行保存,或者可以被保存在固定位置處。在一些實(shí)施方式中,PIN和/或口令可以被包括在相同文件中,所述相同文件還保持由簽名裝置要處理的輸入文件(例如,待簽名或待解密的文件)。在一些實(shí)施方式中,簽名裝置可以適于存儲(chǔ)PIN和/或口令參考值,并且將從用戶接收到的PIN和/或口令與所存儲(chǔ)的參考PIN和/或口令值進(jìn)行比較。在一些實(shí)施方式中,簽名裝置可以適于將從用戶接收到的PIN和/或口令遞送至外部可移除密鑰存儲(chǔ)裝置。
[0078]使用對(duì)稱加密。
[0079]在一些實(shí)施方式中,簽名裝置可以適于存儲(chǔ)與驗(yàn)證實(shí)體共享的秘密加密密鑰。在一些實(shí)施方式中,簽名裝置可以適于支持對(duì)稱加密算法。在一些實(shí)施方式中,簽名裝置可以通過使用對(duì)稱加密算法(例如對(duì)稱加密算法如AES (高級(jí)加密標(biāo)準(zhǔn))或加密散列算法如HMAC)將該共享密鑰與(簽名裝置可以如上所述的那樣獲取的)動(dòng)態(tài)變量進(jìn)行加密組合來生成一次性口令,并且簽名裝置可以將所得到的一次性口令保存在可由主計(jì)算機(jī)如上所述進(jìn)行檢索的輸出文件中。在一些實(shí)施方式中,簽名裝置可以適于如上所述的那樣在通過用于將文件保存至簽名裝置的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口接收到的輸入文件上生成消息認(rèn)證碼(MAC),并且將所得到的MAC保存在可由主計(jì)算機(jī)如上所述進(jìn)行檢索的輸出文件中。在一些實(shí)施方式中,簽名裝置可以使用利用共享密鑰而參數(shù)化的對(duì)稱加密算法(例如對(duì)稱加密算法如AES或加密散列算法如HMAC)來生成MAC。在一些實(shí)施方式中,簽名裝置可以利用對(duì)稱加密/解密算法(例如AES)對(duì)(如上所述接收的)輸入文件進(jìn)行加密或解密,并且將所得到的加密或解密文件存儲(chǔ)在可由主計(jì)算機(jī)如上所述進(jìn)行檢索的輸出文件中。
[0080]安全裝置。
[0081 ]在一些實(shí)施方式中,簽名裝置可以具有自己的用戶輸出接口,該用戶輸出接口例如可以包括顯示器。在一些實(shí)施方式中,簽名裝置可以具有自己的用戶輸入接口,該用戶輸入接口例如可以包括鍵盤。在一些實(shí)施方式中,用戶輸入接口和用戶輸出接口可以是不可拆卸的并且不是可供用戶自行維護(hù)的,而是被所述裝置完全控制,并且不受主計(jì)算機(jī)上的惡意軟件的干擾所影響。因此,在這種實(shí)施方式中,與例如其中總存在如下可能性的PC相比,可以認(rèn)為所述裝置具有值得信任的用戶接口:其中,惡意軟件如病毒或者木馬(Trojan)向用戶提供虛假消息,或者獲取用戶在鍵盤上輸入的任何內(nèi)容,或者在存儲(chǔ)器中讀取與安全性應(yīng)用相關(guān)的敏感數(shù)據(jù),或者在數(shù)據(jù)被簽名之前更改該數(shù)據(jù)。在一些實(shí)施方式中,所述裝置的固件是不可更改的。在一些實(shí)施方式中,所述裝置可以具有防篡改設(shè)置。
[0082]其他特性
[0083]在一些實(shí)施方式中,簽名裝置可以具有其自身的電力自主電源例如電池。在一些實(shí)施方式中,可以通過USB連接來向簽名裝置供電。
[0084]在一些實(shí)施方式中,簽名裝置可以是便攜的且重量輕的。在一些實(shí)施方式中,簽名裝置的重量小于200克。在一些實(shí)施方式中,簽名裝置可以是小型且手持的。在一些實(shí)施方式中,簽名裝置可以是袖珍的。在一些實(shí)施方式中,簽名裝置的尺寸在任何方向最大為15cm。在一些實(shí)施方式中,簽名裝置的長(zhǎng)度小于15cm、寬度小于8cm并且厚度小于2cm。
[0085]在一些實(shí)施方式中,簽名裝置可以具有USB密鑰或USB記憶棒的形式。在一些實(shí)施方式中,簽名裝置可以具有USB智能卡閱讀器的形式。
【附圖說明】
[0086]根據(jù)以下如附圖中示出的本發(fā)明的實(shí)施方式的更具體的描述,本發(fā)明的前述和其他特征和優(yōu)點(diǎn)將是明顯的。
[0087]圖1示意性地示出了根據(jù)本發(fā)明的方面的示例性設(shè)備。
[0088]圖2是根據(jù)本發(fā)明各方面的用于在電子文件上生成數(shù)字簽名的步驟的流程圖。
[0089]圖3是根據(jù)本發(fā)明各方面的用于在電子文件上生成數(shù)字簽名的系統(tǒng)的框圖。
【具體實(shí)施方式】
[0090]下面討論本發(fā)明的一些實(shí)施方式。雖然討論了特定的實(shí)施方式,但是應(yīng)理解該討論僅出于說明的目的。相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到可以在不脫離本發(fā)明的精神和范圍的情況下使用其他的部件和配置。
[0091]圖1示意性地示出了根據(jù)本發(fā)明的方面的本發(fā)明的示例性設(shè)備(100)(例如簽名裝置)。所述設(shè)備可以包括:第一通信接口(110),用于在本地將所述設(shè)備連接至主計(jì)算機(jī)
(99);以及一個(gè)或更多個(gè)處理部件(150),用于處理數(shù)據(jù)以及/或者控制所述設(shè)備的其他部件,例如第一通信接口。
[0092]在一些實(shí)施方式中,所述設(shè)備可以將其本身作為大容量存儲(chǔ)裝置提供至所連接的主計(jì)算機(jī)(99),其中,所連接的主計(jì)算機(jī)可以將文件保存至該大容量存儲(chǔ)裝置,并且所連接的主計(jì)算機(jī)可以從該大容量存儲(chǔ)裝置中讀取文件。在一些實(shí)施方式中,第一通信接口可以包括USB接口,并且所述設(shè)備可以將其本身作為USB大容量存儲(chǔ)裝置類的USB裝置提供至所連接的主計(jì)算機(jī)。在一些實(shí)施方式中,第一通信接口可以包括連接器,例如USB連接器。在一些實(shí)施方式中,第一通信接口可以包括線纜。
[0093]在一些實(shí)施方式中,所述設(shè)備適于:當(dāng)計(jì)算機(jī)請(qǐng)求通過(用于從USB大容量存儲(chǔ)裝置類的裝置讀取文件的)標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口讀取輸出文件時(shí),通過用于將文件保存在USB大容量存儲(chǔ)裝置類的裝置上的標(biāo)準(zhǔn)USB大容量存儲(chǔ)裝置類接口從主計(jì)算機(jī)接收輸入文件;使用非對(duì)稱加密算法對(duì)所接收的文件進(jìn)行加密處理,其中利用與用戶相關(guān)聯(lián)的公鑰私鑰對(duì)的私鑰將非對(duì)稱加密算法參數(shù)化;將所述加密處理結(jié)果存儲(chǔ)在輸出文件中;并且將輸出文件返回至主計(jì)算機(jī)。
[0094]在一些實(shí)施方式中,所述設(shè)備還包括用于向用戶提供數(shù)據(jù)和/或消息的人類輸出接口(130)。在一些實(shí)施方式中,所述設(shè)備還包括用于從用戶接收輸入的人類輸入接口(120)。在一些實(shí)施方式中,人類輸入接口可以適于獲取用戶的許可。在一些實(shí)施方式中,人類輸入接口可以適于接收由用戶輸入的PIN和/或口令。
[0095]在一些實(shí)施方式中,所述設(shè)備可以包括一個(gè)或更多個(gè)存儲(chǔ)部件(160)。在一些實(shí)施方式中,一個(gè)或更多個(gè)存儲(chǔ)部件可以適于存儲(chǔ)所述私鑰。在一些實(shí)施方式中,所述設(shè)備還可以適于利用用于執(zhí)行上述非對(duì)稱加密算法的該私鑰來執(zhí)行加密計(jì)算。
[0096]在一些實(shí)施方式中,所述設(shè)備還包括第二通信接口(180),用于與外部可移除密鑰存儲(chǔ)裝置(102)進(jìn)行通信。在一些實(shí)施方式中,外部可移除密鑰存儲(chǔ)裝置可以適于安全地存儲(chǔ)與用戶相關(guān)聯(lián)的私鑰(例如在存儲(chǔ)器中;未示出),并且使用該私鑰(例如利用數(shù)據(jù)處理部件;未示出)執(zhí)行加密計(jì)算。在一些實(shí)施方式中,所述設(shè)備還適于將用于執(zhí)行非對(duì)稱加密算法以處理所接收的文件所需的加密計(jì)算中的至少一些加密計(jì)算委托給外部可移除密鑰存儲(chǔ)裝置。在一些實(shí)施方式中,外部可移除密鑰存儲(chǔ)裝置可以包括智能卡,該智能卡可以例如是PKI智能卡。
[0097]在一些實(shí)施方式中,所述設(shè)備還可以包括用于提供時(shí)間值的時(shí)鐘(170)。在一些實(shí)施方式中,所述設(shè)備可以適于:例如通過利用與該用戶相關(guān)聯(lián)的私鑰來對(duì)時(shí)間值進(jìn)行簽名來將該時(shí)間值用作用于生成一次性口令的動(dòng)態(tài)變量。
[0098]圖2示意性地示出了根據(jù)本發(fā)明的另一方面的本發(fā)明的示例性方法(200)。該設(shè)備可以包括以下步驟。步驟210:在一些實(shí)施方式中,簽名裝置可以連接至主計(jì)算機(jī),并且將其本身提供為USB大容量存儲(chǔ)裝置類的裝置。步驟220:主計(jì)算機(jī)可以通過以下來向所連接的簽名裝置發(fā)送輸入文件:通過用于將文件保存至USB大容量存儲(chǔ)裝置類的裝置的標(biāo)準(zhǔn)接口來將輸入文件保存至大容量存儲(chǔ)裝置,其中所述大容量存儲(chǔ)裝置由簽名裝置提供至主計(jì)算機(jī)。步驟230:簽名裝置可以從主計(jì)算機(jī)接收所述輸入文件,其中簽名裝置通過其USB接口連接至該主計(jì)算機(jī)。步驟240:然后,簽名裝置可以使用與用戶相關(guān)聯(lián)的公鑰私鑰對(duì)的私鑰來對(duì)所接收的輸入文件進(jìn)行加密處理。步驟250:簽名裝置可以將輸入文件的加密處理結(jié)果(例如,簽名或經(jīng)解密的文件或一次性口令)存儲(chǔ)在輸出文件中。步驟260:主計(jì)算機(jī)可以通過以下來獲得結(jié)果:通過用于從USB大容量存儲(chǔ)裝置類的裝置讀取文件的標(biāo)準(zhǔn)接口來從大容量存儲(chǔ)裝置讀取所述輸出文件,其中所述大容量存儲(chǔ)裝置由簽名裝置提供至主計(jì)算機(jī)。
[0099]圖3示意性地示出了根據(jù)本發(fā)明的另一方面的本發(fā)明的示例性系統(tǒng)(300)。所述系統(tǒng)可以包括:應(yīng)用服務(wù)器(310),用于托管可遠(yuǎn)程訪問的應(yīng)用;訪問裝置(320),用于使得用戶(390)能夠與由應(yīng)用托管的可遠(yuǎn)程訪問的應(yīng)用進(jìn)行交互,并且其中應(yīng)用服務(wù)器和訪問裝置可以通過公共電信或計(jì)算機(jī)網(wǎng)絡(luò)(350)例如互聯(lián)網(wǎng)彼此通信;簽名裝置(330),其在本地連接至訪問裝置,其中,所述簽名裝置可以包括如結(jié)合圖1所描述的設(shè)備,并且其中簽名裝置適于:經(jīng)由訪問裝置接收輸入文件,該輸入文件包括要利用與用戶相關(guān)聯(lián)的私鑰來簽名的電子文件(例如電子文檔);在所接收的電子文件上生成簽名;并且將包括簽名的輸出文件返回至主計(jì)算機(jī)。在一些實(shí)施方式中,系統(tǒng)可以包括用于驗(yàn)證所生成的簽名的驗(yàn)證部件(340)。在一些實(shí)施方式中,可以使用結(jié)合圖2所描述的方法來獲得簽名。
[0100]已描述了多個(gè)實(shí)施方式。然而,應(yīng)理解可以進(jìn)行各種修改。例如,可以對(duì)一個(gè)或更多個(gè)實(shí)施方式的元件進(jìn)行組合、刪除、修改或補(bǔ)充,以形成其他的實(shí)施方式。因此,其他實(shí)施方式在所附權(quán)利要求的范圍內(nèi)。此外,雖然,可能僅公開了關(guān)于本發(fā)明的幾個(gè)實(shí)施方式中的一個(gè)的特定特征,但是根據(jù)任何給定或特定應(yīng)用的需要或在對(duì)任何給定或特定應(yīng)用有利的情況下,這樣的特征可與其它實(shí)施方式中的一個(gè)或更多個(gè)其他特征結(jié)合。雖然以上描述了本發(fā)明的各種實(shí)施方式,但是應(yīng)理解,這些實(shí)施方式僅作為示例提供,而不是限制。具體地,當(dāng)然不可能為了描述所要求保護(hù)的主題而描述部件或方法的每一種可構(gòu)想到的組合,但是本領(lǐng)域普通技術(shù)人員會(huì)認(rèn)識(shí)到,許多其他的組合和置換是可能的。因此,本發(fā)明的廣度和范圍不應(yīng)該被以上所描述的示例性實(shí)施方式中的任何示例性實(shí)施方式所限制,而是應(yīng)該僅根據(jù)所附權(quán)利要求及其等效內(nèi)容來限定。
【主權(quán)項(xiàng)】
1.一種設(shè)備,包括: 通信接口,用于在本地將所述設(shè)備連接至主計(jì)算機(jī);以及 數(shù)據(jù)處理部件,其適于提供通過將加密密鑰與第一輸入數(shù)據(jù)進(jìn)行加密組合而生成的加密處理結(jié)果; 其中, 當(dāng)所述設(shè)備通過所述通信接口連接至所述主計(jì)算機(jī)時(shí),所述設(shè)備適于將其本身作為大容量存儲(chǔ)裝置提供至所述主計(jì)算機(jī),所述主計(jì)算機(jī)上的應(yīng)用可以通過用于交換文件的標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)來訪問所述大容量存儲(chǔ)裝置;以及 所述通信接口適于經(jīng)由所述通信接口將輸出文件返回至所述主計(jì)算機(jī),其中,所述輸出文件包括所述加密處理結(jié)果,并且所述主計(jì)算機(jī)通過以下來獲得所述輸出文件:通過所述標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于讀取文件的機(jī)構(gòu),經(jīng)由所述通信接口從所述設(shè)備讀取所述輸出文件。2.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述通信接口包括通用串行總線(USB)接口,并且其中,當(dāng)所述設(shè)備連接至所述主計(jì)算機(jī)時(shí),所述設(shè)備還適于將其本身作為USB大容量存儲(chǔ)裝置類的USB裝置提供至所述主計(jì)算機(jī)。3.根據(jù)權(quán)利要求1所述的設(shè)備,還包括: 存儲(chǔ)器部件,其適于存儲(chǔ)所述加密密鑰; 其中,所述數(shù)據(jù)處理部件適于利用所述加密密鑰來執(zhí)行加密計(jì)算; 其中,將所述加密密鑰與所述第一輸入數(shù)據(jù)進(jìn)行加密組合包括:所述數(shù)據(jù)處理部件執(zhí)行所述加密計(jì)算。4.根據(jù)權(quán)利要求1所述的設(shè)備,還包括: 第二通信接口,用于與外部可移除密鑰存儲(chǔ)裝置進(jìn)行命令和響應(yīng)的接收和交換,所述密鑰存儲(chǔ)裝置包括密鑰存儲(chǔ)裝置存儲(chǔ)器部件和密鑰存儲(chǔ)裝置數(shù)據(jù)處理部件,所述密鑰存儲(chǔ)裝置存儲(chǔ)器部件適于存儲(chǔ)所述加密密鑰,所述密鑰存儲(chǔ)裝置數(shù)據(jù)處理部件適于利用所述加密密鑰來執(zhí)行加密計(jì)算; 其中,將所述加密密鑰與所述第一輸入數(shù)據(jù)進(jìn)行加密組合包括:所述密鑰存儲(chǔ)裝置數(shù)據(jù)處理部件利用所述加密密鑰來執(zhí)行所述加密計(jì)算。5.根據(jù)權(quán)利要求4所述的設(shè)備,其中,所述第二通信接口包括國(guó)際標(biāo)準(zhǔn)化組織(ISO)7816可兼容智能卡接口,并且所述命令和響應(yīng)包括智能卡命令和響應(yīng),并且其中,所述密鑰存儲(chǔ)裝置包括智能卡。6.根據(jù)權(quán)利要求1所述的設(shè)備,進(jìn)一步包括:用戶輸入接口,用于所述設(shè)備的用戶指示許可,其中,所述設(shè)備適于通過所述用戶輸入接口來獲取所述用戶的許可,并且其中,以下中的至少一個(gè)是以在所述設(shè)備上獲得所述許可為條件的:將所述密鑰與所述第一數(shù)據(jù)進(jìn)行加密組合;或者返回包括所述加密組合的結(jié)果的至少一個(gè)輸出文件。7.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述加密密鑰包括與應(yīng)用共享的對(duì)稱密鑰,并且其中,將所述加密密鑰與所述第一輸入數(shù)據(jù)進(jìn)行加密組合包括:對(duì)所述第一輸入數(shù)據(jù)執(zhí)行利用所述對(duì)稱密鑰而參數(shù)化的對(duì)稱加密算法。8.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述加密密鑰包括非對(duì)稱公鑰私鑰對(duì)的私有密鑰,并且其中,將所述加密密鑰與所述第一輸入數(shù)據(jù)進(jìn)行加密組合包括:對(duì)所述第一輸入數(shù)據(jù)執(zhí)行利用所述私有密鑰而參數(shù)化的非對(duì)稱加密算法。9.根據(jù)權(quán)利要求8所述的設(shè)備,還適于向所述主計(jì)算機(jī)提供公鑰文件,所述公鑰文件包括所述公鑰私鑰對(duì)的公鑰,并且其中,所述主計(jì)算機(jī)通過以下來獲得所述公鑰文件:通過所述用于讀取文件的機(jī)構(gòu),經(jīng)由所述通信接口從所述設(shè)備讀取所述公鑰文件。10.根據(jù)權(quán)利要求8所述的設(shè)備,還適于向所述主計(jì)算機(jī)提供證書文件,所述證書文件包括與所述公鑰私鑰對(duì)相關(guān)聯(lián)的一個(gè)或更多個(gè)證書,并且其中,所述主計(jì)算機(jī)通過以下來獲得所述證書文件:通過所述用于讀取文件的機(jī)構(gòu),經(jīng)由所述通信接口從所述設(shè)備讀取所述證書文件。11.根據(jù)權(quán)利要求1所述的設(shè)備,還適于生成一次性口令,其中,所述一次性口令被包括在將所述加密密鑰與所述第一輸入數(shù)據(jù)進(jìn)行加密組合的結(jié)果中,并且其中,所述第一輸入數(shù)據(jù)包括動(dòng)態(tài)變量。12.根據(jù)權(quán)利要求11所述的設(shè)備,還包括時(shí)鐘,并且其中,所述動(dòng)態(tài)變量基于由所述時(shí)鐘提供的時(shí)間值。13.根據(jù)權(quán)利要求11所述的設(shè)備,還適于:存儲(chǔ)第二變量;根據(jù)所存儲(chǔ)的第二變量來確定所述動(dòng)態(tài)變量的值;并且當(dāng)所述第二變量的值已用于所述組合時(shí),更新并存儲(chǔ)所述第二變量的值。14.根據(jù)權(quán)利要求1所述的設(shè)備,還適于在輸入文件的至少一些內(nèi)容上生成數(shù)字簽名,其中: 所述通信接口還適于從所述主計(jì)算機(jī)接收所述輸入文件,其中,所述主計(jì)算機(jī)通過以下來經(jīng)由所述通信接口將所述輸入文件發(fā)送給所述設(shè)備:通過所述標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于保存文件的機(jī)構(gòu),將所述輸入文件保存至由所述設(shè)備提供的大容量存儲(chǔ)裝置; 所述第一輸入數(shù)據(jù)基于表示所述輸入文件的至少一些內(nèi)容的值;以及 所述數(shù)字簽名被包括在將所述加密密鑰與所述第一輸入數(shù)據(jù)進(jìn)行加密組合的結(jié)果中。15.根據(jù)權(quán)利要求14所述的設(shè)備,其中,所述輸入文件的至少一些內(nèi)容包括整個(gè)輸入文件。16.根據(jù)權(quán)利要求14所述的設(shè)備,還包括用于向所述設(shè)備的用戶提供輸出的用戶輸出接口以及用于從所述用戶獲取輸入的用戶輸入接口;所述設(shè)備還適于: 識(shí)別所述輸入文件的多個(gè)可能文件類型格式中的至少一個(gè)的格式; 讀取所述輸入文件的至少一些內(nèi)容; 通過所述用戶輸出接口向所述用戶提供至少一些內(nèi)容;以及 通過所述用戶輸入接口從所述用戶獲取由所述用戶對(duì)提供至所述用戶的至少一些內(nèi)容作出的許可或拒絕中的至少一個(gè); 其中,將所述密鑰與所述第一數(shù)據(jù)進(jìn)行加密組合或者返回包括所述加密組合的結(jié)果的至少一個(gè)輸出文件是以在所述設(shè)備上獲得所述許可為條件的。17.根據(jù)權(quán)利要求1的設(shè)備,還適于對(duì)輸入文件的至少一些內(nèi)容進(jìn)行加密或解密,其中: 所述通信接口還適于從所述主計(jì)算機(jī)接收所述輸入文件,其中,所述主計(jì)算機(jī)通過以下來經(jīng)由所述通信接口將所述輸入文件發(fā)送給所述設(shè)備:通過所述標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于保存文件的機(jī)構(gòu),將所述輸入文件保存至由所述設(shè)備提供的大容量存儲(chǔ)裝置; 所述第一輸入數(shù)據(jù)包括所述至少一些內(nèi)容;以及 將所述加密密鑰與所述第一輸入數(shù)據(jù)進(jìn)行加密組合包括利用加密算法或解密算法對(duì)所述第一輸入數(shù)據(jù)進(jìn)行加密或解密,其中,加密算法或解密算法利用所述加密密鑰被參數(shù)化。18.根據(jù)權(quán)利要求17所述的設(shè)備,其中,所述輸入文件的至少一些內(nèi)容包括整個(gè)輸入文件。19.根據(jù)權(quán)利要求1所述的設(shè)備,還包括用戶輸入接口,用于所述設(shè)備的用戶向所述設(shè)備提供PIN值或口令值中的至少一個(gè);所述設(shè)備還適于通過所述用戶輸入接口從所述用戶獲得所述PIN值或所述口令值中的所述至少一個(gè),并且驗(yàn)證所述PIN值或所述口令值中的所述至少一個(gè)是否正確;其中,將所述密鑰與所述第一數(shù)據(jù)進(jìn)行加密組合或者返回包括所述加密組合的結(jié)果的至少一個(gè)輸出文件是以由用戶提供的所述PIN值或所述口令值中的至少一個(gè)是正確的為條件的。20.根據(jù)權(quán)利要求19所述的設(shè)備,還適于存儲(chǔ)參考值,其中,對(duì)所獲得的PIN值或所獲得的口令值中的至少一個(gè)的驗(yàn)證包括:所述設(shè)備將所獲得的PIN值或所獲得的口令值中的至少一個(gè)與所述參考值進(jìn)行比較。21.根據(jù)權(quán)利要求19所述的設(shè)備,還包括第二通信接口,所述第二通信接口用于與外部可移除裝置進(jìn)行命令和響應(yīng)的接收和交換,其中,對(duì)所獲得的PIN值或所獲得的口令值中的至少一個(gè)的驗(yàn)證包括: 所述設(shè)備經(jīng)由所述第二通信接口向所述外部可移除裝置傳送PIN代表值或口令代表值中的至少一個(gè),所述PIN代表值或口令代表值表示用于所述外部可移除裝置進(jìn)行驗(yàn)證的所獲得的PIN值或所獲得的口令值中的至少一個(gè);以及 所述設(shè)備經(jīng)由所述第二通信接口從所述外部可移除裝置接收由所述外部可移除裝置對(duì)所述代表值進(jìn)行驗(yàn)證的結(jié)果。22.根據(jù)權(quán)利要求1所述的設(shè)備,還包括生物特征傳感器,所述生物特征傳感器用于獲取所述設(shè)備的用戶的生物特征測(cè)量;所述設(shè)備還適于通過所述生物特征傳感器從所述用戶獲得所述生物特征測(cè)量,并且驗(yàn)證所述生物特征測(cè)量是否正確;其中,以下中的至少一個(gè)是以所獲得的生物特征測(cè)量是正確的為條件的:將所述密鑰與所述第一數(shù)據(jù)進(jìn)行加密組合;或者返回包括所述加密組合的結(jié)果的至少一個(gè)輸出文件。23.根據(jù)權(quán)利要求22所述的設(shè)備,還適于存儲(chǔ)生物特征參考數(shù)據(jù),其中,對(duì)所獲得的生物特征測(cè)量的驗(yàn)證包括:所述設(shè)備將所獲得的生物特征測(cè)量與所述生物特征參考數(shù)據(jù)進(jìn)行比較。24.根據(jù)權(quán)利要求22所述的設(shè)備,還包括第二通信接口,所述第二通信接口用于與外部可移除裝置進(jìn)行命令和響應(yīng)的接收和交換,其中,對(duì)所獲得的生物特征測(cè)量的驗(yàn)證包括: 所述設(shè)備經(jīng)由所述第二通信接口向所述外部可移除設(shè)備傳送所述生物特征測(cè)量,以用于所述外部可移除設(shè)備進(jìn)行驗(yàn)證;以及 所述設(shè)備經(jīng)由所述第二通信接口從所述外部可移除裝置接收由所述外部可移除裝置對(duì)所述生物特征測(cè)量進(jìn)行驗(yàn)證的結(jié)果。25.—種供設(shè)備使用的用于在電子輸入文件上生成數(shù)字簽名的方法,所述設(shè)備包括用于在本地將所述設(shè)備連接至主計(jì)算機(jī)的通信接口, 其中,所述設(shè)備適于: 當(dāng)所述設(shè)備連接至所述主計(jì)算機(jī)時(shí),將所述設(shè)備本身作為大容量存儲(chǔ)裝置提供至所述主計(jì)算機(jī),所述主計(jì)算機(jī)上的應(yīng)用可以通過用于讀取和保存文件的標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)來訪問所述大容量存儲(chǔ)裝置; 經(jīng)由所述通信接口從所述主計(jì)算機(jī)接收所述輸入文件; 通過向所述輸入文件應(yīng)用數(shù)字簽名算法來在所述輸入文件上生成所述數(shù)字簽名,所述數(shù)字簽名算法通過簽名密鑰被參數(shù)化; 經(jīng)由所述通信接口將輸出文件返回至所述主計(jì)算機(jī),其中,所述輸出文件包括所述輸入文件上的所述數(shù)字簽名; 所述方法包括以下步驟: 在所述主計(jì)算機(jī)處生成與所述設(shè)備的連接; 通過以下來在所述主計(jì)算機(jī)處經(jīng)由所述通信接口將所述輸入文件發(fā)送至所述設(shè)備:通過使用所述標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于保存文件的方法,將所述輸入文件保存至由所述設(shè)備提供的大容量存儲(chǔ)裝置; 通過以下來在所述主計(jì)算機(jī)處經(jīng)由所述通信接口從所述設(shè)備獲得輸出文件:通過使用所述標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于讀取文件的方法讀取所述輸出文件。 從所述輸出文件檢索所述數(shù)字簽名。26.根據(jù)權(quán)利要求25所述的方法,其中,所述通信接口包括通用串行總線(USB)接口,并且其中,當(dāng)所述設(shè)備連接至所述主計(jì)算機(jī)時(shí),所述設(shè)備還適于將其本身作為所述USB大容量存儲(chǔ)裝置類的USB裝置提供至所述主計(jì)算機(jī)。27.—種用于在電子輸入文件上生成數(shù)字簽名的系統(tǒng),包括: 主計(jì)算機(jī),所述主計(jì)算機(jī)包括: 數(shù)據(jù)處理部件,用于運(yùn)行軟件應(yīng)用, 連接機(jī)構(gòu),用于將至少一個(gè)外圍裝置可移除地連接至所述主計(jì)算機(jī), 所述主計(jì)算機(jī)適于: 支持大容量存儲(chǔ)裝置中的一個(gè)種類;如果當(dāng)通過所述連接機(jī)構(gòu)要與所述主計(jì)算機(jī)連接的設(shè)備被連接至所述主計(jì)算機(jī)時(shí)所述設(shè)備通告其本身屬于所述種類的大容量存儲(chǔ)裝置,則將所述設(shè)備識(shí)別為屬于所述種類;支持標(biāo)準(zhǔn)大容量存儲(chǔ)裝置訪問機(jī)構(gòu)以將文件讀取和保存至大容量存儲(chǔ)裝置,所述大容量存儲(chǔ)裝置通過所述連接機(jī)構(gòu)被連接至所述主計(jì)算機(jī),并且被所述主計(jì)算機(jī)識(shí)別為屬于所述種類的大容量存儲(chǔ)裝置; 向所述軟件應(yīng)用提供所述標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于將文件讀取至所述大容量存儲(chǔ)裝置的第一方法以及所述標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于將文件保存至所述大容量存儲(chǔ)裝置的第二方法; 所述系統(tǒng)還包括: 簽名設(shè)備,其包括通信接口,所述通信接口用于通過所述連接機(jī)構(gòu)將所述簽名設(shè)備在本地連接至所述主計(jì)算機(jī),其中,所述簽名設(shè)備適于: 當(dāng)所述簽名設(shè)備被連接至所述主計(jì)算機(jī)時(shí),將所述簽名設(shè)備本身作為屬于所述種類的大容量存儲(chǔ)裝置提供至所述主計(jì)算機(jī); 經(jīng)由所述通信接口從所述主計(jì)算機(jī)接收所述輸入文件; 通過向所述輸入文件應(yīng)用數(shù)字簽名算法來在所述輸入文件上生成所述數(shù)字簽名,所述數(shù)字簽名算法通過簽名密鑰被參數(shù)化; 經(jīng)由所述通信接口將輸出文件返回至所述主計(jì)算機(jī),其中,所述輸出文件包括所述輸入文件上的數(shù)字簽名;以及其中: 所述簽名設(shè)備通過所述通信接口和所述連接機(jī)構(gòu)被連接至所述主計(jì)算機(jī);以及 所述主計(jì)算機(jī)運(yùn)行簽名應(yīng)用,所述簽名應(yīng)用適于: 通過以下來經(jīng)由所述通信接口將所述輸入文件發(fā)送至所述簽名設(shè)備:通過使用所述標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的用于保存文件的所述第二方法將所述輸入文件保存至所述設(shè)備;通過以下來在所述主計(jì)算機(jī)處經(jīng)由所述通信接口從所述簽名設(shè)備獲得所述輸出文件:通過使用所述標(biāo)準(zhǔn)大容量存儲(chǔ)訪問機(jī)構(gòu)的所述第一方法讀取所述輸出文件。28.根據(jù)權(quán)利要求27所述的系統(tǒng),其中,所述通信接口包括通用串行總線(USB)接口,并且其中,當(dāng)所述設(shè)備連接至所述主計(jì)算機(jī)時(shí),所述設(shè)備還適于將其本身作為USB大容量存儲(chǔ)裝置類的USB裝置提供至所述主計(jì)算機(jī)。
【文檔編號(hào)】H04L9/32GK106063182SQ201480074422
【公開日】2016年10月26日
【申請(qǐng)日】2014年12月18日
【發(fā)明人】迪爾克·馬里恩
【申請(qǐng)人】威斯科數(shù)據(jù)安全國(guó)際有限公司