“挑戰應答方式”:challenge-response,是零知識證明的方式。
基本介紹
- 中文名:挑戰應答方式
- 外文名:challenge-response
- 性質:應答方式
- 屬性:挑戰
認證過程,密鑰的分配和管理,
認證過程
顧名思義,基於挑戰/應答(Challenge/Response)方式的身份認證系統就是每次認證時認證伺服器端都給客戶端傳送一個不同的"挑戰"字串,客戶端程式收到這個"挑戰"字串後,做出相應的"應答",以此機制而研製的系統.認證過程為:
1) 客戶向認證伺服器發出請求,要求進行身份認證;
2) 認證伺服器從用戶資料庫中查詢用戶是否是合法的用戶,若不是,則不做進一步處理;
3) 認證伺服器內部產生一個隨機數,作為"提問",傳送給客戶;
4) 客戶將用戶名字和隨機數合併,使用單向Hash函式(例如MD5算法)生成一個位元組串作為應答;
5) 認證伺服器將應答串與自己的計算結果比較,若二者相同,則通過一次認證;否則,認證失敗;
6) 認證伺服器通知客戶認證成功或失敗。
以後的認證由客戶不定時地發起,過程中沒有了客戶認證請求一步。兩次認證的時間間的密鑰隔不能太短,否則就給網路、客戶和認證伺服器帶來太大的開銷;也不能太長,否則不能保證用戶不被他人盜用IP位址,一般定為1-2分鐘。
密鑰的分配和管理
密鑰的分配由維護模組負責,當用戶進行註冊時,自行設定自己的口令字。用戶由口令字生成。
一個口令字必須經過兩次口令字檢查。第一次由註冊程式檢查,強制口令字必須有足夠的長度(如8個字元)。口令字被加密後送入資料庫中,這個口令字標記為'未檢查的'。第二次,由離線的口令字檢查工具進行檢查,將弱口令字進行標記,當下一次用戶認證時,認證伺服器將強制用戶修改口令字。
密鑰的線上修改由認證伺服器完成,它的過程與認證過程基本類似。