專利名稱:認(rèn)證設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種認(rèn)證設(shè)備和方法,具體涉及用于產(chǎn)生動態(tài)口令的 設(shè)備和方法,以及承載該設(shè)備的卡和實現(xiàn)該方法的軟件。
背景技術(shù):
遠(yuǎn)程用戶的認(rèn)證是很多基于網(wǎng)和網(wǎng)絡(luò)的應(yīng)用的基本部分。傳統(tǒng)的 用戶名和口令提供廉價但差的解決方案。通常通過向用戶發(fā)放'令牌'(小型且便攜式設(shè)備)來獲得較高的安全性,顯然,該'令牌'產(chǎn)生 僅對單次使用是有效的隨機口令所謂的一次性口令(OTP)。通過向系統(tǒng)呈現(xiàn)OTP,用戶證明了對該令牌的所有權(quán),當(dāng)與傳統(tǒng)靜態(tài)口令相結(jié)合時,該令牌提供了有力的、雙因素認(rèn)證。在市場上存在廣泛不同的令牌,主要基于專有的、供應(yīng)商特定的技術(shù)。例如,RSA SecureID、 VASCO Digipass、 Secure Computing禾口 Active Identity。最近正在令牌供應(yīng)商組織正在進行標(biāo)準(zhǔn)化的努力,稱 作開放認(rèn)證的倡議(OATH) [http:Vwww.openauthentication.org〗。該 OATH尋求促進OTP產(chǎn)生令牌的標(biāo)準(zhǔn)以及它們的部署和使用所需的基 礎(chǔ)設(shè)施。同時,金融部門的強認(rèn)證的需要已經(jīng)導(dǎo)致MasterCard領(lǐng)導(dǎo)了基于 標(biāo)準(zhǔn)'芯片和PIN'支付卡(圖1)的變型的備選標(biāo)準(zhǔn)。在該方案中, 所謂的芯片認(rèn)證程序(CAP) [Chip Authentication Program Function Architecture, MasterCard International, September 2004],手持卡讀取 器(圖2)用于基于該卡內(nèi)的核心功能來創(chuàng)建OTP。該卡讀取器是匿 名的并且可互換的,并且提倡普遍的部署的構(gòu)思讓它們成為家庭或者 辦公室中平凡的物件,從而無需單個用戶自己攜帶他們的卡讀取器。然而,CAP是封閉的專有系統(tǒng)并且不與其它系統(tǒng)兼容。在未來, CAP兼容卡讀取器可以變得廣泛可用,但是它們將僅對它們的發(fā)行銀行批準(zhǔn)應(yīng)用的CAP兼容的芯片和PIN卡有用,這是由于只有發(fā)行銀行可以訪問驗證該卡所產(chǎn)生的OTP所需的信息。發(fā)明內(nèi)容將描述利用標(biāo)準(zhǔn)CAP卡讀取器以及傳統(tǒng)的、非支付卡一起來產(chǎn)生 OATH兼容的OTP的手段。該方法的優(yōu)點是可以使用標(biāo)準(zhǔn)OATH基礎(chǔ) 設(shè)施用于卡的部署以及產(chǎn)生的OTP的驗證,同時通過利用部署的卡讀 取器基礎(chǔ),將令牌的成本減少至芯片卡的成本。更一般地,將描述卡 中的替換算法以及基于讀取器的一次性口令設(shè)備??梢蕴峁┛ㄅc例如 RSASecureID、 VASCO DigiPass 、 Secure Computing或者Activldentity 方案協(xié)同工作,或取而代之與OATH協(xié)同工作。將描述一種產(chǎn)生針對第一密碼方案的動態(tài)口令的集成電路,所述 電路適合與針對不同的第二密碼方案而設(shè)計的設(shè)備一起使用,所述電 路包括電源輸入,用于向集成電路供電;接口,用于向集成電路發(fā) 送數(shù)據(jù)和接收來自集成電路的數(shù)據(jù);以及與存儲器耦合的處理器,所 述存儲器存儲處理器控制代碼,所述處理器控制代碼用于控制處理器 在運行時,進行以下處理根據(jù)第一密碼方案產(chǎn)生動態(tài)口令,然后產(chǎn) 生適合向所述設(shè)備輸出的中間密文數(shù)據(jù),使得由所述設(shè)備根據(jù)第二密 碼方案執(zhí)行的處理導(dǎo)致所述設(shè)備根據(jù)第一密碼方案產(chǎn)生原始動態(tài)口 令。將描述一種根據(jù)第一密碼方案輸出與動態(tài)口令相對應(yīng)的偽密文數(shù) 據(jù)的方法,所述數(shù)據(jù)適合向針對不同的第二密碼方案而設(shè)計的設(shè)備輸 出,所述方法包括根據(jù)第一密碼方案產(chǎn)生動態(tài)口令,并然后通過所述設(shè)備根據(jù)第二密碼方案執(zhí)行處理的反處理來產(chǎn)生中間密文數(shù)據(jù),并 且輸出所述中間密文數(shù)據(jù),使得處理數(shù)據(jù)的所述設(shè)備根據(jù)第一密碼方 案產(chǎn)生原始動態(tài)口令。根據(jù)本發(fā)明的一個方面,提供了一種產(chǎn)生與針對第一密碼方案的 口令相對應(yīng)的中間密文數(shù)據(jù)的裝置,所述裝置適合與針對不同的第二密碼方案而設(shè)計的設(shè)備一起使用,所述裝置包括用于與所述設(shè)備進 行通信的通信接口;以及與存儲器耦合的處理器,所述存儲器存儲處6理器控制代碼,所述處理器控制代碼用于控制處理器在運行時進行如 下操作根據(jù)第一密碼方案產(chǎn)生口令;以及產(chǎn)生與所述口令相對應(yīng)的 中間密文數(shù)據(jù),所述中間密文數(shù)據(jù)適合向所述設(shè)備輸出,使得當(dāng)所述 設(shè)備根據(jù)第二密碼方案處理所述中間密文數(shù)據(jù)時,所述設(shè)備產(chǎn)生'所述 口令。優(yōu)選地,所述口令包括動態(tài)口令或者通過在密文計算中包括來 自二進制計數(shù)器或者時鐘的比特來產(chǎn)生的口令,并且在使用計數(shù)器的 情況下,每次增加所述計數(shù)器時產(chǎn)生口令。有時第一密碼方案的動態(tài)口令與第二密碼方案的所述設(shè)備不兼 容,并且產(chǎn)生動態(tài)口令的代碼可以包括重復(fù)地產(chǎn)生動態(tài)口令直到找到 與第二密碼方案兼容的動態(tài)口令為止的代碼。該不兼容性可能由發(fā)生在與所述第二密碼方案的所述設(shè)備不兼 容的第一密碼方案中的特定動態(tài)口令中的前導(dǎo)零(leading zeros)所引 起。備選地,該不兼容性可能由與第一密碼方案的特定動態(tài)口令不兼 容的所述設(shè)備自動產(chǎn)生的校驗數(shù)位所引起。根據(jù)本發(fā)明的另一方面,提供了一種根據(jù)第一密碼方案產(chǎn)生與密 文相對應(yīng)的中間密文數(shù)據(jù)的方法,所述數(shù)據(jù)適合在針對不同的第二密 碼方案而設(shè)計的設(shè)備上顯示,所述方法包括根據(jù)第一密碼方案產(chǎn)生 動態(tài)口令;以及產(chǎn)生與所述動態(tài)口令相對應(yīng)的中間密文數(shù)據(jù),所述中 間密文數(shù)據(jù)適合向所述設(shè)備輸出,使得當(dāng)所述設(shè)備根據(jù)第二密碼方案 處理所述中間密文數(shù)據(jù)時,所述設(shè)備輸出所述動態(tài)口令。本發(fā)明還提供了處理器控制代碼以例如在通用計算機系統(tǒng)或數(shù) 字信號處理器(DSP)上,或者在專用集成電路上(例如智能卡)實 現(xiàn)上述方法??梢栽谥T如磁盤、CD或DVD-ROM、可編程存儲器(如 只讀存儲器(固件))等載體上、或者在諸如光或電信號載體等數(shù)據(jù)載 體上提供所述代碼。實現(xiàn)本發(fā)明實施例的代碼(和/或數(shù)據(jù))可以包括 傳統(tǒng)編程語言(解釋或編譯)中的源、目標(biāo)或可執(zhí)行代碼,如C或者 匯編代碼。還可以例如在FPGA (現(xiàn)場可編程門陣列)上或者在ASIC (專用集成電路)中實現(xiàn)上述方法。從而所述代碼還可以包括用于設(shè)置或控制ASIC或FPGA的代碼、或用于諸如Verilog (商標(biāo))、VHDL (超高速集成電路硬件描述語言等硬件描述語言的代碼、或RTL代碼 或SystemC。典型地,使用諸如RTL (寄存器傳送語言)等代碼(或者 使用較高級別的語言(比如C)來描述專用硬件。如本領(lǐng)域技術(shù)人員 將理解的,可以在彼此通信的多個耦合組件中分布這種代碼和/或數(shù) 據(jù)??梢詫⒈景l(fā)明的上述方面和實施例的特征以任意排列進行結(jié)合。
現(xiàn)在將參照附圖來詳細(xì)地描述本發(fā)明的這些和其它方面的實施 例,在附圖中圖3示出了根據(jù)本發(fā)明的實施例的方法的流程圖。 圖4示出了根據(jù)本發(fā)明的實施例的設(shè)備的框圖。
具體實施方式
我們將首先描述MasterCard芯片認(rèn)證程序。 芯片和PIN卡'芯片和PIN'卡遵循形式上稱作EMV的技術(shù)標(biāo)準(zhǔn),類似于 Europay、 Mastercard和Visa。在世界上很多國家中廣泛釆用這種卡, 這是由于它們提供強大的安全特征以允許卡的發(fā)行者可以控制各種形 式的欺詐行為。使用每個EMV卡中嵌入的芯片來授權(quán)交易。該授權(quán)是基于使用屬 于卡的密鑰以及交易的細(xì)節(jié)所計算出來的密文。在發(fā)行過程期間將該 密鑰嵌入至芯片中,并且由發(fā)行銀行安全地保存副本。該芯片還保持 稱作應(yīng)用交易計數(shù)器(ATC)的計數(shù)器值,作為對重放性攻擊(replay attack)的防御,在密文計算中包括該ATC并且會隨著每一次交易而增 加。最后,持卡人提供PIN,在允許計算密文之前,該芯片將該PIN與 存儲的參考值進行驗證。當(dāng)接收到交易時,發(fā)行者能夠使用該卡的密鑰的副本重計算該密 文。由于沒有其他人具有該密鑰,有效的密文必然由該卡發(fā)起,并且持卡人所有。CAP概述特殊類型的交易是眾所周知的'無卡(card not present)' (CNP) 交易。這些交易包括郵件訂購、電話訂購以及基于網(wǎng)頁的電子商務(wù)交 易。在這些情況中,發(fā)行銀行僅基于可視的卡的細(xì)節(jié)(如卡號和過期 時間)來授權(quán)支付。由于這些值實質(zhì)上是靜態(tài)的并且容易復(fù)制,因此 CNP交易有吸引力的欺詐目標(biāo)。MasterCard以及在卡工業(yè)中的一些其他組織已經(jīng)開發(fā)出允許芯片 和PIN卡的安全性在CNP場景中得到補充支持的標(biāo)準(zhǔn)。該方案被稱作 芯片認(rèn)證程序(CAP)。 CAP要求向每一個持卡人發(fā)行小型手持卡讀取 器。通過將他們的卡插入他們的讀取器,并且輸入他們的PIN,該持 卡人可以基于卡上的密鑰和ATC來產(chǎn)生OTP。發(fā)行者可以基于相同的 輸入數(shù)據(jù)和密鑰通過重計算密文來驗證該OTP。注意,卡讀取器對于持卡人來說不是私人的,并且不執(zhí)行重要的 安全操作。EMV CAP OTP計算設(shè)計芯片和PIN芯片卡用于在現(xiàn)場銷售支付終端(point-of-sale payment terminals)和ATM上使用,不是特別用于一次性口令產(chǎn)生。 CAP讀取器在用卡進行的交易中模擬EMV支付終端,然后卡讀取器負(fù)責(zé)獲得由卡產(chǎn)生的支付密文并且將它轉(zhuǎn)換成一次性口令。在[芯片認(rèn)證程序功能結(jié)構(gòu)體系]中詳細(xì)指定了由CAP讀取器執(zhí)行的處理,但是總之包括下列階段1、 收集密文輸入數(shù)據(jù)2、 提取OTP數(shù)據(jù)3、 十進制換算 下面更詳細(xì)地解釋每個步驟。 收集密文輸入數(shù)據(jù)對密文計算過程的兩個主要輸入是卡密鑰和ATC。然而,根據(jù) EMV,存在用作對密文驗證的輸入的許多其它參數(shù)。這些對于卡支付 來說是特定的,并且不具有其它類型令牌的等同物。為了再產(chǎn)生密文,對于這些參數(shù)來說驗證服務(wù)器必須使用相同的值。在典型的CAP情況下,大多數(shù)的這些參數(shù)在發(fā)行卡時是固定值, 或者可以由驗證服務(wù)器來預(yù)測。然而,根據(jù)卡的使用程度,在卡的生 命周期期間少數(shù)參數(shù)可以改變。例如,這包括限制卡將授權(quán)脫機的交 易的次數(shù)或量的參數(shù)。由于驗證服務(wù)器不能預(yù)測這些值,必須將這些 參數(shù)嵌入在一次性口令本身中以將它們從卡發(fā)送至服務(wù)器。提取OTP數(shù)據(jù)為了盡可能地用戶友好,產(chǎn)生的一次性口令應(yīng)當(dāng)盡可能短,同時維護合理的安全級別。由于與密文本身組合的EMV密文輸入數(shù)據(jù)太大以致于不能完整地包括在一次性口令中,因此需要對它進行壓縮。由卡上的CAP特定字段來定義該壓縮處理,被稱作發(fā)行者專有位 圖(IPB),但是處理本身由卡讀取器來執(zhí)行。IPB定義一次性口令中 將使用的來自ATC、密文和其它EMV輸入數(shù)據(jù)中的那些比特,丟棄其 它比特。典型地,包括少數(shù)ATC比特以協(xié)助服務(wù)器和卡之間的計數(shù)器值的 同步,以及包括至少16比特的密文,并且最終包括那些不能由服務(wù)器 預(yù)測的附加密文輸入。在一些情況下,當(dāng)卡應(yīng)用僅用于CAP而不用于 支付時,可以由服務(wù)器預(yù)測所有附加輸入,因此OTP僅基于ATC和密 文。十進制換算最終,對來自壓縮處理的二進制輸出進行十進制換算以在讀取器 屏幕上向用戶顯示。許多十進制換算方案是可能的,但是CAP基于將 截斷處理輸出簡單地解釋為單一整數(shù)的二進制表示來定義單一方案, 忽略前導(dǎo)零,從而OTP的最終長度可以改變。接著,描述開放認(rèn)證標(biāo)準(zhǔn)(OATH)。概述針對開放認(rèn)證(OATH)的倡議是尋求促進基于令牌的認(rèn)證市場 的標(biāo)準(zhǔn)化的工業(yè)協(xié)調(diào)機構(gòu)。OATH已經(jīng)出版描述一般認(rèn)證框架的景象 的'參考體系結(jié)構(gòu),,并且正在促進針對該系統(tǒng)內(nèi)各個接口和組件的許 多標(biāo)準(zhǔn)。本申請最感興趣的'HOTP:基于HMAC的一次性口令算法',由 正TF將其標(biāo)準(zhǔn)化為RFC4226 [HOTP: An HMAC-Based One-Time Password Algorithm, http:〃www. ietf.org/rfc/rfc4226.txt, December 2005]。HOTP計算和CAP —樣,HOTP算法基于底層密碼基元(underlying cryptographic primitive),在本情況下,是HMAC-SHA1。在HOTP中定 義的該算法的輸入是令牌密鑰和計數(shù)器-非常類似于CAP使用的EMV密文計算的基本輸入。 HOTP計算過程如下1、 HMAC計算,基于令牌密鑰和計數(shù)器。然后該計數(shù)器自動遞增。2、 結(jié)果的'動態(tài)截斷'給出31比特值。3、 對截斷值進行十進制換算,以給出OTP。 同時與CAP相比,OTP計算是清楚的,重要的是注意到每一個階段的細(xì)節(jié)是完全不同的。下面描述每個步驟并且與它的CAP等同物進 行對比。HMAC計算在[HMAC: Keyed Hashing for Message Authentication, RFC2104, http:〃www.ietf.org/rfc/rfc2104.txt, February 1997]中指定了使用的 畫AC計算,使用SHAl作為底層散列算法[US Secure Hash Algorithm l(SHAl), RFC3174, http:〃www.ietf.org/rfc/rfc3174.txt, September 2001]。 HMAC-SHA1要求的密鑰典型地是20字節(jié)長,并且[HOTP]指定 使用8字節(jié)計數(shù)器作為唯一的HMAC輸入數(shù)據(jù)。相比于CAP使用的8字節(jié)密文,該結(jié)果是20字節(jié)二進制值。在兩 個情況下,主要目標(biāo)在于,從產(chǎn)生的OTP中恢復(fù)與密鑰有關(guān)的信息應(yīng) 當(dāng)是不可行的。這就是在兩個情況中使用某種類型的密碼算法的原因。動態(tài)截斷由[HOTP]定義的截斷處理將20字節(jié)HMAC輸出減少到31比特串。 首先,考慮HMAC輸出的最后字節(jié)的最后4個比特作為范圍0至15ii中的整數(shù)n。然后,使用字節(jié)n、 n+l.....n+3作為截斷輸出(忽略前導(dǎo)比特)。與CAP使用的壓縮方案的不同表示如下* CAP IPB始終從EMV密文的相同位置中選擇比特以在OTP中 使用。在OATH中,由HMAC輸出的最后4個比特來確定的比 特的位置是變化的,因此使用術(shù)語'動態(tài)的'。* [HOTP]當(dāng)前版本不提供用于將計數(shù)器同步信息嵌入至產(chǎn)生的 OTP中的機制,相反,CAPIPB可以指定用于包括在OTP中的 任意數(shù)量的ATC比特。* CAP IPB可以指定用于包括在OTP中的許多其它EMV特定數(shù) 據(jù)元素。對于HOTP來說沒有相關(guān)的這種便利。十進制換算HOTP十進制換算包括將來自動態(tài)截斷處理的31比特輸出解釋 為整數(shù)的二進制表示,然后通過該整數(shù)10d取模來減少,其中d是產(chǎn)生 的OTP中所期望的數(shù)字的數(shù)目。與CAP對比,如果該結(jié)果少于d個數(shù)字, 則插入前導(dǎo)零以給出完整的OTP長度d。還注意到該十進制換算處理實際上執(zhí)行了附加的截斷,在某種意 義上,輸出具有比輸入少的信息內(nèi)容。在CAP中,十進制換算期間沒 有丟失任何信息?,F(xiàn)在將描述使用CAP讀取器來產(chǎn)生OATH OTPs。圖3示出了實現(xiàn)上述的方法的示例。描述一種通過生產(chǎn)在標(biāo)準(zhǔn)、未修改CPA讀取器內(nèi)使用的特定 OATH芯片卡,使用該讀取器產(chǎn)生OATH兼容OTP的手段。這允許希望 部署OATH的組織部署低成本芯片卡而不是高成本令牌,開發(fā)所部署 的CAP卡讀取器基礎(chǔ)結(jié)構(gòu)來使用這些芯片卡以及現(xiàn)有的、現(xiàn)成的 OATH驗證服務(wù)器。明顯地,OATH芯片卡再產(chǎn)生EMV卡接口,或者由CAP讀取器所 使用的至少部分EMV接口。否則,讀取器將拒絕該卡。最關(guān)鍵的卡功能呼叫是用于產(chǎn)生密文本身的GENERATE一AC呼 叫。注意到,簡單地將卡中該功能的實現(xiàn)替換為產(chǎn)生在OATH OTP的計算中使用的HOTP散列值的功能是不夠的散列。這是由于對密文進行壓縮和十進制換算以給出OTP的過程是在讀取器中執(zhí)行的,并且在 CAP和OATH之間是完全不同的。因此OATH芯片卡實現(xiàn)下述操作序列K基于卡密鑰和計數(shù)器,產(chǎn)生HOTP散列值(301),并且遞增計 數(shù)器(302)。2、 十進制換算對散列值(303)進行截斷并十進制換算以產(chǎn)生OTP 本身。3、 使用由CAP讀取器采用的十進制換算處理的反處理,將該OTP 轉(zhuǎn)化回二進制格式(304)。4、 以由CAP讀取器采用的壓縮處理的反處理的方式填充產(chǎn)生的 二進制數(shù)據(jù)(305)(如卡上IPB值所定義的)。我們將該結(jié)果稱作中間密文。該OATH芯片卡將該中間密文傳遞 給CAP讀取器,好像它是正常EMV密文一樣。然后CAP讀取器將對該 數(shù)據(jù)進行壓縮和十進制換算,有效地將上述步驟4和3反轉(zhuǎn),如在上述 步驟2處由OATH卡所計算的一樣,從而在讀取器屏幕上顯示的最終結(jié) 果將是OATH OTP。圖4示出了用于與CAP讀取器兼容的OATH芯片卡 的設(shè)備的示例的框圖。特殊情況出現(xiàn)許多特殊情況,考慮如下。 前導(dǎo)零在十進制換算期間,CAP和HOTP都可能導(dǎo)致以'0'開頭的十進 制結(jié)果。CAP指定應(yīng)當(dāng)移除這樣的前導(dǎo)零(因此產(chǎn)生的OTP在長度上 可以改變),而HOTP指定應(yīng)當(dāng)在OTP中包括這樣的前導(dǎo)零(因此具有 固定長度)。注意到,在CAP中,包括前導(dǎo)零的截斷在內(nèi)的十進制換算處理發(fā) 生在讀取器中。因此,不管芯片卡中使用的方法如何,不可能強制CAP 讀取器顯示包括前導(dǎo)零在內(nèi)的HOTP OTP。我們提出該問題的三種可 能解決方案1、第一種可能的解決方案是簡單的,但是不那么令人滿意當(dāng)示的OTP前面插入附加的零。2、 第二種可能是在驗證0TP之前讓認(rèn)證應(yīng)用或者驗證服務(wù)器自動插入任何丟失的前導(dǎo)零。這給出了更好的用戶體驗,但是喪失了實現(xiàn)OATH的原始目標(biāo)使用CAP讀取器而不對驗證基礎(chǔ)設(shè)施作任何改變。3、 第三種方法是針對OATH芯片卡識別這種情況,并且當(dāng)它們發(fā) 生時,自動丟棄OTP (在上述步驟2),并且基于遞增的計數(shù)器值產(chǎn)生 新的OTP。由于前導(dǎo)零實際上是隨機的,口令的長序列全部以零開頭是非常 不可能的。此外,由于在任何情況下為了避免同步問題,驗證服務(wù)器 接受一定范圍內(nèi)的計數(shù)器值,忽略臨時口令,這是由于其以零開頭不 會引起驗證失敗,并且用戶注意不到它。最后,盡管該技術(shù)確實將可 能的HOTP輸出的數(shù)目減少大約10。/。,但是6個數(shù)字的最小長度給出至 少一百萬種可能的OTP,所以提供的整體安全性依然是完全可接受的。計數(shù)器同步數(shù)字目前HOTP不指定在OTP中包括計數(shù)器同步數(shù)字的任何手段,而 CAP提供使用卡中嵌入的IPB來配置的靈活方案。通過簡單地用適當(dāng)?shù)?IPB值來抑制CAP同步數(shù)字,可以獲得兼容性??紤]HOTP的未來版本可以包括在OTP中包括計數(shù)器同步信息的 手段的可能性。所選算法極有可能與CAP所使用的算法不兼容,這是 由于在HOTP中不存在與CAPIPB的相似物。我們注意到通過繼續(xù)使用 IPB來抑制CAP同步信息并且在中間密文中將HOTP同步數(shù)據(jù)以及其 他OTP從卡傳遞至讀取器,依然可以獲得兼容性?,F(xiàn)在考慮CAP讀取器包括強制校驗數(shù)位或者其它同步數(shù)據(jù)、但 HOTP不包括這些的情況。在這種情況下,讀取器將接收來自卡的密 文,并且另外還將接收從中可以提取出同步數(shù)據(jù)的ATC值,將上述二 者組合起來以給出顯示的OTP。在這種情況下,依靠附加的卡邏輯依 然可以保持兼容性??☉?yīng)當(dāng)計算HOTPOTP,并且將它分成兩部分-讀 取器將從中間密文中提取出的部分以及讀取器將從ATC中提取出的部 分。然后卡向讀取器提供中間密文和備選ATC,知道讀取器將把這些 組合起來以重構(gòu)原始OTP。關(guān)鍵的觀察結(jié)論是,讀取器不知道備選ATC數(shù)器值是不同。最后,注意到,在HOTP和CAP實現(xiàn)同步方案的情況下,不同地,可以通過上述技術(shù)的組合來進行處理。 校驗數(shù)位校驗數(shù)位有時用于檢測數(shù)據(jù)中的錯誤,特別是,由人類抄寫所引入的錯誤。目前,CAP或HOTP都不包括用于創(chuàng)建的OTP的校驗數(shù)位機 制,但是在將來可能會改變。如果要求標(biāo)準(zhǔn)CAP讀取器支持HOTP校 驗數(shù)位,這可以通過簡單地將校驗數(shù)位嵌入到傳遞給卡讀取器的中間 密文中,類似于上述用于傳遞上述同步數(shù)據(jù)的技術(shù)。備選地,假定CAP讀取器將在OTP中自動包括校驗數(shù)位,而HOTP 沒有指定該校驗數(shù)位。這將產(chǎn)生更顯著的問題,這是由于卡不具有抑 制這種校驗數(shù)位的手段。唯一的解決方案是修改應(yīng)用或驗證基礎(chǔ)設(shè)施 以接受具有附加CAP校驗數(shù)位的HOTP OTP,或者使定制卡重復(fù)產(chǎn)生 OTP直到(靠運氣)找到具有正確檢查數(shù)字的OTP為止,并且計算適 當(dāng)?shù)闹虚g密文(由于將由讀取器來添加校驗數(shù)位,因此該中間密文不 包括校驗數(shù)位)。后一種方法將極大地增加卡計算時間,這是由于在找到合適的值 之前必須計算大量的OTP??ㄓ嫈?shù)器將比平常的更快速遞增,并且因此可能需要調(diào)整驗證服務(wù)器處的容限。盡管所需的卡計數(shù)器中的增加 是不可預(yù)測的,只要由卡讀取器插入的糾錯信息的數(shù)量不太大,依然 可能找到提供可接受的安全性和可靠性的系統(tǒng)參數(shù)(OTP長度、驗證 服務(wù)器容限)的恰當(dāng)平衡。注意到,該最后技術(shù)是用于處理基于HOTP的OTP中的前導(dǎo)零的 技術(shù)的重復(fù)。 一般地,如果無論出于何種原因HOTP OTP與卡讀取器 不兼容(在上述示例中,由于前導(dǎo)零或者校驗數(shù)位),對于卡而言始終 有可能簡單地遞增卡計數(shù)器直到找到兼容的OTP為止。實際中該技術(shù) 的可應(yīng)用性依賴于不兼容OTP的數(shù)量和分布以及驗證服務(wù)器的參數(shù)。己經(jīng)描述了使用特定卡來實現(xiàn)OATH兼容性的CAP卡讀取器的特 定情況,以及關(guān)于計數(shù)器同步和校驗數(shù)位的備選。下面將列出一些其 它可能的應(yīng)用。15可以提供卡與讀取器一起使用,所述讀取器基于用戶接口分離的 密碼引擎為基礎(chǔ)(不僅僅是CAP),被設(shè)計用于任何基于OTP的系統(tǒng)。
然而,CAP是最有可能在接下來幾年中實現(xiàn)大量部署的系統(tǒng)??梢蕴?供卡在任意OTP系統(tǒng)中使用,不僅僅是OATH。示例包括RSA SecureID、 VASCO DigiPass、 Secure Computing禾口ActivIdentity。可以提供卡用于 挑戰(zhàn)-應(yīng)答認(rèn)證??梢蕴峁┛ㄓ糜?短簽名',在該短簽名中令牌基于 用戶輸入的消息數(shù)據(jù)來產(chǎn)生OTP (同時依然包括計數(shù)器值,以及不包 括計數(shù)器值)??赡艿膽?yīng)用包括由移動電話代替CAP讀取器(即具有卡 讀取器的移動電話,該卡讀取器具有足夠的CAP兼容性以與卡協(xié)同工 作)。其它應(yīng)用包括將OATH卡插入與用戶PC連接的卡讀取器中。其它 應(yīng)用包括通過電話口頭地對OTP進行通信,而不是通過因特網(wǎng),或者 通過郵件、傳真、或者通過內(nèi)部網(wǎng)絡(luò)。
毫無疑問,本領(lǐng)域技術(shù)人員將想到許多其它有效備選。將理解本 發(fā)明并不限于所述實施例并且本發(fā)明包含對于本領(lǐng)域技術(shù)人員顯而易 見的、并且落在所附權(quán)利要求的精神和范圍內(nèi)的修改。
權(quán)利要求
1、一種用于產(chǎn)生與針對第一密碼方案的動態(tài)口令相對應(yīng)的中間密文數(shù)據(jù)的裝置,所述中間密文數(shù)據(jù)適合使用針對不同的第二密碼方案而設(shè)計的設(shè)備來顯示,所述裝置包括通信接口,用于與所述設(shè)備進行通信;以及處理器,與存儲器耦合,所述存儲器存儲處理器控制代碼,處理器控制代碼用于控制處理器在運行時進行以下操作根據(jù)所述第一密碼方案產(chǎn)生動態(tài)口令;以及產(chǎn)生與所述動態(tài)口令相對應(yīng)的中間密文數(shù)據(jù),所述中間密文數(shù)據(jù)適合向所述設(shè)備輸出,使得當(dāng)所述設(shè)備根據(jù)所述第二密碼方案處理所述中間密文數(shù)據(jù)時,所述設(shè)備產(chǎn)生適合顯示所述動態(tài)口令的數(shù)據(jù)。
2、 根據(jù)權(quán)利要求l所述的裝置,其中,所述動態(tài)口令包括一次性 口令。
3、 根據(jù)權(quán)利要求1或2所述的裝置,其中,第一密碼方案包括開 放認(rèn)證方案。
4、 根據(jù)權(quán)利要求1或2所述的裝置,其中,第一密碼方案包括RSA SecureID。
5、 根據(jù)權(quán)利要求1或2所述的裝置,其中,第一密碼方案包括Vasco Digipass。
6、 根據(jù)權(quán)利要求1至5中任一項所述的裝置,其中,第二密碼方 案包括芯片認(rèn)證程序(CAP)方案。
7、 根據(jù)權(quán)利要求1至6中任一項所述的裝置,其中,用于控制處 理器產(chǎn)生中間密文數(shù)據(jù)的代碼包括用于以下操作的代碼產(chǎn)生與所述動態(tài)口令相對應(yīng)的十進制動態(tài)口令數(shù)據(jù); 產(chǎn)生與所述十進制動態(tài)口令數(shù)據(jù)相對應(yīng)的反十進制動態(tài)口令數(shù) 據(jù);以及對所述反十進制口令數(shù)據(jù)進行填充以產(chǎn)生所述中間密文數(shù)據(jù)。
8、 根據(jù)權(quán)利要求7所述的裝置,其中,用于對所述反十進制動態(tài) 口令數(shù)據(jù)進行填充的代碼包括用于根據(jù)CAP發(fā)行者專有位圖來插入比特的代碼。
9、 根據(jù)權(quán)利要求7或8所述的裝置,其中,用于對所述反十進制動態(tài)口令數(shù)據(jù)進行填充的代碼包括用于并入與一個或多個校驗數(shù)位 相對應(yīng)的校驗數(shù)位數(shù)據(jù)的代碼。
10、 根據(jù)權(quán)利要求1至9中任一項所述的裝置,其中,使用所述設(shè)備不能顯示第一密碼方案中的可能的動態(tài)口令的一部分,其中,用于產(chǎn)生動態(tài)口令的代碼包括用于重復(fù)產(chǎn)生動態(tài)口令直到找到能夠使用 所述設(shè)備來顯示的動態(tài)口令為止的代碼。
11、 根據(jù)權(quán)利要求10所述的裝置,其中,所述可能的動態(tài)口令的 一部分包括具有前導(dǎo)零的動態(tài)口令。
12、 根據(jù)權(quán)利要求10所述的裝置,其中,所述設(shè)備在運行時產(chǎn)生 用于顯示的校驗數(shù)位,以及,用于產(chǎn)生動態(tài)口令的代碼還包括用于對由所述設(shè)備產(chǎn)生的校驗 數(shù)位進行確定的代碼。
13、 根據(jù)權(quán)利要求1至12中任一項所述的裝置,其中,所述設(shè)備被配置為除了所述中間密文數(shù)據(jù),還處理同步數(shù)據(jù);以及,用于產(chǎn)生中間密文數(shù)據(jù)的代碼還包括用于以下操作的代碼產(chǎn)生 用于向所述設(shè)備輸出的同步數(shù)據(jù),使得當(dāng)所述設(shè)備根據(jù)所述第二密碼 方案處理所述同步數(shù)據(jù)和所述中間密文數(shù)據(jù)時,所述設(shè)備產(chǎn)生適合顯 示所述動態(tài)口令的數(shù)據(jù)。
14、 根據(jù)權(quán)利要求13所述的裝置,其中,所述同步數(shù)據(jù)包括應(yīng)用 交易計數(shù)器(ATC)。
15、 根據(jù)權(quán)利要求1至14中任一項所述的裝置,其中,所述設(shè)備 包括CAP兼容讀取器。
16、 一種集成電路,包括前述權(quán)利要求中任一項的裝置。
17、 一種卡,承載權(quán)利要求16所述的集成電路。
18、 一種產(chǎn)生與根據(jù)第一密碼方案的密文相對應(yīng)的中間密文數(shù)據(jù) 的方法,所述數(shù)據(jù)適合在針對不同的第二密碼方案而設(shè)計的設(shè)備上顯 示,所述方法包括根據(jù)第一密碼方案產(chǎn)生動態(tài)口令;以及產(chǎn)生與所述動態(tài)口令相對應(yīng)的中間密文數(shù)據(jù),所述中間密文數(shù)據(jù) 適合向所述設(shè)備輸出,使得當(dāng)所述設(shè)備根據(jù)所述第二密碼方案處理所 述中間密文數(shù)據(jù)時,所述設(shè)備輸出所述動態(tài)口令。
19、 根據(jù)權(quán)利要求18所述的方法,其中,所述設(shè)備包括CAP兼容 讀取器。
20、 根據(jù)權(quán)利要求18或19所述的方法,其中,產(chǎn)生動態(tài)口令包括 產(chǎn)生HMAC-SHA1密文。
21、 一種處理器控制代碼,用于控制處理器在運行時執(zhí)行權(quán)利要 求18至20中任一項所述的方法。
22、 一種計算機可讀介質(zhì),承載權(quán)利要求21所述的處理器控制代碼。
23、 一種參照附圖實質(zhì)上如本發(fā)明所述的裝置、集成電路、卡或 方法。
全文摘要
本發(fā)明涉及認(rèn)證設(shè)備和方法,具體涉及用于產(chǎn)生動態(tài)口令的設(shè)備和方法,并且涉及承載所述設(shè)備的卡和實現(xiàn)所述方法的軟件。一種用于產(chǎn)生與針對第一密碼方案的動態(tài)口令相對應(yīng)中間密文數(shù)據(jù)的裝置,所述中間密文數(shù)據(jù)適合使用針對不同的第二密碼方案而設(shè)計的設(shè)備來進行顯示,所述裝置包括用于與所述設(shè)備進行通信的通信接口;以及與存儲器耦合的處理器,所述存儲器存儲處理器控制代碼,處理器控制代碼用于控制處理器在運行時進行以下操作根據(jù)第一密碼方案產(chǎn)生動態(tài)口令;并且產(chǎn)生與所述動態(tài)口令相對應(yīng)的中間密文數(shù)據(jù),中間密文數(shù)據(jù)適合向所述設(shè)備輸出,使得當(dāng)所述設(shè)備根據(jù)第二密碼方案處理所述中間密文數(shù)據(jù)時,所述設(shè)備產(chǎn)生適合顯示所述動態(tài)口令的數(shù)據(jù)。
文檔編號G06F21/34GK101632086SQ200880005439
公開日2010年1月20日 申請日期2008年2月15日 優(yōu)先權(quán)日2007年2月20日
發(fā)明者喬納森·羅山·圖利安尼 申請人:科里普托馬迪克公司