《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 基于USB2. 0控制器的軟件狗設(shè)計及安全性分析
基于USB2. 0控制器的軟件狗設(shè)計及安全性分析
摘要: 隨著計算機(jī)技術(shù)的發(fā)展, 基于單片機(jī)的軟件狗成為目前的主流。USB以其特有的打包方法、編碼格式、結(jié)構(gòu)特性取代了以往的并口軟件狗。據(jù)此設(shè)計了一種USB軟件狗, 給出了相應(yīng)的軟件和硬件設(shè)計, 重點(diǎn)介紹其加密原理, 并對其安全性進(jìn)行分析。
Abstract:
Key words :

  1  引  言

  隨著計算機(jī)技術(shù)的發(fā)展, 計算機(jī)軟件作為特殊商品在信息時代越來越重要。但是由于計算機(jī)軟件的易拷貝性, 各種軟件盜版、侵權(quán)現(xiàn)象不斷發(fā)生, 軟件加密技術(shù)應(yīng)運(yùn)而生。它分為軟加密和硬加密兩類, 所謂軟加密就是用純軟件的方式, 在程序中使用一些獨(dú)特的軟件算法或其它手段來驗證使用者的合法性, 其特點(diǎn)是成本低, 但加密強(qiáng)度不高, 易被破解;硬加密則是采用軟件與硬件配合, 通過硬件來控制軟件運(yùn)行的加密方法, 如密鑰盤、加密卡、軟件狗等方法, 其加密性能好, 不象軟件那樣有易復(fù)制性, 所以從理論上講, 它比軟加密要可靠一些。而綜合分析硬加密的技術(shù)指標(biāo)如可靠性、讀寫速度、破譯程度、占用主機(jī)資源等, 軟件狗是一種較好的加密方法。因此, 目前在市場上獲得了廣泛應(yīng)用。

  2  軟件狗的發(fā)展及原理

  軟件狗技術(shù)的發(fā)展經(jīng)歷了四次更新?lián)Q代。第一代是存儲器型的加密狗, 工作時插在微機(jī)的并行口上, 通過對并行口讀取數(shù)據(jù)來判別軟件狗存在與否、密碼正確與否, 從而決定軟件是否運(yùn)行。這種軟件狗因為內(nèi)部結(jié)構(gòu)過于簡單, 很容易被人檢測破譯。

  第二代軟件狗采用低功耗邏輯集成電路, 在電路設(shè)計上做了一些加密工作, 例如對數(shù)據(jù)位的反相、移位、交叉等, 破譯時比前一種困難, 起到一定的加密功能。第三代軟件狗采用可編程器件, 由于這類器件本身就含有加密保護(hù)單元, 很難讀出, 增加了破譯難度[ 3] 。

  但是隨著黑客攻擊手段的提高, 前三代已經(jīng)不能滿足保密要求, 第四代以單片機(jī)為核心的軟件狗產(chǎn)生了。它不像以往軟件狗只能輸出固定的密鑰,而是按一定的算法對寫入和讀出的數(shù)據(jù)進(jìn)行變換,也可以將被保護(hù)軟件的重要模塊移植到軟件狗中,使得軟件狗成為被保護(hù)軟件不可缺少的一部分。這樣軟件與軟件狗實(shí)現(xiàn)了真正的無縫連接, 極大提高了解密的難度, 有效防止了軟件跟蹤和邏輯分析儀的分析以及對程序的破壞性解密, 從而有效保護(hù)了軟件不被侵權(quán)。

  USB 是在1994 年底由Compaq、IBM、M icrosoft等多家公司聯(lián)合提出的一種新型通用串行接口技術(shù), 它具有真正的即插即用和熱插拔功能, USB 2. 0的高速設(shè)備可達(dá)480Mb /S的速度, 以其獨(dú)有的優(yōu)勢, 如安裝拆卸方便、總線資源豐富、打包方法簡單、設(shè)備獨(dú)立等逐漸取代了其它單片機(jī)加密狗, 基于此,設(shè)計了一種基于USB2. 0控制器的軟件狗。

  3 U SB2. 0軟件狗總體體系結(jié)構(gòu)及關(guān)鍵技術(shù)

  3. 1 USB2. 0軟件狗的工作原理

  傳統(tǒng)意義上的加密就是防止信息泄露, 其基本過程為將消息(明文)經(jīng)過某種算法進(jìn)行加密, 形成密文, 再經(jīng)過解密將密文轉(zhuǎn)變?yōu)槊魑模?以達(dá)到信息不被竊取的目的, 而軟件狗則是加密技術(shù)在信息領(lǐng)域中呈現(xiàn)出的一個全新概念。它的作用并不是防止信息泄露, 而是為軟件開發(fā)者提供用戶使用權(quán)限認(rèn)證或運(yùn)行許可, 與傳統(tǒng)的信息加密概念有著明顯的區(qū)別。因此, 設(shè)計過程中加密算法的實(shí)現(xiàn)不是研究的主要內(nèi)容, 需要把工作重點(diǎn)放在如何防止調(diào)試工具對軟件狗數(shù)據(jù)傳輸?shù)母櫍?以達(dá)到難以破解或者不能破解的目的。

  一般的軟件狗工作原理如圖1所示。

USB 軟件狗加密保護(hù)流程圖

圖1  USB 軟件狗加密保護(hù)流程圖

  圖1中列出了6個步驟, 描述了從插入USB軟件狗到完成一次軟件合法性檢驗的全過程。軟件狗對隨機(jī)數(shù)的加密在硬件中進(jìn)行, 其結(jié)果返回PC 機(jī)并經(jīng)PC 機(jī)中軟件的解密算法解密。通過檢驗解密后的數(shù)據(jù)是否和原隨機(jī)數(shù)保持一致來鑒別是否插入合法的軟件狗硬件, 從而達(dá)到軟件保護(hù)的目的。

  不難看出, 步驟3 和4中傳送的隨機(jī)數(shù)容易被多次跟蹤分析, 解密者可以根據(jù)得到的這一系列數(shù)據(jù)對, 設(shè)計出相關(guān)的模擬軟件, 那么就需要在這個隨機(jī)數(shù)上進(jìn)行改進(jìn)。

  本設(shè)計中采用的是將USB 軟件狗的PIN 碼保護(hù)和動態(tài)口令相結(jié)合的方法。PIN 碼在PC 上輸入,在用戶不取走USB軟件狗時易被解密者捕獲, 從而獲得虛假認(rèn)證, 可是如果使用了動態(tài)口令, 每次的口令不同, 解密者很難進(jìn)行破解。動態(tài)口令是一種讓用戶密碼按照時間或者使用次數(shù)不斷變化、每個密碼只能使用一次的技術(shù), 即使解密者獲取了幾個動態(tài)口令, 那么他也無法預(yù)知或者推算下一次或者下下次的動態(tài)口令, 無法在使用時間或者使用次數(shù)上形成連續(xù)性。本設(shè)計的USB2. 0 軟件狗加密保護(hù)流程如圖2所示。

USB2. 0軟件狗加密保護(hù)流程圖。

圖2  USB2. 0軟件狗加密保護(hù)流程圖。

  3. 2  硬件實(shí)現(xiàn)

  本設(shè)計中采用Cypress 公司推出的CY7C68013A芯片, 該芯片屬于EZ- USB FX2系列芯片, 是世界上第一個集成USB2. 0 協(xié)議的微處理器, 它支持12Mb / s的全速傳輸和480Mb / s高速傳輸。

  CY7C68013A芯片結(jié)構(gòu)包括增強(qiáng)型8051 處理器、串行接口引擎( SIE )、USB2. 0收發(fā)器、16KB 的RAM、4KB的FIFO 存儲器、數(shù)據(jù)總線、地址總線以及通用可編程接口( GPIF)等, 如圖3所示。

CY7C68013A 芯片結(jié)構(gòu)圖

圖3  CY7C68013A 芯片結(jié)構(gòu)圖。

  USB 加密狗一般由USB 控制器、單片機(jī)、外接存儲器構(gòu)成, 而CY7C68013A 將三者集成為一個芯片, 使硬件實(shí)現(xiàn)變得非常簡單, 只需配置好外圍電容、電阻即可。芯片提供了0、1、2、4、6、8 幾個端點(diǎn), 端點(diǎn)0和端點(diǎn)1僅由固件訪問, 由于其余端點(diǎn)都是單向訪問的, 在此使用端點(diǎn)2和端點(diǎn)6, 用于數(shù)據(jù)的發(fā)送和接收。

  該芯片集成的增強(qiáng)型8051比標(biāo)準(zhǔn)8051有更快的執(zhí)行速度以及更大的存儲器空間, 因此, 它可以在較短的時間內(nèi)完成比較復(fù)雜的算法, 而且不需另外擴(kuò)展存儲空間。芯片內(nèi)部還有一個串行接口引擎S IE, 由它來完成大部分USB2. 0協(xié)議的處理工作,這樣大大減輕了固件程序的工作量。

  3. 3  軟件設(shè)計

  軟件設(shè)計主要包括三部分: 芯片固件程序、設(shè)備驅(qū)動程序、PC應(yīng)用程序。

  Cypress公司的EZ- U SB FX2開發(fā)套件提供了完整的CY7C68013A 驅(qū)動程序源代碼、固件的框架、控制面板程序, 方便用戶開發(fā), 縮短了開發(fā)周期。本設(shè)計中的驅(qū)動程序就是對FX2開發(fā)套件中所帶的驅(qū)動程序進(jìn)行修改而得到的。利用提供的固件框架完成設(shè)備的初始化, 使用端點(diǎn)2和端點(diǎn)6的實(shí)時傳輸方式, 實(shí)時得到動態(tài)產(chǎn)生的PIN 碼。

  在本設(shè)計中, PC 應(yīng)用程序是指與加密狗的接口程序, 選用VC6. 0 為開發(fā)平臺來開發(fā)應(yīng)用程序, 利用C reateF ile得到USB 句柄, 使用D ev iceIoControl函數(shù)來進(jìn)行數(shù)據(jù)的接收和發(fā)送, 并編制U SB 軟件狗的主機(jī)接口函數(shù), 將接口函數(shù)封裝于usbdog. d ll文件中, 供被保護(hù)軟件調(diào)用。

  使用開發(fā)套件中提供的控制面板程序可以調(diào)試程序, 驗證應(yīng)用程序傳輸數(shù)據(jù)的準(zhǔn)確性。

  4  結(jié)束語

  USB2. 0軟件狗和其他軟件狗相比有其獨(dú)有的優(yōu)越性。首先, USB 憑借其即插即用極大地方便了用戶使用, 免除了開機(jī)箱和重啟動的麻煩, 能夠為個人筆記本電腦提供一個具有快速通信能力的數(shù)據(jù)加密設(shè)備。第二, USB2. 0的高速數(shù)據(jù)傳輸能力保證了運(yùn)行過程中的動態(tài)加密, 其特有的打包方法和編碼格式, 增加了加密數(shù)據(jù)在傳輸過程中被截獲及解密的難度。第三, 采用USB 軟件狗的PIN 碼保護(hù)和動態(tài)口令相結(jié)合的方法, 避免了解密者獲取和推算動態(tài)口令。第四, 本設(shè)計中采用Cypress 公司的CY7C68013A 芯片作為主芯片, 使得硬件電路設(shè)計簡單, 占用空間小, Cypress公司提供的套件開發(fā)固件程序和驅(qū)動程序, 用VC6. 0 開發(fā)加密的軟件平臺, 極大地縮短了開發(fā)周期。

  作為USB2. 0 技術(shù)和軟件狗技術(shù)相結(jié)合的產(chǎn)物, USB 軟件狗無疑會具有十分強(qiáng)大的生命力。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 欧美综合区 | 全免费a级毛片免费毛视频 全免费毛片在线播放 | 7m福利视频导航精品 | 成人看片黄a在线看 | 综合欧美日韩一区二区三区 | 亚洲人成77777在线观看网 | 亚洲日本中文字幕 | 黄色a三级三级三级免费看 黄色a三级免费看 | 精品欧美高清不卡在线 | 亚洲欧美中文日韩在线v日本 | 天天插在线视频 | 成人欧美视频在线观看播放 | 欧美三级一区二区 | 天天干干干干 | 亚洲小视频在线播放 | 天天爽夜夜 | 午夜激情视频在线 | 美女伊人| 黄色网在线 | 国产精品福利影院 | 国产99视频在线观看 | 日韩影视在线 | 莉莉私人免费影院观看网站 | 狠狠操天天射 | 91成人在线免费观看 | 日韩欧美视频在线播放 | 欧美黄网在线 | 大片免费播放器免费观看 | 欧美激情一区二区三区在线 | 五月天激情婷婷大综合 | 亚洲三级黄色片 | 日本一区二区三区久久精品 | 日本人爱爱视频 | 黄色3级视频 | 日本69xxx18hd| 国产精品亚洲欧美一区麻豆 | 一级欧美在线的视频 | 日韩理论片在线观看 | 国产最新进精品视频 | 黄网站免费观看 | 欧美精品一区二区三区免费播放 |