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