一種身份認證方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種身份認證方法及系統(tǒng)。
【背景技術(shù)】
[0002] 網(wǎng)絡(luò)和通信技術(shù)的蓬勃發(fā)展,潛移默化地影響著人們的生活、生產(chǎn)。近年來,越來 越多的黑客攻擊、大型網(wǎng)站賬號密碼泄露等信息安全事件的發(fā)生,使得信息安全成為關(guān)注 的焦點。身份認證機制作為信息系統(tǒng)的首道關(guān)卡,通過確認訪問網(wǎng)絡(luò)的通信實體的身份,防 止非法的外部入侵,保證系統(tǒng)安全、有序的運行。身份認證的本質(zhì)是利用身份特征的唯一 性,即被認證方的身份特征,除被認證方自己外,任何第三方(某些認證權(quán)威機構(gòu)除外)均 不能偽造,使認證方確信只有被認證方才具有此身份特征。、
[0003] 現(xiàn)有的身份認證協(xié)議大多基于挑戰(zhàn)/響應(yīng)原理演變而來,例如CHAP (Challenge Handshake Authentication Protocol,詢問握手認證協(xié)議)、SRP(Space Reuse Protocol, 安全遠程密碼協(xié)議)、CRAM-MD5(Challenge-Response Authentication Mechanism Message-Digest Algorithm 5,挑戰(zhàn)響應(yīng)認證機制-信息摘要算法5)等。但是,這些方法 至少存在以下一些問題:服務(wù)器和客戶端之間為單向認證,不能抵抗服務(wù)器偽造攻擊;認 證過程的計算操作復(fù)雜,對認證設(shè)備的運算能力要求高,如SRP協(xié)議的實現(xiàn)涉及冪運算;另 夕卜,一些身份認證協(xié)議只在正常通信之前實現(xiàn)身份認證,沒有在正常數(shù)據(jù)交互階段定期的 對通信實體的身份進行再確認,維持通信實體身份的可持續(xù)有效;認證數(shù)據(jù)以明文的形式 傳輸,不能保證數(shù)據(jù)傳輸安全;在需要會話密鑰加密數(shù)據(jù)的場合,密鑰的產(chǎn)生常常需要第三 方可信機構(gòu)的支持,不方便實現(xiàn)。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本發(fā)明提供一種身份認證方法及系統(tǒng),實現(xiàn)身份認證、隨機會話密鑰協(xié) 商、心跳認證的功能,以解決現(xiàn)有技術(shù)中存在的問題。
[0005] 為解決上述問題,本發(fā)明提供的技術(shù)方案如下:
[0006] 一種身份認證方法,服務(wù)器接收客戶端發(fā)送的客戶端固定身份標(biāo)識信息,并向所 述客戶端發(fā)送服務(wù)器固定身份標(biāo)識信息、密鑰表以及動態(tài)身份函數(shù),所述方法包括:
[0007] 所述服務(wù)器向所述客戶端發(fā)送第一隨機數(shù),以使所述客戶端確定第一動態(tài)身份信 息,將以所述第一隨機數(shù)、所述第一動態(tài)身份信息以及所述客戶端固定身份標(biāo)識信息為原 文計算得到的哈希值作為第一響應(yīng)信息與第二隨機數(shù)一起發(fā)送給所述服務(wù)器;所述服務(wù)器 確定第一動態(tài)身份信息,計算以所述第一隨機數(shù)、所述第一動態(tài)身份信息以及所述客戶端 固定身份標(biāo)識信息為原文的哈希值與所述第一響應(yīng)信息進行比較,如果相同,則通過對所 述客戶端的認證,如果不同,則認證失?。凰龅谝粍討B(tài)身份信息是利用所述第一隨機數(shù)、 所述密鑰表以及所述動態(tài)身份函數(shù)確定的;
[0008] 所述服務(wù)器在通過對所述客戶端的認證后,確定第二動態(tài)身份信息,計算以所述 第二隨機數(shù)、所述第二動態(tài)身份信息以及所述服務(wù)器固定身份標(biāo)識信息為原文的哈希值作 為第二響應(yīng)信息發(fā)送給所述客戶端,以使所述客戶端確定第二動態(tài)身份信息,計算以所述 第二隨機數(shù)、所述第二動態(tài)身份信息以及所述服務(wù)器固定身份標(biāo)識信息為原文的哈希值與 所述第二響應(yīng)信息進行比較,如果相同,則通過對所述服務(wù)器的認證,如果不同,則認證失 ?。凰龅诙討B(tài)身份信息是利用所述第二隨機數(shù)、所述密鑰表以及所述動態(tài)身份函數(shù)確 定的。
[0009] 相應(yīng)的,所述方法還包括:
[0010] 所述服務(wù)器生成服務(wù)器第一密鑰序列參數(shù)集發(fā)送給所述客戶端,并接收所述客戶 端生成的客戶端第一密鑰序列參數(shù)集,以使所述客戶端根據(jù)所述服務(wù)器第一密鑰序列參數(shù) 集以及所述客戶端第一密鑰序列參數(shù)集確定會話密鑰;
[0011] 所述服務(wù)器根據(jù)所述服務(wù)器第一密鑰序列參數(shù)集以及所述客戶端第一密鑰序列 參數(shù)集確定會話密鑰;
[0012] 所述根據(jù)所述服務(wù)器第一密鑰序列參數(shù)集以及所述客戶端第一密鑰序列參數(shù)集 確定會話密鑰,包括:
[0013] 將所述服務(wù)器第一密鑰序列參數(shù)集中的元素分別關(guān)于所述密鑰表的總行數(shù)取余, 得到服務(wù)器第二密鑰序列參數(shù)集;將所述客戶端第一密鑰序列參數(shù)集中的元素分別關(guān)于所 述密鑰表的總列數(shù)取余,得到客戶端第二密鑰序列參數(shù)集;
[0014] 將所述服務(wù)器第二密鑰序列參數(shù)集中的元素對應(yīng)所述密鑰表的行,將所述客戶端 第二密鑰序列參數(shù)集中的元素對應(yīng)所述密鑰表中的列,按照所述服務(wù)器第二密鑰序列參數(shù) 集中的元素順序以及所述客戶端第二密鑰序列參數(shù)集中的元素順序,查找所述密鑰表中對 應(yīng)的行列交叉點的元素組成會話密鑰。
[0015] 相應(yīng)的,所述方法還包括:
[0016] 所述服務(wù)器接收所述客戶端在通過對所述服務(wù)器的認證后保存并發(fā)送的秘密值, 并保存所述秘密值;
[0017] 每隔第一預(yù)設(shè)時間,所述服務(wù)器將所述秘密值加一作為心跳認證值發(fā)送給所述客 戶端,以使所述客戶端將保存的所述秘密值加一后與所述心跳認證值進行比較,如果相同, 則將以所述心跳認證值以及所述服務(wù)器固定身份標(biāo)識信息為原文計算得到的哈希值作為 第三響應(yīng)信息發(fā)送給所述服務(wù)器,并將所述心跳認證值替換為所述秘密值,如果不同,則心 跳認證失敗,斷開連接;
[0018] 所述服務(wù)器計算以所述心跳認證值以及所述服務(wù)器固定身份標(biāo)識信息為原文的 哈希值與所述第三響應(yīng)信息進行比較,如果相同,則將所述心跳認證值替換為所述秘密值, 如果不同,則心跳認證失敗,斷開連接。
[0019] 相應(yīng)的,所述方法還包括:
[0020] 每隔第二預(yù)設(shè)時間,所述服務(wù)器根據(jù)第三隨機數(shù)更新密鑰表;
[0021] 所述服務(wù)器向所述客戶端發(fā)送包括第三隨機數(shù)的密鑰表更新命令,以使所述客戶 端根據(jù)第三隨機數(shù)更新密鑰表,并向所述服務(wù)器發(fā)送密鑰表更新成功信息。
[0022] 相應(yīng)的,所述方法還包括:
[0023] 所述服務(wù)器建立客戶端認證白名單;
[0024] 所述服務(wù)器向所述客戶端發(fā)送第一隨機數(shù),包括:
[0025] 所述服務(wù)器主動向所述客戶端發(fā)送第一隨機數(shù);
[0026] 或者,所述服務(wù)器接收客戶端的認證請求,判斷所述客戶端是否屬于客戶端認證 白名單,如果是,向所述客戶端發(fā)送第一隨機數(shù)。
[0027] 相應(yīng)的,所述第一隨機數(shù)、所述第一響應(yīng)信息、所述第二隨機數(shù)、所述第二響應(yīng)信 息、所述服務(wù)器第一密鑰序列參數(shù)集以及所述客戶端第一密鑰序列參數(shù)集以初始密鑰進行 加密后進行傳輸;
[0028] 所述秘密值、所述心跳認證值、所述第三響應(yīng)信息、密鑰表更新命令以及所述服務(wù) 器與所述客戶端之間的通信報文以所述會話密鑰進行加密后進行傳輸。
[0029] 一種身份認證系統(tǒng),所述系統(tǒng)包括:
[0030] 服務(wù)器以及客戶端;
[0031] 所述服務(wù)器用于向所述客戶端發(fā)送服務(wù)器固定身份標(biāo)識信息、密鑰表以及動態(tài)身 份函數(shù);向所述客戶端發(fā)送第一隨機數(shù);確定第一動態(tài)身份信息,計算以所述第一隨機數(shù)、 所述第一動態(tài)身份信息以及所述客戶端固定身份標(biāo)識信息為原文的哈希值與所述第一響 應(yīng)信息進行比較,如果相同,則通過對所述客戶端的認證,如果不同,則認證失??;所述第一 動態(tài)身份信息是利用所述第一隨機數(shù)、所述密鑰表以及所述動態(tài)身份函數(shù)確定的;在通過 對所述客戶端的認證后,確定第二動態(tài)身份信息,計算以所述第二隨機數(shù)、所述第二動態(tài)身 份信息以及所述服務(wù)器固定身份標(biāo)識信息為原文的哈希值作為第二響應(yīng)信息發(fā)送給所述 客戶端;所述第二動態(tài)身份信息是利用所述第二隨機數(shù)、所述密鑰表以及所述動態(tài)身份函 數(shù)確定的;
[0032] 所述客戶端用于向所述服務(wù)器發(fā)送客戶端固定身份標(biāo)識信息;確定第一動態(tài)身份 信息,將以所述第一隨機數(shù)、所述第一動態(tài)身份信息以及所述