基于USB2. 0控制器的軟件狗設(shè)計(jì)及安全性分析
3. 2 硬件實(shí)現(xiàn)
本設(shè)計(jì)中采用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所示。
圖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í)行速度以及更大的存儲器空間, 因此, 它可以在較短的時(shí)間內(nèi)完成比較復(fù)雜的算法, 而且不需另外擴(kuò)展存儲空間。芯片內(nèi)部還有一個串行接口引擎S IE, 由它來完成大部分USB2. 0協(xié)議的處理工作,這樣大大減輕了固件程序的工作量。
3. 3 軟件設(shè)計(jì)
軟件設(shè)計(jì)主要包括三部分: 芯片固件程序、設(shè)備驅(qū)動程序、PC應(yīng)用程序。
Cypress公司的EZ- U SB FX2開發(fā)套件提供了完整的CY7C68013A 驅(qū)動程序源代碼、固件的框架、控制面板程序, 方便用戶開發(fā), 縮短了開發(fā)周期。本設(shè)計(jì)中的驅(qū)動程序就是對FX2開發(fā)套件中所帶的驅(qū)動程序進(jìn)行修改而得到的。利用提供的固件框架完成設(shè)備的初始化, 使用端點(diǎn)2和端點(diǎn)6的實(shí)時(shí)傳輸方式, 實(shí)時(shí)得到動態(tài)產(chǎn)生的PIN 碼。
在本設(shè)計(jì)中, 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àn)證應(yīng)用程序傳輸數(shù)據(jù)的準(zhǔn)確性。
4 結(jié)束語
USB2. 0軟件狗和其他軟件狗相比有其獨(dú)有的優(yōu)越性。首先, USB 憑借其即插即用極大地方便了用戶使用, 免除了開機(jī)箱和重啟動的麻煩, 能夠?yàn)閭€人筆記本電腦提供一個具有快速通信能力的數(shù)據(jù)加密設(shè)備。第二, USB2. 0的高速數(shù)據(jù)傳輸能力保證了運(yùn)行過程中的動態(tài)加密, 其特有的打包方法和編碼格式, 增加了加密數(shù)據(jù)在傳輸過程中被截獲及解密的難度。第三, 采用USB 軟件狗的PIN 碼保護(hù)和動態(tài)口令相結(jié)合的方法, 避免了解密者獲取和推算動態(tài)口令。第四, 本設(shè)計(jì)中采用Cypress 公司的CY7C68013A 芯片作為主芯片, 使得硬件電路設(shè)計(jì)簡單, 占用空間小, Cypress公司提供的套件開發(fā)固件程序和驅(qū)動程序, 用VC6. 0 開發(fā)加密的軟件平臺, 極大地縮短了開發(fā)周期。
作為USB2. 0 技術(shù)和軟件狗技術(shù)相結(jié)合的產(chǎn)物, USB 軟件狗無疑會具有十分強(qiáng)大的生命力。
pid控制器相關(guān)文章:pid控制器原理
評論