劉軍霞,王曉燕,楊先文
(1.河南省軍區自動化站,鄭州450003;2.河南中醫學院,鄭州450008;3.信息工程大學,鄭州450000)
一種基于對稱密碼的USB認證器設計與應用
劉軍霞1,王曉燕2,楊先文3
(1.河南省軍區自動化站,鄭州450003;2.河南中醫學院,鄭州450008;3.信息工程大學,鄭州450000)
為了提高網絡身份認證的安全性,基于一款典型的USB原型設備,設計了一種USB認證器原型系統?;趯ΨQ密碼秘密共享密鑰的原理,設計了一種安全應用協議。以FPGA器件為核心,給出了一種USB認證器的PCB實現方案。結合B/S應用架構,給出了一種應用協議的軟件實現方案。實際應用表明該設計性能穩定,具有推廣前景。
對稱密碼;通用串行總線;協議;原型系統;現場可編程門陣列
隨著網絡應用的日趨普及,用戶身份認證的安全問題越來越重要[1]。傳統的口令登錄模式相對靜止,口令字等信息易遭敵手截獲,從而威脅到用戶利益?;趯ΨQ密碼[2]秘密共享密鑰的原理,通過在服務器端和客戶端之間預設對稱密鑰,設計了一種USB認證器原型系統及應用協議。軟硬件實現和驗證表明,基于USB認證器的登錄模式過程嚴謹,是一種動態認證模式,對應用系統的開發具有參考價值。
2.1 硬件設計
文獻[3]基于FreeARM7開源IP核,對USB設備控制器、單/雙端口RAM、ROM、代碼下載控制邏輯等模塊進行了擴展,實現了一款典型的USB原型設備。通過嵌入式代碼、主機驅動和通信軟件的開發,形成了完整的功能驗證回路,并以DES算法為原理實例,完成了USB通信功能和微處理器運行功能的驗證工作?;谖墨I[3]的硬件實現,將其改進為一種USB認證器結構,如圖1所示。其中,USB設備控制器、單/雙端口RAM模塊、代碼下載控制邏輯的設計同文獻[3],為了實現掉電存儲固件程序,以及設備ID、用戶口令、主密鑰等關鍵數據,以E2PROM作為固件程序和關鍵數據存儲器。
為了降低設計復雜度和提高硬件性能,選用AT28C256作為E2PROM存儲器原型,它是一款由Atmel推出的32KB并行E2PROM存儲器,具備與SRAM一樣簡潔高效的讀寫時序[4]。結合USB認證器應用特點,將AT28C256存儲空間劃分為4個存儲區,分別為代碼區、設備ID區、用戶口令區和主密鑰區,如圖2所示。其中,代碼區大小為16KB,用來存儲USB認證器固件代碼;設備ID區大小為32B,用來存儲USB認證器唯一標識符[5];用戶口令區為32B,用來存儲USB認證器用戶需提供的口令值;主密鑰區為8B,用來存儲64比特DES密碼算法的密鑰。

圖1 USB認證器硬件結構

圖2 AT28C256存儲區劃分
2.2 固件設計
USB認證器的固件主程序采用while無限循環設計,主要負責獲取主機命令雙字節,并對命令進行解析,然后調用軟件模塊實現相應功能,最后返回命令執行狀態或結果。固件命令雙字節定義如表1所示,當命令雙字節位0~位3為0001時,表示用戶輸入口令登錄USB認證器,其口令字節長度由位8~位15指示,口令字節從命令雙字節后下一字節開始,口令比對成功后向主機返回OK;當命令雙字節位0~位3為0010時,表示用戶修改USB認證器登錄口令,其口令字節長度由位8~位15指示,口令字節從命令雙字節后下一字節開始,口令存儲成功后向主機返回OK;當命令雙字節位0~位3為0101時,表示主機需要USB認證器對某明文數據進行DES加密,其加密密鑰類型由位4~位7指示,明文字節長度由位8~位15指示,明文字節從命令雙字節后下一字節開始,加密完成后向主機返回密文值;當命令雙字節位0~位3為0110時,表示主機需要USB認證器對某密文數據進行DES解密,其解密密鑰類型由位4~位7指示,密文字節長度由位8~位15指示,密文字節從命令雙字節后下一字節開始,解密完成后向主機返回明文值;當命令雙字節位0~位3為1001時,表示用戶更新主密鑰(新的主密鑰使用舊的主密鑰進行加密),密態主密鑰字節長度固定為8位,密態主密鑰字節從命令雙字節后下一字節開始,設備接收完密態主密鑰后對其進行解密(使用舊的主密鑰),然后將解密結果存入主密鑰區,操作完成后向主機返回OK。

表1 固件命令雙字節定義
2.3 應用接口設計
根據USB認證器固件程序功能,在應用端設計了如下調用接口。若函數執行正確,則返回成功碼OK,否則返回對應的錯誤碼。


其中,Login()、ChgPwd()、UpdateMKey()分別對應固件程序的口令登錄、口令修改、主密鑰更新操作;當edflag=true時,DESalgo()對應固件程序的DES加密操作,否則對應DES解密操作;當key=NULL時,對應使用初始密鑰或主密鑰進行DES加解密操作,否則對應使用臨時密鑰key進行DES加解密操作。
USB認證器應用主要包括注冊協議和認證協議兩部分。注冊協議負責新USB認證器的主密鑰寫入和向管理系統登記,認證協議負責登錄系統時對USB認證器的合法性進行動態驗證,只有合法注冊過的USB認證器才能通過注冊協議,進而達到對持有認證器的用戶身份進行確認的目的。注冊協議和認證協議的執行主體主要包括:USB認證器(U)、客戶端(C)和服務器(S)。()表示以k為密鑰的DES加密算法()表示對應解密算法,其中k為初始密鑰I,或主密鑰K,或臨時密鑰R。
1)注冊協議
步驟1:C向U詢問設備ID,U向C返回ID;
步驟4:C向S發送成功標識OK,S數據庫記錄(ID,K)。
2)認證協議
步驟1:通過C輸入U的口令pwd;
步驟2:U判斷pwd是否正確,是則向C返回ID,繼續步驟3;否則認證失敗,協議終止;
步驟3:C向S發送ID,S生成隨機數R,根據ID查數據庫得到對應K,計算T=(R),向C返回T;
4.1 USB認證器PCB實現
原型驗證是驗證硬件設計功能性的主要手段,也是物理驗證的重要環節。為了便于USB認證器的軟硬件集成驗證,以FPGA器件為核心,以USB接口為通信接口,設計了一個USB認證器原型系統。原型系統的PCB原理如圖3(上)所示,關鍵器件包括:FPGA芯片、USB收發器芯片、復位芯片、電壓轉換芯片、晶振芯片、存儲芯片、配置芯片等。依據上述原理,采用Altium Designer Winter 09[6]完成了原型系統的PCB版圖實現,在圖3(下)所示實物中,FPGA器件可容納81,264個邏輯單元的目標設計,且具有2,745Kbit存儲器資源;E2PROM芯片容量為32KB。

圖3 USB認證器PCB原理與實現
4.2 應用協議軟件實現
應用協議的實現包括客戶端和服務器端兩部分,其框架如圖4所示。

圖4 應用協議軟件實現框架
客戶端軟件主要負責服務器和USB認證器的信息交換,當接收到服務器傳來的數據時,調用應用接口傳給USB認證器進行處理;當接收到USB認證器傳來的數據時,通過網絡技術(如AJAX)傳給服務器進行處理。為了支持B/S架構下應用集成開發,客戶端軟件主體采用ActiveX控件模式開發[7]。控件安裝成功后,在瀏覽器HTML中通過<object>標簽指定classid="clsid:xx…x"訪問。為了完成ActiveX控件與服務器響應程序之間交互,以Javascript程序為中間件,采用AJAX技術實現客戶端與服務器端交互。
服務器端軟件主要負責協議的數據操作部分,根據客戶端傳來的參數,執行相應的協議操作,主要包括隨機數生成、DES加解密、數據庫讀寫。為了方便客戶端程序的訪問,服務器端軟件采用動態網頁模式開發,類似于USB認證器固件程序結構,動態網頁程序主要負責獲取客戶端命令及數據參數,并對命令進行解析,然后調用軟件模塊實現相應的功能,最后返回命令執行狀態或結果。
4.3 軟硬件集成驗證
基于上述實現,在某單位辦公網文檔流轉管控系統中,采用了傳統口令登錄和USB認證器登錄兩種用戶可選的身份認證模式。其中,在USB認證器模式中,認證器作為用戶唯一身份標識的物理載體,克服了傳統口令登錄模式的安全缺陷,在系統集成驗證階段起到了較好的效果。作為下一步工作,將結合課題組前期研制的一款安全型USB設備IP核[8],設計一種針對USB認證器軟硬件的量產方案和工具,以期盡早發揮實際作用和效益。
在網絡系統中,動態身份認證是解決用戶登錄安全性的有效途徑。提出的USB認證器設計和應用方案,避免了用戶登錄時在網絡上傳輸敏感信息,是一種理論可靠和現實可行的解決方案,對其他類似系統的開發具有借鑒意義。
[1] 鄭強,高能,張令臣.基于SM3算法的動態口令卡的設計與實現[J].計算機應用與軟件,2013,30(2):14-17.
[2] Menezes A J,Oorschot PC,Vanstone SA.應用密碼學手冊[M].胡磊,王鵬,等譯.北京:電子工業出版社,2005.
[3] 李崢,楊先文.FreeARM7 IP核的微處理器邏輯擴展與驗證[J].單片機與嵌入式系統應用,2011(2):18-21.
[4] Atmel.AT28C256 datasheet[EB/OL].(2009-12)[2014-7-23].http://www.atmel.com/zh/cn/devices/AT28C 256.aspx.
[5] 廖洪其,凌捷,郝彥軍,等.USB移動存儲設備的惟一性識別方法研究[J].計算機工程與設計,2010,31(12):2778-2780,2784.
[6] 韓國棟,趙月飛,婁建安,等.Altium Designer Winter 09電路設計入門與提高[M].北京:化學工業出版社,2010.
[7] 高穎,葛飛,劉寧,等.基于COM技術的虛擬儀表ActiveX控件開發[J].微處理機,2013,34(6):42-45.
[8] 楊先文,李崢,王安,等.密碼安全USB設備控制器IP的系統設計[J].華中科技大學學報(自然科學版),2010,38(9):59-62.
Design and Application of A USB Authentication Device Based on Symmetric Cryptography
Liu Junxia1,Wang Xiaoyan2,Yang Xianwen3
(1.Automatic Command Station,Henan Provincial Military Command,Zhengzhou 450003,China;2.Henan University of Traditional Chinese Medicine,Zhengzhou 450008,China;3.Information Engineering University,Zhengzhou 450000,China)
To improve the security of online identity authentication,based on a typical USB prototype device,a USB authentication device is designed.Based on the principle of secret sharing key in symmetric cryptography,a security protocol is proposed.By using many chips such as FPGA,a PCB implementation of USB authentication device is given.Combining with the B/S architecture,a software implementation of security protocol is presented.The practices show that the design has a stable performance and is good for application.
Symmetric cryptography;USB;Protocol;Prototype system;FPGA
10.3969/j.issn.1002-2279.2015.01.019
TP918
A
1002-2279(2015)01-0068-04
劉軍霞(1973-),女,河南滑縣人,高級工程師,主研方向:計算機網絡與信息安全。
2014-07-07