專利名稱:一種獲取動態(tài)口令生成密鑰的方法、設(shè)備和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)安全領(lǐng)域,尤其涉及一種獲取動態(tài)口令生成密鑰的方法、設(shè)備和系統(tǒng)。
背景技術(shù):
常規(guī)的"口令"代碼認證是計算機系統(tǒng)的早期身份認證產(chǎn)品,由于這種"口令"的靜態(tài)特性和重復使用性,存在易竊取、易猜測、易破解等安全缺陷,是一種弱身份認證系統(tǒng),只能用于安全等級要求較低的信息系統(tǒng)。為了滿足安全等級較高的信息系統(tǒng)的要求,動態(tài)口令認證作為一種強身份認證系統(tǒng),是目前業(yè)界研究的熱點之一。 動態(tài)口令(Dynamic Password)也稱一次性口令(0ne-time Password),是一禾中變動的口令,其變動來源于產(chǎn)生口令的運算因子是變化的。動態(tài)口令的運算因子一般都采用雙運算因子(two factor)。這種雙運算因子中的一個運算因子為用戶的私有密鑰,私有密鑰是代表用戶身份的識別碼,是固定不變的;這種雙運算因子中的另一個運算因子為變動因子。由不斷變化的變動因子與私有密鑰共同運算產(chǎn)生了不斷變動的動態(tài)口令。用戶利用不斷變動的動態(tài)口令對信息進行認證,保證了信息的安全性。目前動態(tài)口令認證被廣泛應用于政府、金融、企業(yè)等重要信息系統(tǒng)的安全認證。 目前動態(tài)口令卡中用戶的私有密鑰的生成及管理是在動態(tài)口令卡的生產(chǎn)過程中進行的,即廠商生產(chǎn)該動態(tài)口令卡時,通過密鑰生成系統(tǒng)產(chǎn)生私有密鑰寫入動態(tài)口令卡中;同時,生成相應的加密數(shù)據(jù)文件傳遞給認證服務器。認證服務器根據(jù)用戶的私有密鑰與動態(tài)口令卡的對應關(guān)系完成動態(tài)口令卡與私有密鑰的配置與關(guān)聯(lián),以進行后續(xù)的認證操作。
然而,現(xiàn)有的動態(tài)口令認證中的缺點不容忽視。由于對動態(tài)口令卡進行私有密鑰的分配、將私有密鑰寫入動態(tài)口令卡以及將相應的加密數(shù)據(jù)文件傳遞給認證服務器的過程,都是人為進行的,存在較高的導致私有密鑰和加密數(shù)據(jù)文件泄漏的安全隱患,無法保證信息的安全性。同時,廠商還需要組織相應的人力、物力進行私有密鑰的分配與管理,給動態(tài)口令卡的生產(chǎn)帶來了很大的不便和繁瑣。
發(fā)明內(nèi)容
為解決現(xiàn)有技術(shù)中由人為進行私有密鑰對動態(tài)口令卡的分配和寫入所帶來的問題,本發(fā)明的實施例提供一種獲取動態(tài)口令生成密鑰的方法、設(shè)備和系統(tǒng),用于保證信息的私密性和安全性,提高了動態(tài)口令生成密鑰的分配和管理效率,方便廠商對動態(tài)口令卡的生產(chǎn)。 為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案 本發(fā)明實施例提供了一種獲取動態(tài)口令生成密鑰的方法,包括 生成動態(tài)口令卡的公鑰和私鑰; 將動態(tài)口令卡的公鑰發(fā)送至認證服務器并接收認證服務器發(fā)送的認證服務器的數(shù)字證書,認證服務器利用所述動態(tài)口令卡的公鑰生成用戶的數(shù)字證書,所述認證服務器
4支持數(shù)字證書CA頒發(fā)系統(tǒng); 利用動態(tài)口令卡的私鑰和數(shù)字簽名算法對動態(tài)口令卡的專有標識信息進行數(shù)字簽名,并向認證服務器發(fā)送數(shù)字簽名后的所述專有標識信息; 當認證服務器利用用戶的數(shù)字證書對所述專有標識信息的數(shù)字簽名驗證成功后,接收認證服務器發(fā)送的所述動態(tài)口令生成密鑰,其中,認證服務器利用認證服務器的私鑰和所述數(shù)字簽名算法對所述動態(tài)口令生成密鑰進行數(shù)字簽名; 根據(jù)獲得的認證服務器的數(shù)字證書對所述動態(tài)口令生成密鑰的數(shù)字簽名進行驗證,當驗證成功時,保存所述動態(tài)口令生成密鑰。 本發(fā)明實施例還提供了一種獲取動態(tài)口令生成密鑰的裝置,該裝置包括
公私鑰對生成單元,用于生成動態(tài)口令卡的公鑰和私鑰; 數(shù)字證書獲得單元,用于將所述動態(tài)口令卡的公鑰發(fā)送至認證服務器并接收認證服務器發(fā)送的認證服務器的數(shù)字證書; 密鑰獲得單元,用于利用動態(tài)口令卡的私鑰和數(shù)字簽名算法對動態(tài)口令卡的專有標識信息進行數(shù)字簽名,并向認證服務器發(fā)送數(shù)字簽名后的所述專有標識信息;接收認證服務器對所述專有標識信息的數(shù)字簽名驗證成功后發(fā)送的利用認證服務器的私鑰進行數(shù)字簽名的動態(tài)口令生成密鑰; 驗證單元,用于根據(jù)獲得的所述認證服務器的數(shù)字證書對所述動態(tài)口令生成密鑰的數(shù)字簽名進行驗證,當驗證成功時,保存所述動態(tài)口令生成密鑰。 本發(fā)明實施例還提供了一種獲取動態(tài)口令生成密鑰的系統(tǒng),該系統(tǒng)包括上述的獲取動態(tài)口令生成密鑰的裝置。 本發(fā)明實施例還提供一種認證系統(tǒng),所述系統(tǒng)包括上述的獲取動態(tài)口令生成密鑰的裝置和認證服務器, 所述認證服務器,用于接收應用系統(tǒng)通過第一通道傳送的隨機數(shù)或者通過第一通道將生成的隨機數(shù)傳送給應用系統(tǒng),利用動態(tài)口令生成密鑰和加密算法對所述隨機數(shù)進行加密運算,生成驗證數(shù)據(jù);接收所述獲取動態(tài)口令生成密鑰的裝置通過第二通道發(fā)送的動態(tài)口令,根據(jù)所述驗證數(shù)據(jù)對所述動態(tài)口令進行認證,將認證結(jié)果告知所述應用系統(tǒng),由應用系統(tǒng)執(zhí)行相應的操作; 所述獲取動態(tài)口令生成密鑰的裝置,用于接收輸入的所述隨機數(shù),利用獲取到的動態(tài)口令生成密鑰和與所述認證服務器所采用的加密算法相同的加密算法對所述隨機數(shù)進行加密運算,生成動態(tài)口令;通過所述第二通道將所述動態(tài)口令傳送給所述認證服務器; 其中,所述第一通道和第二通道為相同類型的通道,或者,所述第一通道和第二通道為不同類型的通道。 本發(fā)明實施例提供的技術(shù)方案,利用生成的動態(tài)口令卡的公鑰和私鑰,由認證服務器通過網(wǎng)絡(luò)向動態(tài)口令卡頒發(fā)認證服務器的數(shù)字證書和分配相應的動態(tài)口令生成密鑰,并利用認證服務器的數(shù)字證書對動態(tài)口令生成密鑰進行驗證,避免了動態(tài)口令生成密鑰和加密數(shù)據(jù)文件的泄露,保證了將動態(tài)口令生成密鑰分配并寫入合法的動態(tài)口令卡中。本發(fā)明實施例的技術(shù)方案,解決了現(xiàn)有技術(shù)中由人為進行動態(tài)口令生成密鑰對動態(tài)口令卡的分配和寫入所帶來的問題,既保證了信息的私密性和安全性,又提高了動態(tài)口令生成密鑰的分配和管理效率,方便了廠商對動態(tài)口令卡的生產(chǎn)。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例一提供的獲取動態(tài)口令生成密鑰的方法流程示意圖;
圖2為本發(fā)明實施例二提供的數(shù)字證書頒發(fā)流程示意圖;
圖3為本發(fā)明實施例二提供的數(shù)字證書格式示意圖; 圖4為本發(fā)明實施例二提供的獲取動態(tài)口令生成密鑰的方法流程示意圖;
圖5為本發(fā)明實施例三提供的獲取動態(tài)口令生成密鑰的裝置的結(jié)構(gòu)示意圖。
具體實施例方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。 本發(fā)明實施例一提供的獲取動態(tài)口令生成密鑰的方法,如圖1所示,所述方法包 括 步驟11 :生成動態(tài)口令卡的公鑰和私鑰; 步驟12 :將動態(tài)口令卡的公鑰發(fā)送至認證服務器并接收認證服務器發(fā)送的認證 服務器的數(shù)字證書,認證服務器利用所述動態(tài)口令卡的公鑰生成用戶的數(shù)字證書,所述認 證服務器支持數(shù)字證書(CA)頒發(fā)系統(tǒng);
步驟13 :獲取動態(tài)口令生成密鑰; 利用動態(tài)口令卡的私鑰和數(shù)字簽名算法對動態(tài)口令卡的專有標識信息進行數(shù)字 簽名,并向認證服務器發(fā)送數(shù)字簽名后的所述專有標識信息;當認證服務器利用用戶的數(shù) 字證書對所述專有標識信息的數(shù)字簽名驗證成功后,接收認證服務器發(fā)送的所述動態(tài)口令 生成密鑰,其中,認證服務器利用認證服務器的私鑰和所述數(shù)字簽名算法對所述動態(tài)口令 生成密鑰進行數(shù)字簽名; 步驟14 :根據(jù)獲得的認證服務器的數(shù)字證書對所述動態(tài)口令生成密鑰的數(shù)字簽 名進行驗證,當驗證成功時,保存所述動態(tài)口令生成密鑰; 進一步的,上述方法還包括步驟15 :利用所述動態(tài)口令生成密鑰與所述認證服 務器進行動態(tài)口令認證。 上述的步驟11至步驟15可以由能夠?qū)崿F(xiàn)動態(tài)口令認證的電信智能卡實現(xiàn),如由 支持動態(tài)口令認證的SIM卡等動態(tài)口令卡實現(xiàn),也可以由設(shè)置在動態(tài)口令卡中的專有模塊 實現(xiàn)。 優(yōu)選的,本發(fā)明實施例中的數(shù)字簽名算法采用非對稱加密算法RSA算法,但并不 局限于此算法,可以采用其他適合的非對稱加密算法。在步驟11中,可以利用RSA算法生
6成動態(tài)口令卡的公鑰和私鑰。參見圖l,在步驟14中,當動態(tài)口令生成密鑰的數(shù)字簽名未通 過驗證時,表明動態(tài)口令生成密鑰對動態(tài)口令卡的分發(fā)過程中存在安全問題,例如,該接收 動態(tài)口令生成密鑰的動態(tài)口令卡為非法的動態(tài)口令卡,或者,該動態(tài)口令生成密鑰為非法 的動態(tài)口令生成密鑰等,這時,結(jié)束操作,不允許利用該動態(tài)口令生成密鑰進行后續(xù)與認證 服務器的動態(tài)口令認證。 本發(fā)明實施例提供的技術(shù)方案,利用生成的動態(tài)口令卡的公鑰和私鑰,由認證服 務器通過網(wǎng)絡(luò)向動態(tài)口令卡頒發(fā)認證服務器的數(shù)字證書和分配相應的動態(tài)口令生成密鑰, 并利用認證服務器的數(shù)字證書對動態(tài)口令生成密鑰進行驗證,避免了動態(tài)口令生成密鑰和 加密數(shù)據(jù)文件的泄露,保證了將動態(tài)口令生成密鑰分配并寫入合法的動態(tài)口令卡中。本發(fā) 明實施例的技術(shù)方案,解決了現(xiàn)有技術(shù)中由人為進行動態(tài)口令生成密鑰對動態(tài)口令卡的分 配和寫入所帶來的問題,既保證了信息的私密性和安全性,又提高了動態(tài)口令生成密鑰的 分配和管理效率,方便了廠商對動態(tài)口令卡的生產(chǎn)。 下面對本發(fā)明實施例二提供的獲取動態(tài)口令生成密鑰的方法進行詳細說明。在本 發(fā)明實施例二中,以利用終端中的SIM卡實現(xiàn)本發(fā)明實施例的獲取動態(tài)口令生成密鑰的方 法為例進行說明,SIM卡通過電信網(wǎng)絡(luò)與所述認證服務器進行信息交互。
步驟21 :生成動態(tài)口令卡的公鑰和私鑰。 根據(jù)數(shù)字簽名算法計算生成動態(tài)口令卡的公鑰和私鑰,該數(shù)字簽名算法可以采用 滿足公鑰加密標準PKCSftl (Public Key Cryptogr即hy Standards)或PKCSft11的RSA算法, SIM卡可以支持1024位的RSA算法。 SIM卡(動態(tài)口令卡)利用預置的RSA算法生成動態(tài)口令卡的公鑰和私鑰(即生 成該SIM卡的公鑰和私鑰)。其中,公鑰是可以導出卡外的信息,而私鑰存儲在卡中不能導 出卡外。進行數(shù)字簽名時使用私鑰按照數(shù)字簽名算法進行運算;驗證數(shù)字簽名的有效性時, 使用公鑰按照相同的數(shù)字簽名算法進行運算。 步驟22 :將動態(tài)口令卡的公鑰發(fā)送至認證服務器并接收認證服務器發(fā)送的認證 服務器的數(shù)字證書,認證服務器利用所述動態(tài)口令卡的公鑰生成用戶的數(shù)字證書,所述認 證服務器支持數(shù)字證書CA頒發(fā)系統(tǒng)。 SIM卡向數(shù)字證書(CA)頒發(fā)系統(tǒng)申請數(shù)字證書,由數(shù)字證書頒發(fā)系統(tǒng)將相應的數(shù) 字證書頒發(fā)給SM卡并寫入卡內(nèi)。在本發(fā)明實施例中,以采用證書申請信息申請數(shù)字證書 的場景為例進行描述。 參見圖2,圖中所示的認證服務器支持數(shù)字證書頒發(fā)系統(tǒng),動態(tài)口令卡獲取數(shù)字證 書的過程主要包括如下操作 步驟221 :SIM卡向認證服務器發(fā)送證書申請信息,所述證書申請信息攜帶動態(tài)口 令卡的公鑰; 上述證書申請信息中還可以攜帶動態(tài)口令卡的專有標識信息,該專有標識信息可 以包括,例如,集成電路卡識別碼(ICCID),或者,國際移動用戶識別號(IMSI),或者同時包 括ICCID和IMSI,以對用戶的身份進行確認和記錄,防止非法用戶盜取數(shù)字證書,保證將數(shù) 字證書頒發(fā)給合法的用戶。認證服務器利用接收到的SIM卡的公鑰,生成用戶的數(shù)字證書, 以在后續(xù)的認證過程中利用該用戶的數(shù)字證書對來自SIM卡的信息進行認證。
或者,由認證服務器發(fā)起該數(shù)字證書頒發(fā)過程,SIM卡根據(jù)認證服務器的讀取命令
7發(fā)送上述證書申請信息,這時,在步驟221之前還包括步驟220 :認證服務器發(fā)送讀取命
令,要求讀取SIM卡的公鑰和/或?qū)S袠俗R信息。 上述證書申請信息可以采用無線方式傳送給認證服務器,如SIM卡采用數(shù)據(jù)短信 方式將證書申請信息傳送給認證服務器,也可以先從SM卡讀出證書申請信息,通過有線 網(wǎng)絡(luò)等傳送給認證服務器。 進一步的,為保證信息的安全性,SM卡先利用動態(tài)口令卡的私鑰和數(shù)字簽名算法 對動態(tài)口令卡的專有標識信息進行數(shù)字簽名,將數(shù)字簽名后的所述專有標識信息和動態(tài)口 令卡的公鑰攜帶在證書申請信息中,再將該證書申請信息發(fā)送至認證服務器,認證服務器 利用所述動態(tài)口令卡的公鑰生成用戶的數(shù)字證書,并利用用戶的數(shù)字證書對所述專有標識 信息的數(shù)字簽名進行驗證,當驗證成功后,認證服務器記錄SIM卡的公鑰、專有信息標識與 用戶的數(shù)字證書的對應關(guān)系,或是記錄SIM卡的專有信息標識與用戶的數(shù)字證書的對應關(guān) 系。這樣,認證服務器可以獲知合法的SIM卡與相應用戶的數(shù)字證書的對應關(guān)系,以保證利 用正確的用戶的數(shù)字證書對合法的SIM卡的相關(guān)信息進行驗證,避免了數(shù)據(jù)泄漏帶來的安 全隱患。 步驟222:SIM卡接收認證服務器根據(jù)所述證書申請信息發(fā)送的認證服務器的數(shù) 字證書。 認證服務器根據(jù)S頂卡的公鑰和專有標識信息,將認證服務器的數(shù)字證書寫入 SM卡內(nèi)。在本發(fā)明實施例中選取X509V3版本的數(shù)字證書。 參見圖3,顯示了本發(fā)明實施例提供的一種數(shù)字證書格式示意圖,在數(shù)字證書中攜 帶了公鑰的信息。下面對數(shù)字證書中的內(nèi)容進行簡要說明。每張數(shù)字證書主要包括三個字 段 證書內(nèi)容(tbsCertif icate),簽名算法(signatureAlgorithm),禾P簽名值 (signatureValue)。 其中,證書內(nèi)容字段包含下列基本項 證書版本號(Version),證書序列號(Serial Number),簽名算法(Signature),頒 發(fā)者(Issuer),有效期(Validity),主體(Subject), 主體公鑰信息(Subject Public Key Info)及作為可選項的唯 一 標識符 (Un i queIdent i f i ers) 證書內(nèi)容字段還應支持RFC5280中所規(guī)定的全部17個擴展項和國家標準GB/T
20518-2006《數(shù)字證書格式》中所規(guī)定的5個擴展項,并支持自定義擴展項。 RFC5280中所規(guī)定的17個擴展項如下 1.機構(gòu)密鑰標識符(Authority Key Identifier); 2.主體密鑰標識符(Subject Key Identifier); 3.密鑰用途(Key Usage);4.證書策略(Certificate Policies); 5.策略映射(Policy Mappings); 6.主體可選替換名(Subject Alternative Name); 7.頒發(fā)者可選替換名(Issuer Alternative Name); 8.主體目錄屬性(Subject Directory Attributes);
8
9.基本限制(Basic Constraints);
10.名稱限制(Name Constraints);
11.策略限制(Policy Constraints);
12.擴展密鑰用途(Extended Key Usage);
13. CRL發(fā)布點(CRL Distribution Points);
14.禁止anyPolicy (Inhibit anyPolicy); 15.最新CRL/增量CRL發(fā)布點(Freshest CRL/Delta CRL DistributionPoint);
16.機構(gòu)信息訪問(Authority Information Access);
17.主體信息訪問(Subject Information Access)。
國家標準《數(shù)字證書格式》中所規(guī)定的5個擴展項如下 個人身份標識碼,個人社會保險號,企業(yè)工商注冊號,企業(yè)組織機構(gòu)代碼,企業(yè)稅號。 步驟23 :利用動態(tài)口令卡的私鑰從認證服務器獲得相應的動態(tài)口令生成密鑰,所 述動態(tài)口令生成密鑰經(jīng)過認證服務器利用認證服務器的私鑰和數(shù)字簽名算法進行數(shù)字簽 名。 利用動態(tài)口令卡的私鑰和數(shù)字簽名算法對動態(tài)口令卡的專有標識信息進行數(shù)字 簽名,并向認證服務器發(fā)送數(shù)字簽名后的所述專有標識信息;當認證服務器利用用戶的數(shù) 字證書對所述專有標識信息的數(shù)字簽名驗證成功后,SIM卡接收認證服務器發(fā)送的所述動 態(tài)口令生成密鑰,其中,認證服務器利用認證服務器的私鑰和所述數(shù)字簽名算法對所述動 態(tài)口令生成密鑰進行數(shù)字簽名。 參見圖4,顯示了在用戶首次使用動態(tài)口令認證時,獲取動態(tài)口令生成密鑰以及利
用該動態(tài)口令生成密鑰進行動態(tài)口令認證的流程,但并不局限于該場景,例如,用戶可以在
首次開通動態(tài)口令認證業(yè)務時獲取動態(tài)口令生成密鑰,利用該動態(tài)口令生成密鑰進行后續(xù)
的動態(tài)口令認證過程;或者用戶也可以在每一次使用動態(tài)口令認證時或在一段時期之后重
新獲取新的動態(tài)口令生成密鑰,利用新的動態(tài)口令生成密鑰進行動態(tài)口令認證,或者,認證
服務器可以根據(jù)實際的需要和安全要求,通過無線方式定期或不定期的更新動態(tài)口令卡的
動態(tài)口令生成密鑰。具體包括如下步驟 步驟231 :SIM卡接收用戶發(fā)送的開通命令; 例如,接收用戶通過"申請開通動態(tài)口令菜單"發(fā)送的開通命令。 步驟232 :SIM卡向認證服務器發(fā)送申請開通動態(tài)口令請求,該請求中攜帶經(jīng)數(shù)字
簽名后的SIM卡的專有標識信息; SIM卡利用動態(tài)口令卡的私鑰和數(shù)字簽名算法進行計算,生成動態(tài)口令卡的專有
標識信息的數(shù)字簽名。然后,將該具有數(shù)字簽名的專有標識信息通過申請開通動態(tài)口令請
求發(fā)送給認證服務器,可以采用數(shù)據(jù)短信方式實現(xiàn)該申請開通動態(tài)口令請求。 步驟233 :認證服務器對專有標識信息的數(shù)字簽名進行驗證,當驗證通過后,隨機
生成該動態(tài)口令卡的動態(tài)口令生成密鑰。 認證服務器上保存有認證服務器的數(shù)字證書和用戶的數(shù)字證書,用戶的數(shù)字證書 中記錄了動態(tài)口令卡的公鑰以及該公鑰的各種信息(例如該公鑰是否在有效期內(nèi)等),認 證服務器利用用戶的數(shù)字證書對專有信息標識的數(shù)字簽名進行驗證。驗證通過后,隨機生成該動態(tài)口令卡的動態(tài)口令生成密鑰,驗證失敗,則結(jié)束操作。 步驟234 :認證服務器對上述動態(tài)口令生成密鑰進行數(shù)字簽名。 認證服務器利用自身的私鑰和數(shù)字簽名算法對動態(tài)口令生成密鑰進行數(shù)字簽名。 步驟235 :認證服務器將經(jīng)過數(shù)字簽名的動態(tài)口令生成密鑰發(fā)送給SIM卡。 認證服務器可以通過數(shù)據(jù)短信方式將上述動態(tài)口令生成密鑰發(fā)送給SM卡。 步驟236 :根據(jù)獲得的認證服務器的數(shù)字證書對所述動態(tài)口令生成密鑰的數(shù)字簽
名進行驗證。 根據(jù)所述認證服務器的數(shù)字證書可以獲得認證服務器的公鑰,且進一步的,根據(jù) 認證服務器的數(shù)字證書還可對認證服務器的公鑰的有效性進行確認,例如,判斷該公鑰是 否還處于有效期內(nèi),若該公鑰為有效的公鑰,采用該公鑰對動態(tài)口令生成密鑰的數(shù)字簽名 進行驗證,若該公鑰已失效,則可以向用戶顯示提示信息,重新獲取認證服務器的數(shù)字證 書,或者,直接結(jié)束操作。 利用有效的認證服務器的公鑰和數(shù)字簽名算法對動態(tài)口令生成密鑰的數(shù)字簽名 進行驗證。 步驟237 :當動態(tài)口令生成密鑰的數(shù)字簽名驗證成功時,SIM卡在卡中保存所述動 態(tài)口令生成密鑰,執(zhí)行步驟238。當驗證失敗時,則可以向用戶顯示提示信息,重新執(zhí)行動態(tài) 口令認證過程,或者,直接結(jié)束操作。 步驟238 :SIM卡向認證服務器反饋動態(tài)口令生成密鑰接收成功。 SIM卡即時生成接收成功信息,例如諸如"接收成功"等的文字信息,或者,直接選
取SM卡上的專有標識信息作為該接收成功信息,然后將該接收成功信息發(fā)送給認證服務器。 或者,為進一步保證信息的安全性,SIM卡利用自身的私鑰和數(shù)字簽名算法對接收
成功信息進行數(shù)字簽名。將數(shù)字簽名后的接收成功信息發(fā)送給認證服務器,由認證服務器
對接收成功信息的數(shù)字簽名進行驗證,驗證成功后,將該SIM卡置為使用狀態(tài)。 可以采用數(shù)據(jù)短信方式將上述接收成功信息發(fā)送給認證服務器。 步驟24 :利用所述動態(tài)口令生成密鑰與所述認證服務器進行動態(tài)口令認證。本發(fā)
明實施例中SIM卡和認證服務器之間可以采用時間同步認證、事件同步認證、和挑戰(zhàn)/應答
認證等技術(shù)來實現(xiàn)動態(tài)口令認證。 其中,基于時間同步認證技術(shù)是把時間作為變動因子,一般以60秒作為變化單 位。所謂"同步"是指用戶口令卡和認證服務器所產(chǎn)生的口令在時間上必須同步??梢圆?用"滑動窗口 "技術(shù)實現(xiàn)時間同步。 基于事件同步認證技術(shù)是把變動的數(shù)字序列(事件序列)作為口令產(chǎn)生器的一個 運算因子,與用戶的動態(tài)口令生成密鑰共同產(chǎn)生動態(tài)口令。這里的同步是指每次認證時,認 證服務器與口令卡保持相同的事件序列。如果用戶使用時,因操作失誤多產(chǎn)生了幾組口令 出現(xiàn)不同步,服務器會自動同步到目前使用的口令, 一但一個口令被使用過后,在口令序列 中所有這個口令之前的口令都會失效。其認證過程與時間同步認證相同。
挑戰(zhàn)/應答(Challenge/Response)技術(shù)中的變動因子是由認證服務器產(chǎn)生的隨 機數(shù)字序列(Challenge),它也是口令卡的口令生成的變動因子,與用戶的動態(tài)口令生成密 鑰共同運算產(chǎn)生動態(tài)口令。
10
本發(fā)明實施例以采用挑戰(zhàn)/應答技術(shù)實現(xiàn)SM卡和認證服務器之間的動態(tài)口令認證為例進行描述。 用戶在使用業(yè)務,如網(wǎng)絡(luò)銀行、網(wǎng)上購物時,需要登陸到相應的應用系統(tǒng),該應用系統(tǒng)生成一隨機數(shù),如挑戰(zhàn)碼,應用系統(tǒng)將該挑戰(zhàn)碼傳遞給認證服務器,并通過在計算機客戶端的屏幕上顯示或向用戶終端發(fā)送消息等方式將挑戰(zhàn)碼告知用戶?;蛘?,認證服務器生成上述隨機數(shù),將隨機數(shù)發(fā)送至應用系統(tǒng),應用系統(tǒng)將該隨機數(shù)在客戶端的界面上進行顯示。 步驟241 :SIM卡接收輸入的隨機數(shù)。 可啟動用戶識別應用發(fā)展工具(SIM TOOL KIT, STK)動態(tài)口令菜單并利用該菜單進行操作,STK提供了一組開發(fā)增值業(yè)務的命令,允許基于智能卡的用戶身份識別模塊(SM)運行自己的應用軟件。 SIM卡可以接收通過STK命令輸入的隨機數(shù)。 步驟242 :SIM卡利用所述動態(tài)口令生成密鑰和加密算法對所述隨機數(shù)(如挑戰(zhàn)碼)進行加密運算,從而在用戶終端側(cè)生成了相應的動態(tài)口令。為便于操作,可以將該動態(tài)口令在終端上向用戶進行顯示。 步驟243 :SIM卡將所述動態(tài)口令傳遞給認證服務器,由認證服務器對該動態(tài)口令進行認證。 SIM卡可以通過數(shù)據(jù)短信方式直接將該動態(tài)口令發(fā)送給認證服務器,或者,向應用系統(tǒng)輸入該動態(tài)口令,由應用系統(tǒng)將動態(tài)口令傳遞給認證服務器。 認證服務器使用上述挑戰(zhàn)碼進行和SIM卡端一致的加密運算,得到驗證數(shù)據(jù),將得到的驗證數(shù)據(jù)與用戶輸入的動態(tài)口令進行比對進行認證,并將認證結(jié)果告知所述應用系統(tǒng),由應用系統(tǒng)執(zhí)行相應的操作,例如,當驗證數(shù)據(jù)與動態(tài)口令一致時,應用系統(tǒng)允許用戶正常登陸使用應用系統(tǒng);否則,應用系統(tǒng)不允許用戶登陸應用系統(tǒng)。 本發(fā)明實施例提供的技術(shù)方案,利用生成的動態(tài)口令卡的公鑰和私鑰,由認證服務器通過網(wǎng)絡(luò)向動態(tài)口令卡頒發(fā)認證服務器的數(shù)字證書和分配相應的動態(tài)口令生成密鑰,并利用認證服務器的數(shù)字證書對動態(tài)口令生成密鑰進行驗證,避免了動態(tài)口令生成密鑰和加密數(shù)據(jù)文件的泄露,保證了將動態(tài)口令生成密鑰分配并寫入合法的動態(tài)口令卡中。本發(fā)明實施例的技術(shù)方案,解決了現(xiàn)有技術(shù)中由人為進行動態(tài)口令生成密鑰對動態(tài)口令卡的分配和寫入所帶來的問題,既保證了信息的私密性和安全性,又提高了動態(tài)口令生成密鑰的分配和管理效率,方便了廠商對動態(tài)口令卡的生產(chǎn)。 本發(fā)明實施例三還提供了 一種獲取動態(tài)口令生成密鑰的裝置,如圖5所示,所述裝置包括 公私鑰對生成單元51,用于生成動態(tài)口令卡的公鑰和私鑰; 數(shù)字證書獲得單元52,用于將所述動態(tài)口令卡的公鑰發(fā)送至認證服務器并接收認證服務器發(fā)送的認證服務器的數(shù)字證書; 密鑰獲得單元53,用于利用動態(tài)口令卡的私鑰和數(shù)字簽名算法對動態(tài)口令卡的專有標識信息進行數(shù)字簽名,并向認證服務器發(fā)送數(shù)字簽名后的所述專有標識信息;接收認證服務器對所述專有標識信息的數(shù)字簽名驗證成功后發(fā)送的利用認證服務器的私鑰進行數(shù)字簽名的動態(tài)口令生成密鑰;
驗證單元54,用于根據(jù)獲得的所述認證服務器的數(shù)字證書對所述動態(tài)口令生成密鑰的數(shù)字簽名進行驗證,當驗證成功時,保存所述動態(tài)口令生成密鑰。 進一步的,所述裝置還包括動態(tài)口令單元55,用于利用所述動態(tài)口令生成密鑰與所述認證服務器進行動態(tài)口令認證;例如,動態(tài)口令單元55,用于接收輸入的隨機數(shù);利用所述動態(tài)口令生成密鑰和加密算法對所述隨機數(shù)進行加密運算,生成動態(tài)口令;將所述動態(tài)口令傳遞給認證服務器,由認證服務器對該動態(tài)口令進行認證。 進一步的,所述數(shù)字證書獲得單元52,利用動態(tài)口令卡的私鑰和數(shù)字簽名算法對動態(tài)口令卡的專有標識信息進行數(shù)字簽名,將數(shù)字簽名后的所述專有標識信息和動態(tài)口令卡的公鑰發(fā)送至認證服務器;以及,接收認證服務器對所述專有標識信息的數(shù)字簽名驗證成功后發(fā)送的認證服務器的數(shù)字證書。 上述的數(shù)字簽名算法可以采用滿足公鑰加密標準PKCS#1 (Public
KeyCryptogr即hy Standards)或PKCSft11的RSA算法,以及其他合適的算法。 進一步的,所述密鑰獲得單元53,具體用于利用動態(tài)口令卡的私鑰和數(shù)字簽名算
法對動態(tài)口令卡的專有標識信息進行數(shù)字簽名;向認證服務器發(fā)送數(shù)字簽名后的所述專有
標識信息;當所述專有標識信息的數(shù)字簽名通過認證服務器的驗證后,接收認證服務器發(fā)
送的所述動態(tài)口令生成密鑰。其中,該專有標識信息可以為ICCID,或者為IMSI,或者同時
包括ICCID和IMSI。 進一步的,所述驗證單元54,具體用于根據(jù)所述認證服務器的數(shù)字證書獲得認證服務器的公鑰;利用所述認證服務器的公鑰和數(shù)字簽名算法驗證所述動態(tài)口令生成密鑰的數(shù)字簽名,當驗證成功時,保存所述動態(tài)口令生成密鑰。 本發(fā)明裝置實施例中各功能模塊和單元的具體工作方式參見本發(fā)明方法實施例。本發(fā)明裝置實施例中各功能模塊和單元可以單獨實現(xiàn),也可以集成在一個或多個單元中實現(xiàn)。例如,本發(fā)明實施例中的獲取動態(tài)口令生成密鑰的裝置可以由SIM卡以及其他支持動態(tài)口令認證的智能卡,或者設(shè)置在SM卡中的專有模塊等實現(xiàn)。 本發(fā)明實施例四還提供了一種獲取動態(tài)口令生成密鑰的系統(tǒng),該系統(tǒng)包括上述獲取動態(tài)口令生成密鑰的裝置。該系統(tǒng)利用上述獲取動態(tài)口令生成密鑰的裝置獲得動態(tài)口令生成密鑰。 本發(fā)明實施例五還提供了一種認證系統(tǒng),所述系統(tǒng)包括如上所述的獲取動態(tài)口令生成密鑰的裝置和認證服務器, 所述認證服務器,用于接收應用系統(tǒng)通過第一通道傳送的隨機數(shù)或者通過第一通道將生成的隨機數(shù)傳送給應用系統(tǒng),利用動態(tài)口令生成密鑰和加密算法對所述隨機數(shù)進行加密運算,生成驗證數(shù)據(jù);接收所述獲取動態(tài)口令生成密鑰的裝置通過第二通道發(fā)送的動態(tài)口令,根據(jù)所述驗證數(shù)據(jù)對所述動態(tài)口令進行認證,并將認證結(jié)果告知所述應用系統(tǒng),由應用系統(tǒng)執(zhí)行相應的操作; 所述獲取動態(tài)口令生成密鑰的裝置,用于接收輸入的所述隨機數(shù),利用獲取到的動態(tài)口令生成密鑰和與所述認證服務器所采用的加密算法相同的加密算法對所述隨機數(shù)進行加密運算,生成動態(tài)口令;通過所述第二通道將所述動態(tài)口令傳送給所述認證服務器; 其中,所述第一通道和第二通道為不同類型的通道,例如,第一通道為通過因特網(wǎng)
12實現(xiàn)的通道,第二通道為通過電信網(wǎng)絡(luò)實現(xiàn)的通道;或者,上述第一通道和第二通道為相同類型的通道,例如,第一通道和第二通道都為通過因特網(wǎng)實現(xiàn)的通道。 由上所述,本發(fā)明實施例提供的技術(shù)方案,利用生成的動態(tài)口令卡的公鑰和私鑰,由認證服務器通過網(wǎng)絡(luò)向動態(tài)口令卡頒發(fā)認證服務器的數(shù)字證書和分配相應的動態(tài)口令生成密鑰,并利用認證服務器的數(shù)字證書對動態(tài)口令生成密鑰進行驗證,避免了動態(tài)口令生成密鑰的泄露,保證了將動態(tài)口令生成密鑰分配并寫入合法的動態(tài)口令卡中。本發(fā)明實施例的技術(shù)方案,解決了現(xiàn)有技術(shù)中由人為進行動態(tài)口令生成密鑰對動態(tài)口令卡的分配和寫入所帶來的問題,既保證了信息的私密性和安全性,又提高了動態(tài)口令生成密鑰的分配和管理效率,方便了廠商對動態(tài)口令卡的生產(chǎn)。 本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以權(quán)利要求的保護范圍為準。
1權(quán)利要求
一種獲取動態(tài)口令生成密鑰的方法,其特征在于,所述方法包括生成動態(tài)口令卡的公鑰和私鑰;將動態(tài)口令卡的公鑰發(fā)送至認證服務器并接收認證服務器發(fā)送的認證服務器的數(shù)字證書,認證服務器利用所述動態(tài)口令卡的公鑰生成用戶的數(shù)字證書,所述認證服務器支持數(shù)字證書CA頒發(fā)系統(tǒng);利用動態(tài)口令卡的私鑰和數(shù)字簽名算法對動態(tài)口令卡的專有標識信息進行數(shù)字簽名,并向認證服務器發(fā)送數(shù)字簽名后的所述專有標識信息;當認證服務器利用用戶的數(shù)字證書對所述專有標識信息的數(shù)字簽名驗證成功后,接收認證服務器發(fā)送的所述動態(tài)口令生成密鑰,其中,認證服務器利用認證服務器的私鑰和所述數(shù)字簽名算法對所述動態(tài)口令生成密鑰進行數(shù)字簽名;根據(jù)獲得的認證服務器的數(shù)字證書對所述動態(tài)口令生成密鑰的數(shù)字簽名進行驗證,當驗證成功時,保存所述動態(tài)口令生成密鑰。
2. 根據(jù)權(quán)利要求1所述的獲取動態(tài)口令生成密鑰的方法,其特征在于,所述將動態(tài)口令卡的公鑰發(fā)送至認證服務器并接收認證服務器發(fā)送的認證服務器的數(shù)字證書,認證服務器利用所述動態(tài)口令卡的公鑰生成用戶的數(shù)字證書包括利用動態(tài)口令卡的私鑰和數(shù)字簽名算法對動態(tài)口令卡的專有標識信息進行數(shù)字簽名;將數(shù)字簽名后的所述專有標識信息和動態(tài)口令卡的公鑰發(fā)送至認證服務器,由認證服務器利用所述動態(tài)口令卡的公鑰生成用戶的數(shù)字證書,并利用用戶的數(shù)字證書對所述專有標識信息的數(shù)字簽名進行驗證;當認證服務器對所述專有標識信息的數(shù)字簽名驗證成功后,接收認證服務器發(fā)送的認證服務器的數(shù)字證書,由認證服務器記錄所述動態(tài)口令卡的公鑰、專有信息標識與用戶的數(shù)字證書的對應關(guān)系。
3. 根據(jù)權(quán)利要求1所述的獲取動態(tài)口令生成密鑰的方法,其特征在于,在所述根據(jù)獲得的認證服務器的數(shù)字證書對所述動態(tài)口令生成密鑰的數(shù)字簽名進行驗證,當驗證成功時,保存所述動態(tài)口令生成密鑰之后,還包括生成接收成功信息或選取接收成功信息;向認證服務器發(fā)送所述接收成功信息,以使認證服務器將相應的動態(tài)口令卡置為使用狀態(tài)。
4. 根據(jù)權(quán)利要求1或2所述的獲取動態(tài)口令生成密鑰的方法,其特征在于,所述專有標 識信息為集成電路卡識別碼ICCID和/或國際移動用戶識別號IMSI。
5. 根據(jù)權(quán)利要求1所述的獲取動態(tài)口令生成密鑰的方法,其特征在于,在所述根據(jù)獲得的認證服務器的數(shù)字證書對所述動態(tài)口令生成密鑰的數(shù)字簽名進行驗證,當驗證成功時,保存所述動態(tài)口令生成密鑰之后,還包括采用如下方式利用所述動態(tài)口令生成密鑰與所述認證服務器進行動態(tài)口令認證接收輸入的隨機數(shù);利用所述動態(tài)口令生成密鑰和加密算法對所述隨機數(shù)進行加密運算,生成動態(tài)口令;將所述動態(tài)口令傳遞給認證服務器,由認證服務器對該動態(tài)口令進行認證。
6. 根據(jù)權(quán)利要求1、2、3或5任一項所述的獲取動態(tài)口令生成密鑰的方法,其特征在于所述動態(tài)口令卡為電信智能卡,所述電信智能卡通過電信網(wǎng)絡(luò)與所述認證服務器進行信息交互。
7. —種獲取動態(tài)口令生成密鑰的裝置,其特征在于,所述裝置包括公私鑰對生成單元,用于生成動態(tài)口令卡的公鑰和私鑰;數(shù)字證書獲得單元,用于將所述動態(tài)口令卡的公鑰發(fā)送至認證服務器并接收認證服務器發(fā)送的認證服務器的數(shù)字證書;密鑰獲得單元,用于利用動態(tài)口令卡的私鑰和數(shù)字簽名算法對動態(tài)口令卡的專有標識信息進行數(shù)字簽名,并向認證服務器發(fā)送數(shù)字簽名后的所述專有標識信息;以及,接收認證服務器對所述專有標識信息的數(shù)字簽名驗證成功后發(fā)送的利用認證服務器的私鑰進行數(shù)字簽名的動態(tài)口令生成密鑰;驗證單元,用于根據(jù)獲得的所述認證服務器的數(shù)字證書對所述動態(tài)口令生成密鑰的數(shù)字簽名進行驗證,當驗證成功時,保存所述動態(tài)口令生成密鑰。
8. 根據(jù)權(quán)利要求7所述的獲取動態(tài)口令生成密鑰的裝置,其特征在于,所述數(shù)字證書獲得單元,利用動態(tài)口令卡的私鑰和數(shù)字簽名算法對動態(tài)口令卡的專有標識信息進行數(shù)字簽名,將數(shù)字簽名后的所述專有標識信息和動態(tài)口令卡的公鑰發(fā)送至認證服務器;以及,接收認證服務器對所述專有標識信息的數(shù)字簽名驗證成功后發(fā)送的認證服務器的數(shù)字證書。
9. 根據(jù)權(quán)利要求7所述的獲取動態(tài)口令生成密鑰的裝置,其特征在于,所述裝置還包括動態(tài)口令單元,用于接收輸入的隨機數(shù);利用所述動態(tài)口令生成密鑰和加密算法對所述隨機數(shù)進行加密運算,生成動態(tài)口令;將所述動態(tài)口令傳遞給認證服務器。
10. 根據(jù)權(quán)利要求7至9任一項所述的獲取動態(tài)口令生成密鑰的裝置,所述裝置由電信智能卡實現(xiàn),所述裝置通過電信網(wǎng)絡(luò)與所述認證服務器進行信息交互。
11. 一種獲取動態(tài)口令生成密鑰的系統(tǒng),其特征在于,所述系統(tǒng)包括如權(quán)利要求7至9任一項所述的獲取動態(tài)口令生成密鑰的裝置。
12. —種認證系統(tǒng),其特征在于,所述系統(tǒng)包括如權(quán)利要求7至9任一項所述的獲取動態(tài)口令生成密鑰的裝置和認證服務器,所述認證服務器,用于接收應用系統(tǒng)通過第一通道傳送的隨機數(shù)或者通過第一通道將生成的隨機數(shù)傳送給應用系統(tǒng),利用動態(tài)口令生成密鑰和加密算法對所述隨機數(shù)進行加密運算,生成驗證數(shù)據(jù);接收所述獲取動態(tài)口令生成密鑰的裝置通過第二通道發(fā)送的動態(tài)口令,根據(jù)所述驗證數(shù)據(jù)對所述動態(tài)口令進行認證,將認證結(jié)果告知所述應用系統(tǒng),由應用系統(tǒng)執(zhí)行相應的操作;所述獲取動態(tài)口令生成密鑰的裝置,用于接收輸入的所述隨機數(shù),利用獲取到的動態(tài)口令生成密鑰和與所述認證服務器所采用的加密算法相同的加密算法對所述隨機數(shù)進行加密運算,生成動態(tài)口令;通過所述第二通道將所述動態(tài)口令傳送給所述認證服務器;其中,所述第一通道和第二通道為相同類型的通道,或者,所述第一通道和第二通道為不同類型的通道。
全文摘要
本發(fā)明公開了一種獲取動態(tài)口令生成密鑰的方法、設(shè)備和系統(tǒng),涉及數(shù)據(jù)安全領(lǐng)域,能夠保證信息的私密性和安全性,提高動態(tài)口令生成密鑰的分配和管理效率,方便廠商對動態(tài)口令卡的生產(chǎn)。本發(fā)明實施例的獲取動態(tài)口令生成密鑰的方法包括生成動態(tài)口令卡的公鑰和私鑰;將動態(tài)口令卡的公鑰發(fā)送至支持數(shù)字證書頒發(fā)系統(tǒng)的認證服務器并接收認證服務器發(fā)送的認證服務器的數(shù)字證書;利用動態(tài)口令卡的私鑰從認證服務器獲取動態(tài)口令生成密鑰,其中,認證服務器對動態(tài)口令生成密鑰進行數(shù)字簽名;根據(jù)獲得的認證服務器的數(shù)字證書對動態(tài)口令生成密鑰的數(shù)字簽名進行驗證,當驗證成功時,保存動態(tài)口令生成密鑰。本發(fā)明適用于采用電信智能卡進行動態(tài)口令認證的場合。
文檔編號H04L9/30GK101764691SQ20091024282
公開日2010年6月30日 申請日期2009年12月17日 優(yōu)先權(quán)日2009年12月17日
發(fā)明者劉敏, 朱紅巖, 鄭小武, 陳靈燦 申請人:北京握奇數(shù)據(jù)系統(tǒng)有限公司;福建凱特信息安全技術(shù)有限公司