USB安全鑰功能擴展與優(yōu)化設計
USB安全鑰最早基于USB的熱插拔、速度以及硬件等優(yōu)勢,結合加密算法,用于辦公文件、軟件等的存儲和加密。但USB安全鑰的用武之地遠不止這些,與網(wǎng)絡技術結合,用于時下最時尚的電子商務中,才使其大顯神通。USB安全鑰結合傳統(tǒng)的電子商務核心技術和新興的USB技術,用于實現(xiàn)電子商務中的關鍵技術――身份識別,在未來電子商務領域具有廣闊的應用前景。USB安全鑰集數(shù)據(jù)加密和數(shù)據(jù)存儲兩大功能于一體,推動了電子商務的發(fā)展。
傳統(tǒng)的電子商務或是網(wǎng)絡email等的身份認證基本上是通過兩種方式來實現(xiàn)的。一種是密碼機制,雙方約定好規(guī)則。這是目前最為普遍的方式,但是這種方式的嚴重缺點顯而易見。密碼作為最重要的信息,在網(wǎng)絡上傳輸,很容易被黑客攻擊截獲,經常發(fā)生密碼被盜。第二種方式是通過第三方的認證,雙方共同信任第三方公司提供的信息,從而進行交易。微軟在.NET計劃中推出的認證服務器就提供這種服務。但是,信譽度建立在第三方上,便會受到第三方的制約,掏錢不說,還要擔心第三方是否會倒閉。USB安全鑰解決了這兩種方式無法解決的問題。
完整的USB安全鑰系統(tǒng)由三部分組成:安全鑰端,采用Motorola公司帶USB接口的8位單片機MC68HC908JB8構成;PC端,由任何一臺可接入網(wǎng)絡的PC構成,并安裝PC端的用戶身份認證軟件;Server端,任何一臺網(wǎng)絡服務器安裝用于身份認證的Server端軟件。
USB安全鑰系統(tǒng)結構體系及功能流程如圖1所示,列出了九個步驟,描述了USB安全鑰從插入PC到完成一次身份識別的完整流程。
需要強調的是,在上述步驟中,PC僅僅起一個Media(媒介)的作用。任何重要的數(shù)據(jù)都沒有經過PC,在網(wǎng)絡上傳輸?shù)膬H僅是8個字節(jié)的隨機數(shù)(它只在Server服務器和安全鑰端有意義,只對特定的加密算法和密鑰有意義),被黑客截取也不會有問題。這8個字節(jié)的隨機數(shù)由網(wǎng)絡Server產生,經由PC傳遞給USB安全鑰加密;加密后的隨機數(shù)再由PC不加任何改變地傳遞給Server;Server去調用解密算法解開加密的隨機數(shù),與原來未加密的隨機數(shù)比較,如果相同則說明USB安全鑰的持有者身份合理。整個身份認證也告結束。這里,USB安全鑰體現(xiàn)出兩大優(yōu)點:(1)沒有任何重要的個人信息在網(wǎng)上傳遞,保證了安全性;(2)Server由網(wǎng)絡商自己維護,安全鑰由用戶攜有,雙方的認證沒有依靠第三方,快捷、安全、信譽度高。當然,USB安全鑰還有其他很多優(yōu)點,例如可以在PC上熱插拔,可以在任何一臺支持USB的PC上工作(現(xiàn)在幾乎所有的PC都應該支持USB)等。
2 USB安全鑰的技術細節(jié)
USB安全鑰技術,從設計上可以分為三個模塊:Server端的網(wǎng)絡通訊和加密算法設計、PC端的USB驅動程序和網(wǎng)絡通訊設計、安全鑰端的USB固件和加密算法設計。涉及到的計算機技術包括Socket網(wǎng)絡編程技術、USB驅動程序設計技術和加密算法技術??梢哉f整個設計內容龐雜,技術難度高。因此,設計時就需細化,一步步完成單個功能,再進行聯(lián)調,將單個模塊融合成完整的USB安全鑰。
后期的功能擴展和優(yōu)化設計也是針對三個模塊,應用三大技術完成。主要是:服務器(Server)端DES加密算法的研究,設計加密算法的動態(tài)鏈接庫DLL,提供給客戶最簡單的API;PC和安全鑰端驅動程序的研究,實現(xiàn)PC端友好的程序界面,動態(tài)在線修改存儲在安全鑰內的用戶產品信息。本文將詳細介紹擴展和優(yōu)化的設計方法,從而揭示USB安全鑰的技術細節(jié)。
2.1 如何設計Server端加密算法及其DLL
密碼算法(Algorithm)就是指加密函數(shù)(Encryption)和解密函數(shù)(Decryption)。有加密函數(shù),那么必然有一套與它對應的解密函數(shù)?,F(xiàn)代密碼學用密鑰技術解決了保密性不夠的問題。密鑰用K表示。K的取值范圍叫做密鑰空間??梢杂萌缦率阶觼肀硎炯用芎徒饷芎瘮?shù)之間的關系:
DK(EK(M))=M
其中,E為加密函數(shù),D為解密函數(shù),M為被加密的原文。有一個重要的結論:所有算法的安全性都基于密鑰的安全性,而不是算法細節(jié)的安全性。這就是說,算法可以公開,只要密鑰是保密的,則這個算法就是安全的。簡單地說,密鑰就是與密文疊加在一起的一組數(shù)。
標準加密算法DES作為ANSI的數(shù)據(jù)加密算法和ISO的DEA-1,成為世界范圍內的標準已經20多年。就目前密碼學的發(fā)展情況來說,DES的安全性還是能夠滿足用戶需求的。由于完整的DES算法相當復雜,這里僅簡單介紹算法的結構。
DES是分組加密算法,以64位為一組對明文進行分組,然后進行加密和解密。加密和解密的算法相同,只是密鑰的編排不同。密鑰長度為56位,通常是64位,但是每字節(jié)第8位都用來作為奇偶校驗位,因此實際上只有56位。DES共有16輪,即對同一組明文結合密鑰進行16輪相同的加密過程,最終達到加密要求。
具體到每一輪的加密過程是這樣的:每一輪中,密鑰位移位,然后從密鑰中選出48位。數(shù)據(jù)的32位右半部分數(shù)據(jù)擴展成48位,與密鑰結合。然后再將這48位數(shù)據(jù)變換為32位,并與數(shù)據(jù)的32位左半部分相與后作為新的32位右半部分。而32位左半部分基本不變。最后,左右各32位數(shù)組合在一起便構成了一輪加密后的64位密文。重復同樣運算16次,便完成了加密/解密功能[4]。
評論