專利名稱:一種基于動態密碼生成和驗證的門禁系統及認證方法
技術領域:
本發明涉及到身份認證技術,特別涉及門禁系統中用戶身份的認證方法。
背景技術:
門禁系統作為一種控制和管理人員出入的系統,首先必須要對出入人員的身份進行認證, 以決定其是否有權限通過。隨著社會電子化智能程度的深入,現在我們看到的門禁系統根據 輸入設備、介質和方法的不同可以分為密碼門禁系統、刷卡門禁系統和生物識別門禁系統。
密碼門禁系統的使用是通過輸入密碼,系統判斷密碼正確就驅動電鎖,打開門放行。其 優點是只需記住密碼,無需攜帶其他介質而且成本最低。但是由于速度慢,輸入密碼一般需 要好幾秒中,如果輸入錯誤,還需重新輸入,耗時更長而且安全性差,旁邊的人容易通過手 勢記住別人的密碼,密碼容易忘記或者泄露。
生物識別門禁系統是根據人體生物特征的不同而識別身份的門禁系統。主要是通過指紋、 虹膜或人像等生物特征來識別身份的認證技術。生物識別門禁系統的優點是無需攜帶卡片等 介質,重復的幾率少,不容易被復制,安全性高。但是缺點由于其成本較高而且人體的生物 特征會隨著環境和時間的變化而變化,因此容易產生拒識率。所以,生物識別門禁系統雖然 先進和安全,但是應用的范圍有限,只在人數不多,安全性要求高,不擔心成本高等少數領 域進行應用,不是當前門禁系統的主流。
卡類門禁系統使用接觸卡和非接觸卡對用戶身份進行識別,由于其耐用性,性價比好, 讀取速度快,安全性高等優勢是當前門禁系統的主流。但是目前的接觸卡和非接觸卡的密碼 均為靜態密碼,在合法用戶的卡丟失或者杯盜取后,卡的靜態密碼和其他重要信息很容易被 非法者復制,造成嚴重的損失和后果。
發明內容
針對以上現有技術中的不足,本發明提供了一種基于動態密碼生成和驗證的門禁系統。 一種基于動態密碼生成和驗證的門禁系統,其特征在于包括生成動態密碼的用戶端和驗 證動態密碼的認證端;所述用戶端包括
存儲模塊,用于存儲算法、密鑰和動態因子;
動態密碼生成模塊,用于使用所述存儲模塊存儲的算法、密鑰和動態因子計算出動態密
碼;
通信模塊,用于與認證端進行通信,將所述動態密碼生成模塊生成的動態密碼發送給認 證端;
更新模塊,用于對所述存儲模塊存儲的動態因子進行更新; 所述認證端包括
讀取模塊,用于讀取用戶端生成的動態密碼; 鎖具模塊,用于開啟或關閉門鎖; 認證服務器模塊,用于對客戶端進行認證;
其中,所述認證服務器模塊包括存儲單元、驗證密碼生成單元、獲取單元、對比單元, 通信單元、用戶信息庫單元和發送單元;
存儲單元,用于存儲算法、密鑰和動態因子;
驗證密碼生成單元,用于使用所述存儲單元存儲的算法、密鑰和動態因子計算出驗證密
碼;
獲取單元,用于獲取驗證密碼生成單元計算出的驗證密碼; 對比單元,用于對比獲取的動態密碼和生成的驗證密碼; 通信單元,用于認證端和用戶端的通信; 用戶信息庫單元,用于存儲多個用戶端信息; 發送單元,用于向鎖具模塊發送門鎖開啟命令。 所述用戶信息包括用戶端的ID號及動態因子。 所述動態因子為時間同步因子或事件同步因子。 所述動態因于史新具體為所述動態因子增加或者減少指定的值。
用戶端存儲的算法、密鑰和動態因子和認證端存儲的算法,密鑰和動態因子由生產商預 定且相同。
所述算法為HOPT、 DES、 RSA、 SHA算法或由生產商預先設定。
所述通信模塊為USB接口、紅外接口、藍牙接口、并口、串口、射頻接口和eSATA接口 中的至少一個。
所述讀取模塊具體為讀卡器。
6所述用戶端包括接觸式IC卡或非接觸式IC卡。
一種基于動態密碼生成和驗證的門禁系統的身份認證的方法,其特征在于包括以下步驟: 步驟l:認證端向用戶端發送讀取命令;
步驟2:用戶端根據存儲的算法、密鑰及動態因子生成動態密碼,并且更新動態因子; 步驟3:認證端讀取用戶端生成的動態密碼;
步驟4:認證端將獲取的動態密碼和根據存儲的與用戶端相同的算法、密鑰及動態因子 計算出的驗證密碼相對比,如果相同,則執行步驟5,如果不相同,則執行步驟6; 步驟5:用戶端認證成功,并且更新動態因子; 步驟6:認證端作異常處理。
所述步驟1中認證端向用戶端發送的讀取命令為固定指令或帶有密鑰索引的指令。 所述步驟4中認證端根據存儲的算法及密鑰及動態因子計算出的驗證密碼可以是可以是
一個驗證密碼或一組驗證密碼序列。
所述步驟5還包括用戶端更新動態因子,并且生成與驗證密碼相關的日志,并將日志進
行存儲。
所述動態因子為時間同步因子或事件同步因子。
所述算法為HOPT、 DES、 RSA、 SHA算法或由生產商預先設定。 所述更新動態因子具體為所述動態因子增加或者減少指定的值。
本發明的有益效果是在認證端和客戶端預設了相同的算法和實現同步的動態因子,在動 態因子變化的同時又保證雙方密碼生成的同步。即使是作為用戶端的用戶卡的相關信息被復 制,但是由于認證端的驗證密碼在不斷變化,既便是用戶卡的信息被盜取也無法通過認證端 驗證密碼的認證。
圖1是本發明實施例的門禁系統的結構圖。
圖2是本發明實施例提供的門禁系統工作原理流程圖。
具體實施例方式
如圖1所示,本發明實施例,包括一個系統主機1、 一個讀卡器2和一個電鎖3以及多 張用戶卡。系統主機1包括存儲單元11、驗證密碼生成單元12、獲取單元13、對比單元14、通 信單元15、用戶信息庫單元16、發送單元17。系統主機1中的存儲單元ll中存儲有生成 驗證密密碼所需的預設的算法和密鑰,所述預設的算法可以是HOPT、 DES、 RSA、 SHA算法或 由生產商預先設定。系統主機l中的驗證密碼生成單元12用于根據獲取的用戶卡的ID及用 戶信息庫單元16中存儲的該卡的動態因子使用存儲單元11中存儲的預設的算法、密鑰生成 驗證密碼。系統主機l中的獲取單元13用于通過讀卡器獲取用戶的ID及用戶卡生成的動態 密碼。系統主機l中的對比單元14用于將系統主機1獲取的用戶卡的動態密碼和系統主機 1生成的驗證密碼進行對比,看是否一致。通信單元15用于系統主機1和讀卡器以及電鎖之 間的通信。系統主機l中的用戶信息庫單元16用于存儲有多個用戶卡的ID信息以及每張用 戶卡相應的動態因子。系統主機l的發送單元17用于向電鎖3發送門鎖開啟或關閉的命令。 讀卡器2用于讀取用戶卡的相關信息,包括每張用戶卡的ID及用戶卡生成的動態密碼。 電鎖3用于在接收到系統主機1發送的開啟或關閉命令后開啟或關閉門鎖。 門禁系統中的用戶卡的數量可以根據用戶的數量來設定。用戶卡4包括存儲模塊41、動 態密碼生成模塊42、發送模塊43、通信模塊44。用戶卡4的存儲模塊41中都存儲有生成動 態密碼所需的預設的算法、密鑰及動態因子。而存儲的預設的算法A與系統主機l中的存儲 單元11存儲的預設算法相同,可以是H0PT、 DES、 RSA、 SHA算法或由生產商預先設定。用 戶卡的存儲模塊41中存儲的密鑰與系統主機l存儲單元ll中存儲的密鑰相同。系統主機1 的用戶信息庫單元16中存儲的每張用戶卡相應的動態因子和每張用戶卡的動態同步因子均 為事件同步因子且初始值相同,其變化規則是事件同步因子的初始值加上事件計數增加值。 用戶卡中存儲的動態因子也可以是時間同步因子,相應的,系統主機l的用戶信息庫單元16 中存儲的每張用戶卡相應的動態因子也要是時間同步因子。用戶卡的動態密碼生成模塊42 用于獲取到讀卡器發送的讀取命令后,根據存儲模塊41中存儲的自己唯一的ID以及生成動 態密碼所需的預設的算法,密鑰及動態因子生成動態密碼。用戶卡的發送模塊43用于將生成 的動態密碼發送給讀卡器。通信模塊44用于用戶卡和讀卡器之間的通信。 如圖2所示,本系統的工作原理如下
步驟201:系統主機通過讀卡器向用戶卡發送一個讀取命令;
步驟202:用戶卡根據存儲有生成動態密碼所需的預設的算法,密鑰及動態因子對用戶 的工D進行加密生成動態密碼,并且對動態因子進行相應的更新;
步驟203:讀卡器讀取用戶卡的ID和生成的動態密碼后,將讀取的用戶卡ID和動態密 碼發送給系統主機;步驟204:所述系統主機根據用戶卡ID從用戶信息庫中獲取相應的用戶卡的動態因子, 并使用預設的與用戶卡相同的算法、密鑰和動態因子對用戶卡ID加密生成驗證密碼;
步驟205:所述系統主機將獲取的動態密碼和驗證密碼進行對比,如果對比結果一致, 則執行歩驟206,如果對比結果不一致,則執行步驟207;
步驟206:則系統主機對電鎖發送一個開啟命令,開啟電鎖,同時對用戶信息庫中該用 戶ID相應的動態因子進行更新。
步驟207:則系統主機對用戶卡作異常處理。
具體的,在本實施例中,系統主機中存儲的算法預設為DES算法,密鑰為1918,系統主 機的用戶信息庫中存儲有一個合法用戶卡的預設信息,該用戶卡的ID為60543726,其相應 的動態因子初始值為5634,事件計數的增加值為3,相應的ID為60543726的用戶卡上存儲 的預設算法也為DES算法,密鑰也為1918,而且動態因子初始值和事件計數的增加值與系統 主機的用戶信息庫中存儲的有關該卡的信息相同,即預設動態因子的初始值也為5634,事件 計數的增加值為3。
在用戶卡接受系統主機的第一次認證時,系統主機通過讀卡器向用戶卡發送一個讀取命 令后,用戶卡使用DES算法和密鑰1918根據用戶卡預設的動態因子初始值5634對用戶卡的 ID60543726進行加密,生成密碼E5E727D02D67CE81,并且將動態因子更新為5637,系統主 機的讀卡器讀取用戶卡的ID以及生成的此密碼后將此密碼發送給系統主機,系統主機根據用 戶卡的ID60543726從系統主機的用戶信息庫中調用存儲的該用戶卡的動態因子初始值5634, 使用DES算法和密鑰1918對該用戶卡ID 60543726也進行加密,從而生成驗證密碼 E5E727D02D67CE81,然后將生成的驗證密碼和獲取的用戶卡生成的密碼進行比對,結果一致, 系統主機從而將用戶信息庫中ID為60543726的用戶卡的信息中的動態因子更新為5637,同 時系統主機對電鎖發送一個開啟命令,開啟電鎖。
在用戶卡接受系統主機的第二次認證時,系統主機通過讀卡器向用戶卡發送一個讀取命 令后,用戶卡使用DES算法和密鑰1918根據用戶卡預設的動態因子更新值5637對用戶卡的 ID60543726進行加密,生成密碼5042088437CB47FF,并將動態因子的值更新為5640。
系統主機通過讀卡器獲取用戶卡的ID60543726及用戶卡生成的密碼5042088437CB47FF 后,系統主機根據用戶卡的ID60543726從系統主機的用戶信息庫中調用存儲的該用戶卡的動 態因子更新值5637,使用DES算法和密鑰1918對該用戶卡的ID60543726也進行加密,從而 生成驗證密碼5042088437CB47FF,然后將生成的驗證密碼和獲取的用戶卡生成的密碼進行比 對,結果為一致,系統主機從而將用戶信息庫中ID為60543726的用戶卡的信息中的動態因子更新為5640,同時系統主機對電鎖發送一個開啟命令,開啟電鎖。
從以上過程可以看出,通過事件計數同步使得用戶卡的動態因子與系統主機的用戶信息 庫中存儲的有關此用戶卡的信息中的動態因子在實現動態變化的同時而又保持著同步。
但是,由于用戶卡只要生成了動態密碼就會相應的對存儲在用戶卡上的動態因子更新, 而系統主機只有在將驗證密碼和獲取的用戶卡生成的動態密碼比對后,結果為一致的情況下 才對系統主機上用戶信息庫中有關該用戶卡信息中的動態因子進行更新。所以由于偶然事件 比如說用戶卡的持有者對用戶卡進行了誤操作,導致用戶卡上存儲的動態因子得以更新,而 系統主機的用戶信息庫中該用戶卡的相關信息中的動態因子由于系統主機沒有獲取到合法匹 配的動態密碼而沒有獲得更新,這樣會導致動態因子的不同步。所以門禁系統的系統主機需 要一個在合理的范圍內尋找匹配的用戶卡。系統主機根據預定的用戶卡的動態因子的事件計 數增減范圍而計算出一組最有可能的驗證密碼組成的序列,從而給出了動態密碼的一個安全 的容錯范圍。此時,在步驟204中系統主機生成的驗證碼為一組最有可能的驗證碼組成的序 列。
具體的,在本實施例中系統主機中預定的用戶卡的動態因子的事件計數增減范圍為當前 事件計數次數的向后5次。假設在本次認證之前所述受保護的軟件對信息安全設備已經進行 了 10次有效認證,在本次認證系統主機的密鑰保持不變仍為1918,當前的系統主機的用戶 信息庫中該用戶卡的相關信息中的動態因子經過10次有效認證已經更新為5661,根據預設 的第一動態因子的事件計數增減范圍為當前事件計數次數的向后5次,在本次認證時所述受 保護的軟件根據當前動態因子5661以及相應的向后5次計數后的動態因子5664、5667、5670、 5673和5676對用戶卡ID60543726進行DES算法加密生成的可能的驗密碼組為6個驗證密碼 D34743A1DB4A847F 、 1DD927D7C2EDF338 、 2453994216EA21B4 、 D34743A1DB4A847F 、 CFC12A412243068A和2453994216EA21B4。所述系統主機將獲取的用戶卡的動態密碼與驗證密 碼組中的驗證密碼逐一進行對比。如果用戶卡生成的動態密碼與驗證密碼組中的某一驗證密 碼相同,則系統主機根據此匹配的驗證密碼更新系統主機用戶信息庫中的該用戶卡相關信息 的動態因子,用于下次認證的根據,同時系統主機對電鎖發送一個開啟命令,開啟電鎖。如 果驗證密碼組中沒有獲取的用戶卡的動態密碼相同的驗證密碼,則系統主機對用戶卡作異常 處理。
以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之 內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
10
權利要求
1.一種基于動態密碼生成和驗證的門禁系統,其特征在于包括生成動態密碼的用戶端和驗證動態密碼的認證端;所述用戶端包括存儲模塊,用于存儲算法、密鑰和動態因子;動態密碼生成模塊,用于使用所述存儲模塊存儲的算法、密鑰和動態因子計算出動態密碼;通信模塊,用于與認證端進行通信,將所述動態密碼生成模塊生成的動態密碼發送給認證端;更新模塊,用于對所述存儲模塊存儲的動態因子進行更新;所述認證端包括讀取模塊,用于讀取用戶端生成的動態密碼;鎖具模塊,用于開啟或關閉門鎖;認證服務器模塊,用于對客戶端進行認證;其中,所述認證服務器模塊包括存儲單元、驗證密碼生成單元、獲取單元、對比單元、通信單元、用戶信息庫單元和發送單元;存儲單元,用于存儲算法、密鑰和動態因子;驗證密碼生成單元,用于使用所述存儲單元存儲的算法、密鑰和動態因子計算出驗證密碼;獲取單元,用于獲取驗證密碼生成單元計算出的驗證密碼;對比單元,用于對比獲取的動態密碼和生成的驗證密碼;通信單元,用于認證端和用戶端的通信;用戶信息庫單元,用于存儲多個用戶端信息;發送單元,用于向鎖具模塊發送門鎖開啟命令。
2. 根據權利要求1所述的基于動態密碼生成和驗證的門禁系統,其特征在于,所述用戶 信息包括用戶端的ID號及動態因子。
3. 根據權利要求1所述的基于動態密碼生成和驗證的門禁系統,其特征在于,所述動態 因子為時間同步因子或事件同步因子。
4. 根據權利要求1所述的基于動態密碼生成和驗證的門禁系統,其特征在于,所述動態因子更新具體為所述動態因子增加或者減少指定的值。
5. 根據權利要求1所述的基于動態密碼生成和驗證的門禁系統,其特征在于,用戶端存 儲的算法、密鑰和動態因子和認證端存儲的算法、密鑰和動態因子由生產商預定且相同。
6. 根據權利要求1所述的基于動態密碼生成和驗證的門禁系統,其特征在于,所述算法 為H0PT、 DES、 RSA、 SHA算法或由生產商預先設定。
7. 根據權利要求1所述的基于動態密碼生成和驗證的門禁系統,其特征在于,所述通信 模塊為USB接口、紅外接口、藍牙接口、并口、串口、射頻接口和eSATA接口中的至少一個。
8. 根據權利要求1所述的基于動態密碼生成和驗證的門禁系統,其特征在于,所述讀取 模塊具體為讀卡器。
9. 根據權利要求1所述的基于動態密碼生成和驗證的門禁系統,其特征在于,所述用戶 端包括接觸式IC卡或非接觸式IC卡。
10. —種基于動態密碼生成和驗證的門禁系統的身份認證的方法,其特征在于包括以下步驟步驟l:認證端向用戶端發送讀取命令;歩驟2:用戶端根據存儲的算法、密鑰及動態因子生成動態密碼,并且更新動態因子; 步驟3:認證端讀取用戶端生成的動態密碼;步驟4:認證端將獲取的動態密碼和根據存儲的與用戶端相同的算法、密鑰及動態因子 計算出的驗證密碼相對比,如果相同,則執行步驟5,如果不相同,則執行步驟6; 歩驟5:用戶端認證成功,并且更新動態因子; 歩驟6:認證端作異常處理。
11. 根據權利要求io所述的一種基于動態密碼生成和驗證的門禁系統的身份認證的方 法,其特征在于,所述步驟l中認證端向用戶端發送的讀取命令為固定指令或帶有密鑰索引 的指令。
12. 根據權利要求10所述的一種基于動態密碼生成和驗證的門禁系統的身份認證的方 法,其特征在于,所述步驟4中認證端根據存儲的算法及密鑰及動態因子計算出的驗證密碼 可以是可以是一個驗證密碼或一組驗證密碼序列。
13. 根據權利要求10所述的一種基于動態密碼生成和驗證的門禁系統的身份認證的方 法,其特征在于,所述步驟5還包括用戶端更新動態因子,并且生成與驗證密碼相關的曰志,并將日志進行存儲。
14. 根據權利要求10所述的一種基于動態密碼生成和驗證的門禁系統的身份認證的方法,其特征在于,所述動態因子為時間同步因子或事件同步因子。
15. 根據權利要求10所述的一種基于動態密碼生成和驗證的門禁系統的身份認證的方 法,其特征在于,所述算法為HOPT、 DES、 RSA、 SHA算法或由生產商預先設定。
16. 根據權利要求10所述的一種基于動態密碼生成和驗證的門禁系統的身份認證的方 法,其特征在于,所述更新動態因子具體為所述動態因子增加或者減少指定的值。
全文摘要
本發明公開了一種基于動態密碼生成和驗證的門禁系統及身份驗證的方法,屬于安全認證領域。所述系統包括生成動態密碼的用戶端和驗證動態密碼的認證端,所述用戶端包括存儲模塊,用于存儲算法、密鑰和動態因子;所述認證端包括讀取模塊、鎖具模塊和認證服務器模塊。所述方法的具體步驟為用戶端在收到驗證端發送的命令后生成動態密碼,驗證端根據存儲的與用戶端相同的算法和密鑰及相應的動態因子生成驗證密碼,并將動態密碼和驗證密碼進行比對以驗證用戶端動態密碼的合法有效性。
文檔編號H04L9/32GK101593380SQ20081011314
公開日2009年12月2日 申請日期2008年5月28日 優先權日2008年5月28日
發明者于華章, 舟 陸 申請人:北京飛天誠信科技有限公司