劉軍霞,王曉燕,楊先文
(1.河南省軍區(qū)自動化站,鄭州450003;2.河南中醫(yī)學院,鄭州450008;3.信息工程大學,鄭州450000)
一種基于對稱密碼的USB認證器設(shè)計與應(yīng)用
劉軍霞1,王曉燕2,楊先文3
(1.河南省軍區(qū)自動化站,鄭州450003;2.河南中醫(yī)學院,鄭州450008;3.信息工程大學,鄭州450000)
為了提高網(wǎng)絡(luò)身份認證的安全性,基于一款典型的USB原型設(shè)備,設(shè)計了一種USB認證器原型系統(tǒng)?;趯ΨQ密碼秘密共享密鑰的原理,設(shè)計了一種安全應(yīng)用協(xié)議。以FPGA器件為核心,給出了一種USB認證器的PCB實現(xiàn)方案。結(jié)合B/S應(yīng)用架構(gòu),給出了一種應(yīng)用協(xié)議的軟件實現(xiàn)方案。實際應(yīng)用表明該設(shè)計性能穩(wěn)定,具有推廣前景。
對稱密碼;通用串行總線;協(xié)議;原型系統(tǒng);現(xiàn)場可編程門陣列
隨著網(wǎng)絡(luò)應(yīng)用的日趨普及,用戶身份認證的安全問題越來越重要[1]。傳統(tǒng)的口令登錄模式相對靜止,口令字等信息易遭敵手截獲,從而威脅到用戶利益。基于對稱密碼[2]秘密共享密鑰的原理,通過在服務(wù)器端和客戶端之間預(yù)設(shè)對稱密鑰,設(shè)計了一種USB認證器原型系統(tǒng)及應(yīng)用協(xié)議。軟硬件實現(xiàn)和驗證表明,基于USB認證器的登錄模式過程嚴謹,是一種動態(tài)認證模式,對應(yīng)用系統(tǒng)的開發(fā)具有參考價值。
2.1 硬件設(shè)計
文獻[3]基于FreeARM7開源IP核,對USB設(shè)備控制器、單/雙端口RAM、ROM、代碼下載控制邏輯等模塊進行了擴展,實現(xiàn)了一款典型的USB原型設(shè)備。通過嵌入式代碼、主機驅(qū)動和通信軟件的開發(fā),形成了完整的功能驗證回路,并以DES算法為原理實例,完成了USB通信功能和微處理器運行功能的驗證工作。基于文獻[3]的硬件實現(xiàn),將其改進為一種USB認證器結(jié)構(gòu),如圖1所示。其中,USB設(shè)備控制器、單/雙端口RAM模塊、代碼下載控制邏輯的設(shè)計同文獻[3],為了實現(xiàn)掉電存儲固件程序,以及設(shè)備ID、用戶口令、主密鑰等關(guān)鍵數(shù)據(jù),以E2PROM作為固件程序和關(guān)鍵數(shù)據(jù)存儲器。
為了降低設(shè)計復(fù)雜度和提高硬件性能,選用AT28C256作為E2PROM存儲器原型,它是一款由Atmel推出的32KB并行E2PROM存儲器,具備與SRAM一樣簡潔高效的讀寫時序[4]。結(jié)合USB認證器應(yīng)用特點,將AT28C256存儲空間劃分為4個存儲區(qū),分別為代碼區(qū)、設(shè)備ID區(qū)、用戶口令區(qū)和主密鑰區(qū),如圖2所示。其中,代碼區(qū)大小為16KB,用來存儲USB認證器固件代碼;設(shè)備ID區(qū)大小為32B,用來存儲USB認證器唯一標識符[5];用戶口令區(qū)為32B,用來存儲USB認證器用戶需提供的口令值;主密鑰區(qū)為8B,用來存儲64比特DES密碼算法的密鑰。
圖1 USB認證器硬件結(jié)構(gòu)
圖2 AT28C256存儲區(qū)劃分
2.2 固件設(shè)計
USB認證器的固件主程序采用while無限循環(huán)設(shè)計,主要負責獲取主機命令雙字節(jié),并對命令進行解析,然后調(diào)用軟件模塊實現(xiàn)相應(yīng)功能,最后返回命令執(zhí)行狀態(tài)或結(jié)果。固件命令雙字節(jié)定義如表1所示,當命令雙字節(jié)位0~位3為0001時,表示用戶輸入口令登錄USB認證器,其口令字節(jié)長度由位8~位15指示,口令字節(jié)從命令雙字節(jié)后下一字節(jié)開始,口令比對成功后向主機返回OK;當命令雙字節(jié)位0~位3為0010時,表示用戶修改USB認證器登錄口令,其口令字節(jié)長度由位8~位15指示,口令字節(jié)從命令雙字節(jié)后下一字節(jié)開始,口令存儲成功后向主機返回OK;當命令雙字節(jié)位0~位3為0101時,表示主機需要USB認證器對某明文數(shù)據(jù)進行DES加密,其加密密鑰類型由位4~位7指示,明文字節(jié)長度由位8~位15指示,明文字節(jié)從命令雙字節(jié)后下一字節(jié)開始,加密完成后向主機返回密文值;當命令雙字節(jié)位0~位3為0110時,表示主機需要USB認證器對某密文數(shù)據(jù)進行DES解密,其解密密鑰類型由位4~位7指示,密文字節(jié)長度由位8~位15指示,密文字節(jié)從命令雙字節(jié)后下一字節(jié)開始,解密完成后向主機返回明文值;當命令雙字節(jié)位0~位3為1001時,表示用戶更新主密鑰(新的主密鑰使用舊的主密鑰進行加密),密態(tài)主密鑰字節(jié)長度固定為8位,密態(tài)主密鑰字節(jié)從命令雙字節(jié)后下一字節(jié)開始,設(shè)備接收完密態(tài)主密鑰后對其進行解密(使用舊的主密鑰),然后將解密結(jié)果存入主密鑰區(qū),操作完成后向主機返回OK。
表1 固件命令雙字節(jié)定義
2.3 應(yīng)用接口設(shè)計
根據(jù)USB認證器固件程序功能,在應(yīng)用端設(shè)計了如下調(diào)用接口。若函數(shù)執(zhí)行正確,則返回成功碼OK,否則返回對應(yīng)的錯誤碼。
其中,Login()、ChgPwd()、UpdateMKey()分別對應(yīng)固件程序的口令登錄、口令修改、主密鑰更新操作;當edflag=true時,DESalgo()對應(yīng)固件程序的DES加密操作,否則對應(yīng)DES解密操作;當key=NULL時,對應(yīng)使用初始密鑰或主密鑰進行DES加解密操作,否則對應(yīng)使用臨時密鑰key進行DES加解密操作。
USB認證器應(yīng)用主要包括注冊協(xié)議和認證協(xié)議兩部分。注冊協(xié)議負責新USB認證器的主密鑰寫入和向管理系統(tǒng)登記,認證協(xié)議負責登錄系統(tǒng)時對USB認證器的合法性進行動態(tài)驗證,只有合法注冊過的USB認證器才能通過注冊協(xié)議,進而達到對持有認證器的用戶身份進行確認的目的。注冊協(xié)議和認證協(xié)議的執(zhí)行主體主要包括:USB認證器(U)、客戶端(C)和服務(wù)器(S)。()表示以k為密鑰的DES加密算法()表示對應(yīng)解密算法,其中k為初始密鑰I,或主密鑰K,或臨時密鑰R。
1)注冊協(xié)議
步驟1:C向U詢問設(shè)備ID,U向C返回ID;
步驟4:C向S發(fā)送成功標識OK,S數(shù)據(jù)庫記錄(ID,K)。
2)認證協(xié)議
步驟1:通過C輸入U的口令pwd;
步驟2:U判斷pwd是否正確,是則向C返回ID,繼續(xù)步驟3;否則認證失敗,協(xié)議終止;
步驟3:C向S發(fā)送ID,S生成隨機數(shù)R,根據(jù)ID查數(shù)據(jù)庫得到對應(yīng)K,計算T=(R),向C返回T;
4.1 USB認證器PCB實現(xiàn)
原型驗證是驗證硬件設(shè)計功能性的主要手段,也是物理驗證的重要環(huán)節(jié)。為了便于USB認證器的軟硬件集成驗證,以FPGA器件為核心,以USB接口為通信接口,設(shè)計了一個USB認證器原型系統(tǒng)。原型系統(tǒng)的PCB原理如圖3(上)所示,關(guān)鍵器件包括:FPGA芯片、USB收發(fā)器芯片、復(fù)位芯片、電壓轉(zhuǎn)換芯片、晶振芯片、存儲芯片、配置芯片等。依據(jù)上述原理,采用Altium Designer Winter 09[6]完成了原型系統(tǒng)的PCB版圖實現(xiàn),在圖3(下)所示實物中,F(xiàn)PGA器件可容納81,264個邏輯單元的目標設(shè)計,且具有2,745Kbit存儲器資源;E2PROM芯片容量為32KB。
圖3 USB認證器PCB原理與實現(xiàn)
4.2 應(yīng)用協(xié)議軟件實現(xiàn)
應(yīng)用協(xié)議的實現(xiàn)包括客戶端和服務(wù)器端兩部分,其框架如圖4所示。
圖4 應(yīng)用協(xié)議軟件實現(xiàn)框架
客戶端軟件主要負責服務(wù)器和USB認證器的信息交換,當接收到服務(wù)器傳來的數(shù)據(jù)時,調(diào)用應(yīng)用接口傳給USB認證器進行處理;當接收到USB認證器傳來的數(shù)據(jù)時,通過網(wǎng)絡(luò)技術(shù)(如AJAX)傳給服務(wù)器進行處理。為了支持B/S架構(gòu)下應(yīng)用集成開發(fā),客戶端軟件主體采用ActiveX控件模式開發(fā)[7]??丶惭b成功后,在瀏覽器HTML中通過<object>標簽指定classid="clsid:xx…x"訪問。為了完成ActiveX控件與服務(wù)器響應(yīng)程序之間交互,以Javascript程序為中間件,采用AJAX技術(shù)實現(xiàn)客戶端與服務(wù)器端交互。
服務(wù)器端軟件主要負責協(xié)議的數(shù)據(jù)操作部分,根據(jù)客戶端傳來的參數(shù),執(zhí)行相應(yīng)的協(xié)議操作,主要包括隨機數(shù)生成、DES加解密、數(shù)據(jù)庫讀寫。為了方便客戶端程序的訪問,服務(wù)器端軟件采用動態(tài)網(wǎng)頁模式開發(fā),類似于USB認證器固件程序結(jié)構(gòu),動態(tài)網(wǎng)頁程序主要負責獲取客戶端命令及數(shù)據(jù)參數(shù),并對命令進行解析,然后調(diào)用軟件模塊實現(xiàn)相應(yīng)的功能,最后返回命令執(zhí)行狀態(tài)或結(jié)果。
4.3 軟硬件集成驗證
基于上述實現(xiàn),在某單位辦公網(wǎng)文檔流轉(zhuǎn)管控系統(tǒng)中,采用了傳統(tǒng)口令登錄和USB認證器登錄兩種用戶可選的身份認證模式。其中,在USB認證器模式中,認證器作為用戶唯一身份標識的物理載體,克服了傳統(tǒng)口令登錄模式的安全缺陷,在系統(tǒng)集成驗證階段起到了較好的效果。作為下一步工作,將結(jié)合課題組前期研制的一款安全型USB設(shè)備IP核[8],設(shè)計一種針對USB認證器軟硬件的量產(chǎn)方案和工具,以期盡早發(fā)揮實際作用和效益。
在網(wǎng)絡(luò)系統(tǒng)中,動態(tài)身份認證是解決用戶登錄安全性的有效途徑。提出的USB認證器設(shè)計和應(yīng)用方案,避免了用戶登錄時在網(wǎng)絡(luò)上傳輸敏感信息,是一種理論可靠和現(xiàn)實可行的解決方案,對其他類似系統(tǒng)的開發(fā)具有借鑒意義。
[1] 鄭強,高能,張令臣.基于SM3算法的動態(tài)口令卡的設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2013,30(2):14-17.
[2] Menezes A J,Oorschot PC,Vanstone SA.應(yīng)用密碼學手冊[M].胡磊,王鵬,等譯.北京:電子工業(yè)出版社,2005.
[3] 李崢,楊先文.FreeARM7 IP核的微處理器邏輯擴展與驗證[J].單片機與嵌入式系統(tǒng)應(yīng)用,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移動存儲設(shè)備的惟一性識別方法研究[J].計算機工程與設(shè)計,2010,31(12):2778-2780,2784.
[6] 韓國棟,趙月飛,婁建安,等.Altium Designer Winter 09電路設(shè)計入門與提高[M].北京:化學工業(yè)出版社,2010.
[7] 高穎,葛飛,劉寧,等.基于COM技術(shù)的虛擬儀表ActiveX控件開發(fā)[J].微處理機,2013,34(6):42-45.
[8] 楊先文,李崢,王安,等.密碼安全USB設(shè)備控制器IP的系統(tǒng)設(shè)計[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-),女,河南滑縣人,高級工程師,主研方向:計算機網(wǎng)絡(luò)與信息安全。
2014-07-07