基于USB2. 0控制器的軟件狗設計及安全性分析
1 引 言
本文引用地址:http://www.104case.com/article/162109.htm隨著計算機技術的發展, 計算機軟件作為特殊商品在信息時代越來越重要。但是由于計算機軟件的易拷貝性, 各種軟件盜版、侵權現象不斷發生, 軟件加密技術應運而生。它分為軟加密和硬加密兩類, 所謂軟加密就是用純軟件的方式, 在程序中使用一些獨特的軟件算法或其它手段來驗證使用者的合法性, 其特點是成本低, 但加密強度不高, 易被破解;硬加密則是采用軟件與硬件配合, 通過硬件來控制軟件運行的加密方法, 如密鑰盤、加密卡、軟件狗等方法, 其加密性能好, 不象軟件那樣有易復制性, 所以從理論上講, 它比軟加密要可靠一些。而綜合分析硬加密的技術指標如可靠性、讀寫速度、破譯程度、占用主機資源等, 軟件狗是一種較好的加密方法。因此, 目前在市場上獲得了廣泛應用。
2 軟件狗的發展及原理
軟件狗技術的發展經歷了四次更新換代。第一代是存儲器型的加密狗, 工作時插在微機的并行口上, 通過對并行口讀取數據來判別軟件狗存在與否、密碼正確與否, 從而決定軟件是否運行。這種軟件狗因為內部結構過于簡單, 很容易被人檢測破譯。
第二代軟件狗采用低功耗邏輯集成電路, 在電路設計上做了一些加密工作, 例如對數據位的反相、移位、交叉等, 破譯時比前一種困難, 起到一定的加密功能。第三代軟件狗采用可編程器件, 由于這類器件本身就含有加密保護單元, 很難讀出, 增加了破譯難度[ 3] 。
但是隨著黑客攻擊手段的提高, 前三代已經不能滿足保密要求, 第四代以單片機為核心的軟件狗產生了。它不像以往軟件狗只能輸出固定的密鑰,而是按一定的算法對寫入和讀出的數據進行變換,也可以將被保護軟件的重要模塊移植到軟件狗中,使得軟件狗成為被保護軟件不可缺少的一部分。這樣軟件與軟件狗實現了真正的無縫連接, 極大提高了解密的難度, 有效防止了軟件跟蹤和邏輯分析儀的分析以及對程序的破壞性解密, 從而有效保護了軟件不被侵權。
USB 是在1994 年底由Compaq、IBM、M icrosoft等多家公司聯合提出的一種新型通用串行接口技術, 它具有真正的即插即用和熱插拔功能, USB 2. 0的高速設備可達480Mb /S的速度, 以其獨有的優勢, 如安裝拆卸方便、總線資源豐富、打包方法簡單、設備獨立等逐漸取代了其它單片機加密狗, 基于此,設計了一種基于USB2. 0控制器的軟件狗。
3 U SB2. 0軟件狗總體體系結構及關鍵技術
3. 1 USB2. 0軟件狗的工作原理
傳統意義上的加密就是防止信息泄露, 其基本過程為將消息(明文)經過某種算法進行加密, 形成密文, 再經過解密將密文轉變為明文, 以達到信息不被竊取的目的, 而軟件狗則是加密技術在信息領域中呈現出的一個全新概念。它的作用并不是防止信息泄露, 而是為軟件開發者提供用戶使用權限認證或運行許可, 與傳統的信息加密概念有著明顯的區別。因此, 設計過程中加密算法的實現不是研究的主要內容, 需要把工作重點放在如何防止調試工具對軟件狗數據傳輸的跟蹤, 以達到難以破解或者不能破解的目的。
一般的軟件狗工作原理如圖1所示。
圖1 USB 軟件狗加密保護流程圖
圖1中列出了6個步驟, 描述了從插入USB軟件狗到完成一次軟件合法性檢驗的全過程。軟件狗對隨機數的加密在硬件中進行, 其結果返回PC 機并經PC 機中軟件的解密算法解密。通過檢驗解密后的數據是否和原隨機數保持一致來鑒別是否插入合法的軟件狗硬件, 從而達到軟件保護的目的。
不難看出, 步驟3 和4中傳送的隨機數容易被多次跟蹤分析, 解密者可以根據得到的這一系列數據對, 設計出相關的模擬軟件, 那么就需要在這個隨機數上進行改進。
本設計中采用的是將USB 軟件狗的PIN 碼保護和動態口令相結合的方法。PIN 碼在PC 上輸入,在用戶不取走USB軟件狗時易被解密者捕獲, 從而獲得虛假認證, 可是如果使用了動態口令, 每次的口令不同, 解密者很難進行破解。動態口令是一種讓用戶密碼按照時間或者使用次數不斷變化、每個密碼只能使用一次的技術, 即使解密者獲取了幾個動態口令, 那么他也無法預知或者推算下一次或者下下次的動態口令, 無法在使用時間或者使用次數上形成連續性。本設計的USB2. 0 軟件狗加密保護流程如圖2所示。
圖2 USB2. 0軟件狗加密保護流程圖。
pid控制器相關文章:pid控制器原理
評論