專利名稱:一種基于S/Key系統(tǒng)的身份認(rèn)證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機網(wǎng)絡(luò)安全領(lǐng)域中身份認(rèn)證的方法,特別是基于S/Key 系統(tǒng)的身份認(rèn)證方法。
背景技術(shù):
身份認(rèn)證是網(wǎng)絡(luò)安全系統(tǒng)中的第一道屏障,其他的安全服務(wù)都要依賴于它。 一旦身份認(rèn)證系統(tǒng)被攻破,那么系統(tǒng)的所有安全措施將形同虛設(shè)。目前主要的 身份認(rèn)證方法仍然是基于用戶名/密碼的靜態(tài)身份認(rèn)證。但這種認(rèn)證存在許多的 缺點,首先用戶必須記憶一些復(fù)雜的密碼,其次靜態(tài)密碼在傳輸?shù)倪^程中很容 易被截獲。目前較為安全的身份認(rèn)證方法是采用一次性口令認(rèn)證方法,或者生 物特征識別的身份認(rèn)證方法。 一次性口令身份認(rèn)證的主要思想是在登錄過程中 加入不確定因素,使每次登錄過程中傳送的信息都不同,以提高登錄過程中的 安全性。生物特征識別身份認(rèn)證方法是以人體的生物特征(指紋,掌紋,虹膜 等)代替口令,不需要用戶登錄時輸入密碼。
S/Key系統(tǒng)是目前實現(xiàn)一次性口令認(rèn)證方法較為理想的系統(tǒng)。S/Key系統(tǒng)包 含兩部分內(nèi)容初始化部分和認(rèn)證部分。
初始化注冊
用戶隨機選擇秘密通行口令W ,設(shè)置一次性口令序列的最大迭代值N,通 過安全信道將W、 N提交給認(rèn)證服務(wù)器,服務(wù)器生成與該用戶對應(yīng)的種子值S, 并且計算口令序列的第一個口令PG=HN(W+S)。服務(wù)器保存和注冊用戶相關(guān)聯(lián) 的信息,用戶的注冊過程結(jié)束。
服務(wù)器上用戶A的注冊數(shù)據(jù)內(nèi)容如下
User ID : IDA
Seed : S
Sequence Number : N
OTP : Po
具體身份認(rèn)證過程
用戶進行第i次登錄時,先輸入用戶名IDA向服務(wù)器發(fā)送認(rèn)證請求。
服務(wù)器將保存的當(dāng)前序列號N-i,種子值S, 一同發(fā)送給客戶端。
客戶端收到服務(wù)器的應(yīng)答信息后,提示用戶輸入秘密通行口令w,并通過自
己的一次性口令計算程序,計算當(dāng)前的認(rèn)證口令p,
Pi =HN-i(W+S)
然后客戶端將計算得到的本次認(rèn)證口令&發(fā)送給服務(wù)器。 服務(wù)器接收到本次認(rèn)證口令后,利用單向哈希函數(shù)H對其再進行一次運算,
得到P'w,并將結(jié)果與上次保留的口令Pw作比較,如果相同,則接受用戶的認(rèn)
證請求。并將Pi保存起來作為下次的口令驗證。
S/Key系統(tǒng)可以達到在網(wǎng)絡(luò)上傳送的密碼只使用一次的目的,可有效防止攻
擊者利用竊聽到的舊口令進行重訪攻擊。但是S /Key系統(tǒng)仍然有嚴(yán)重的缺陷。
首先,S/Key系統(tǒng)不能抵抗小數(shù)攻擊;其次,如果攻擊者通過鍵盤監(jiān)聽等攻擊
手段獲得用戶的秘密通行口令后,仍可以冒充合法用戶成功通過認(rèn)證。
另外,所有基于生物特征的識別技術(shù)是利用提取的生物特征數(shù)據(jù)作為識別
碼,因而在傳送中易被非法截獲。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有的S/Key系統(tǒng)存在小數(shù)攻擊,鍵盤監(jiān)聽的漏洞,以及單因 子生物特征識別技術(shù)存在泄漏生物特征數(shù)據(jù)的缺點,提出一種基于S/Key系統(tǒng) 的身份認(rèn)證方法。
本發(fā)明所提出的方法主要包括以下步驟用戶在首次注冊時由客戶端通過 安全信道向認(rèn)證服務(wù)器提交用戶名IDA、秘密通行口令,以及設(shè)置一次性口令序 列的迭代值N,同時提供注冊用戶的生物特征值T',服務(wù)器生成與該用戶對應(yīng) 的種子值S,并且計算口令序列的第一個口令P^HW(W+S)。用戶在身份認(rèn)證過
程中首先通過客戶端瀏覽器輸入用戶名IDA,向服務(wù)器提交認(rèn)證請求,服務(wù)器收 到認(rèn)證請求后查詢數(shù)據(jù)庫,找出與用戶名IDA對應(yīng)的種子值S和當(dāng)前迭代值N-i, 以及上次認(rèn)證時用于解密生物特征值的一次性口令Pi.p并將這些值作為應(yīng)答信 息發(fā)送給客戶端瀏覽器,客戶端根據(jù)用戶輸入的秘密通行短語W、服務(wù)器發(fā)送
過來的當(dāng)前迭代值N-i和種子值S計算出當(dāng)前一次性口令Pi=HN'i(W+S),并對當(dāng) 前口令Pi再進行一次哈希運算得到PV產(chǎn)H( PO,客戶端將P,,,與上次認(rèn)證時用 于解密生物特征值的一次性口令Pi.i比較,如果結(jié)果一致,則認(rèn)為迭代值無誤, 客戶端通過對服務(wù)器的驗證。同時客戶端采集用戶的生物信息,提取特征值T, 客戶端用本次認(rèn)證的一次性口令Pi作為密鑰對用戶生物特征值T進行加密,發(fā) 送加密后的信息給服務(wù)器,服務(wù)器利用與客戶端相同方法計算出本次認(rèn)證的一 次性口令P'i,用該一次性口令P'i對接收到的加密信息進行解密,解密后的用戶 生物特征值T與保存在服務(wù)器生物特征庫中當(dāng)前用戶的生物特征值T'進行匹 配,匹配成功則服務(wù)器通過對客戶端的驗證,并保存該一次性口令P'i,不匹配 則說明用戶非法,拒絕此次登錄請求。 本發(fā)明的優(yōu)點.-
1、 本發(fā)明的認(rèn)證方法中,客戶端傳遞給服務(wù)器的認(rèn)證信息不是單一的動態(tài) 口令,或用戶生物特征信息,而是每次都在變化的加密后的生物特征值。任何 重放或者竊聽攻擊都是無效的,具有很高的安全性。
2、 本發(fā)明的認(rèn)證方法中,增加了客戶端對服務(wù)器的身份認(rèn)證。每次認(rèn)證過 程中不傳遞本次登錄的一次性口令,因此攻擊者不可能得到客戶端對服務(wù)器進 行認(rèn)證時的一次性口令,也不能得到當(dāng)前的迭代值,有效避免了一次性口令身 份認(rèn)證的小數(shù)攻擊問題。
3、 本發(fā)明的認(rèn)證方法,將一次性口令與生物特征識別技術(shù)進行有效的結(jié)合, 解決了 S/Key系統(tǒng)存在鍵盤監(jiān)聽的漏洞,進一步提高了認(rèn)證系統(tǒng)的安全性。
4、 采用了客戶端與服務(wù)器的兩次認(rèn)證,提高了系統(tǒng)的安全性。
5、 本發(fā)明的認(rèn)證方法有廣泛的應(yīng)用前景,可以應(yīng)用在金融、公安等對自身
業(yè)務(wù)的安全性有較高要求的行業(yè)中。
圖1客戶端認(rèn)證的流程圖
圖2服務(wù)器端認(rèn)證的流程圖
圖3基于S/Key系統(tǒng)的一次性口令與指紋識別的雙向認(rèn)證的流程圖
具體實施例方式
一種基于Siey系統(tǒng)的一次性口令與生物特征識別相結(jié)合的雙向身份認(rèn)證 方法包括以下步驟
(1) 客戶端用戶向服務(wù)器發(fā)出身份認(rèn)證請求; 用戶身份IDv
(2) 服務(wù)器根據(jù)客戶端發(fā)送的用戶名向客戶端發(fā)出應(yīng)答信息
服務(wù)器向客戶端發(fā)出迭代值N、種子值S和上次認(rèn)證時用于解密生物特征 值的一次性口令Pi.n
(3) 客戶端根據(jù)當(dāng)前迭代值N-i、種子值S、秘密通行短語W計算出當(dāng)前
一次性口令。計算如下 Pi=HN"(W+S);
(4) 客戶端保存當(dāng)前口令Pi,并對當(dāng)前口令Pi再進行一次哈希運算,計算
如下
PY產(chǎn)H(Pi);
客戶端將P,w與上次認(rèn)證時用于解密生物特征值的一次性口令Pm比較,如
果結(jié)果一致,則認(rèn)為迭代值無誤,客戶端通過對服務(wù)器的驗證。如果結(jié)果不同,
則認(rèn)為迭代值有誤,系統(tǒng)提示存在小數(shù)攻擊。
客戶端通過生物特征識別儀提取用戶的生物特征值T。用Pi作為加密密鑰
對T進行加密,加密如下 Mi-E(T,Pi);
然后將加密密文Mi作為認(rèn)證口令發(fā)送給服務(wù)器。(5)服務(wù)器根據(jù)該用戶當(dāng)前迭代值N-i、種子值S、秘密通行短語W,用與 客戶端相同哈希函數(shù)計算出動態(tài)口令P'i,計算如下 P,i=HN"(W+S);
以一次性口令P'i作為解密密鑰對接收到的加密信息Mi進行解密,解密如下
T二D(Mi,P,i);
解密后的生物特征值T與當(dāng)前用戶保存在服務(wù)器端的生物特征庫中的模板 特征值T'進行匹配,按照一定的閾值決定這兩個特征值是否相同,如果匹配成 功則服務(wù)器通過對客戶端的驗證,并保存新口令P'i,用戶成功登錄。不匹配則 說明用戶非法。
每次成功登錄后,迭代值遞減,當(dāng)?shù)禍p為O或秘密通行短語W泄密后, 必須重新初始化迭代值和修改秘密通行短語。
下面以公安人口信息管理系統(tǒng)中本發(fā)明的應(yīng)用為例說明本發(fā)明的過程
1)注冊過程
用戶ChenJiang隨機選擇秘密通行口令W-anfang ,設(shè)置一次性口令序列的 最大迭代值N=500,通過指紋識別儀采集用戶ChenJiang右手拇指的指紋特征 值T;,通過安全信道將W、 N、 T,m提交給認(rèn)證服務(wù)器,服務(wù)器生成與該用戶 對應(yīng)的種子值S= rh03hu,并且計算口令序列的第一個口令PG=HN(W+S)
2) 身份認(rèn)證過程
1. 用戶通過客戶端瀏覽器輸入用戶名ChenJiang,向服務(wù)器提交認(rèn)證請求。
2. 服務(wù)器查詢數(shù)據(jù)庫,找出與用戶名ChenJiang對應(yīng)的種子值S-rh03hu,和 當(dāng)前迭代值!^-—10,同時找出上次認(rèn)證時用于解密密鑰的一次性口令?1-1,
Pi.產(chǎn)d565086da5a433e98cefe53d9276b742
并將這些值作為應(yīng)答信息發(fā)送給客戶端瀏覽器。如果數(shù)據(jù)庫中沒有與該用 戶名對應(yīng)的紀(jì)錄則拒絕此次登錄請求。
3) 客戶端收到服務(wù)器發(fā)送的應(yīng)答信息后,提示ChenJiang輸入秘密通行短 語W^anfang,同時通過指紋采集議采集ChenJiang的右手拇指指紋圖像,客戶
端調(diào)用指紋處理模塊對采集的指紋圖像提取特征值T ,并調(diào)用相應(yīng)的運算模塊
做如下運算
計算本次認(rèn)證用作加密密鑰的一次性口令
Pi=HN-i(W+S)= b5b52c8c柳eca7147f95ea6add7dl2f
計算上次認(rèn)證用作解密密鑰的一次性口令
P,i.產(chǎn)H( Pj )= d565086da5a433e98cefe53d9276b742
比較Pw與P'w的值(如果不相同,則認(rèn)為存在攻擊,提示用戶進行相應(yīng)的 處理)。結(jié)果相同,用P,作為秘鑰對采集的指紋特征值進行加密 Mi = E( T, Pj)
將加密信息作為認(rèn)證信息發(fā)送給服務(wù)器。
4.服務(wù)器收到客戶端的認(rèn)證信息后,作如下運算
P,i=HN-i(W+S)=b5b52c8cf69eca7147f95ea6add7dl2f
用P、作為解密秘鑰對加密信息進行解密 T = D(Mi,P,i)
將解密后得到的指紋特征值T與服務(wù)器指紋庫中保存的該用戶的指紋特征
值T,m進行匹配,匹配結(jié)果一致,通過驗證。將數(shù)據(jù)庫中保存的上次成功登錄
口令Pw改為Pi 。至此認(rèn)證過程結(jié)束。
需要說明的本發(fā)明的實際應(yīng)用不局限于以上給出的實施例。例如所使用的 生物特征值也可使用掌紋或者虹膜,也可使用其它的生物特征值。
權(quán)利要求
1、一種基于S/Key系統(tǒng)認(rèn)證方法,用戶在首次注冊時由客戶端通過安全信道向認(rèn)證服務(wù)器提交用戶名IDA、秘密通行口令,以及設(shè)置一次性口令序列的迭代值N,同時提供注冊用戶的生物特征值T’,服務(wù)器生成與該用戶對應(yīng)的種子值S,并且計算口令序列的第一個口令P0=HN(W+S)。用戶在身份認(rèn)證過程中首先通過客戶端瀏覽器輸入用戶名IDA,向服務(wù)器提交認(rèn)證請求,服務(wù)器收到認(rèn)證請求后查詢數(shù)據(jù)庫,找出與用戶名IDA對應(yīng)的種子值S和當(dāng)前迭代值N-i,以及上次認(rèn)證時用于解密生物特征值的一次性口令Pi-1,并將這些值作為應(yīng)答信息發(fā)送給客戶端瀏覽器,客戶端根據(jù)用戶輸入的秘密通行短語W、服務(wù)器發(fā)送過來的當(dāng)前迭代值N-i和種子值S計算出當(dāng)前一次性口令Pi=HN-i(W+S),并對當(dāng)前口令Pi再進行一次哈希運算得到P’i-1=H(Pi),客戶端將P’i-1與上次認(rèn)證時用于解密生物特征值的一次性口令Pi-1比較,如果結(jié)果一致,則認(rèn)為迭代值無誤,客戶端通過對服務(wù)器的驗證。同時客戶端采集用戶的生物信息,提取特征值T,客戶端用本次認(rèn)證的一次性口令Pi作為密鑰對用戶生物特征值T進行加密,發(fā)送加密后的信息給服務(wù)器,服務(wù)器利用與客戶端相同方法計算出本次認(rèn)證的一次性口令P’i,用該一次性口令P’i對接收到的加密信息進行解密,解密后的用戶生物特征值T與保存在服務(wù)器生物特征庫中當(dāng)前用戶的生物特征值T’進行匹配,匹配成功則服務(wù)器通過對客戶端的驗證,并保存該一次性口令P’i,不匹配則拒絕此次登錄請求。
全文摘要
本發(fā)明涉及一種基于S/Key系統(tǒng)的身份認(rèn)證方法。本發(fā)明在用戶首次注冊時通過客戶端向認(rèn)證服務(wù)器提交包括用戶名、密碼口令、迭代值及生物特征值的注冊數(shù)據(jù),由服務(wù)器生成與該用戶對應(yīng)的種子值,計算口令序列的第一個一次性口令。在用戶身份認(rèn)證過程中通過客戶端和服務(wù)器之間的雙向認(rèn)證,而且是對注冊用戶的一次性口令和生物特征值相結(jié)合的雙向認(rèn)證。
文檔編號H04L9/32GK101174953SQ200710089999
公開日2008年5月7日 申請日期2007年3月27日 優(yōu)先權(quán)日2007年3月27日
發(fā)明者徐華龍, 申永軍, 平 陳, 陳文江 申請人:蘭州大學(xué);甘肅中匯電子工程有限公司