章超超, 陳元林, 盧 娜, 安博文
(上海海事大學(xué)信息工程學(xué)院,上海 201306)
基于USB的軟件綜合安全模塊設(shè)計(jì)及應(yīng)用
章超超, 陳元林, 盧 娜, 安博文
(上海海事大學(xué)信息工程學(xué)院,上海 201306)
設(shè)計(jì)的軟件安全模塊是一個(gè)外置的硬件模塊,提供版權(quán)保護(hù)、核心數(shù)據(jù)加密、穩(wěn)定運(yùn)行監(jiān)控等功能。外置安全模塊采用USB與PC主機(jī)連接,通過將安全模塊內(nèi)的微控制器虛擬為USB大容量存儲設(shè)備,實(shí)現(xiàn)了免驅(qū)動(dòng)的便攜數(shù)據(jù)通道。設(shè)計(jì)了一種基于報(bào)文的分層通信協(xié)議棧作為安全模塊與PC的通信規(guī)約,實(shí)現(xiàn)安全可靠的數(shù)據(jù)通信,并提供通用的調(diào)用接口。以電纜載流量分析軟件為應(yīng)用實(shí)例,說明安全模塊的使用方法。
數(shù)據(jù)加密; 數(shù)據(jù)通信; USB; 版權(quán)保護(hù); 通信規(guī)約; 載流量分析
軟件的版權(quán)保護(hù)、核心數(shù)據(jù)加密、穩(wěn)定運(yùn)行監(jiān)控功能是開發(fā)人員亟待解決的重要問題。根據(jù)加密方式,目前軟件版權(quán)保護(hù)及數(shù)據(jù)加密技術(shù)分為軟加密和硬加密[1]。軟加密不依賴特定硬件,但軟件實(shí)現(xiàn)手段不利于授權(quán)管理[2];硬加密依賴特定的硬件,通過硬件和軟件相結(jié)合的方式來實(shí)現(xiàn)加密保護(hù),其優(yōu)勢在于利用硬件的不可復(fù)制性達(dá)到較高強(qiáng)度的加密保護(hù)[3]。目前市面上的加密狗屬于硬加密的一種方式,但是市場上的加密狗不能同時(shí)滿足上述3個(gè)功能需求。本文設(shè)計(jì)的綜合安全模塊采用通用USB傳輸接口,具備認(rèn)證、存儲、運(yùn)算、故障恢復(fù)、繼電輸出等功能。重點(diǎn)是設(shè)計(jì)一套通信協(xié)議,來高效地實(shí)現(xiàn)上述功能,同時(shí)易于二次開發(fā)和應(yīng)用,提高穩(wěn)定性。
為方便系統(tǒng)描述,本文把運(yùn)行應(yīng)用軟件的PC機(jī)稱為上位機(jī),外置安全模塊稱為下位機(jī),兩者結(jié)合組成一個(gè)包含軟硬件的綜合安全系統(tǒng)。
綜合安全系統(tǒng)包括上位機(jī)通信協(xié)議棧、下位機(jī)通信協(xié)議棧、下位機(jī)硬件模塊、下位機(jī)伺服程序以及相關(guān)控制裝置,其中,下位機(jī)硬件模塊以微控制芯片為核心。綜合安全系統(tǒng)則具有版權(quán)保護(hù)、透明傳輸、穩(wěn)定運(yùn)行監(jiān)控等功能。
版權(quán)保護(hù)功能包括:下位機(jī)監(jiān)測上位機(jī)的運(yùn)行次數(shù)及單次運(yùn)行時(shí)間,限定軟件用戶的使用權(quán)限;上位機(jī)監(jiān)測下位機(jī)是否已與軟件連接,防止軟件運(yùn)行時(shí)未接入配套的下位機(jī)。
1) 合法授權(quán)情況下上位機(jī)與下位機(jī)的通信:上位機(jī)定時(shí)產(chǎn)生隨機(jī)數(shù)據(jù)包并加密,將密文數(shù)據(jù)包發(fā)送給下位機(jī),下位機(jī)收到后對其解密,再將解密數(shù)據(jù)包發(fā)送給上位機(jī),上位機(jī)比對隨機(jī)數(shù)據(jù)包和解密數(shù)據(jù)包,以此來核準(zhǔn)身份。上位機(jī)啟動(dòng)時(shí),向下位機(jī)發(fā)送認(rèn)證數(shù)據(jù)包,下位機(jī)開始記錄上位機(jī)本次運(yùn)行時(shí)間及上位機(jī)運(yùn)行次數(shù)。
2) 非法授權(quán)情況下上位機(jī)與下位機(jī)的通信:超過一定時(shí)間,上位機(jī)沒有收到解密數(shù)據(jù)包或者比對不一致時(shí),上位機(jī)軟件啟動(dòng)自鎖功能。運(yùn)行次數(shù)超過限定次數(shù)或本次運(yùn)行時(shí)間達(dá)到單次的運(yùn)行限定時(shí)間時(shí),下位機(jī)發(fā)送控制數(shù)據(jù)包,控制上位機(jī)自鎖功能。
1) 加密傳輸:上位機(jī)與下位機(jī)之間傳輸?shù)臄?shù)據(jù)均采用AES256加密算法加密后進(jìn)行傳輸,實(shí)現(xiàn)透明傳輸?shù)墓δ堋?/p>
2) 核心數(shù)據(jù)加密:系統(tǒng)軟件中一些核心參數(shù)等數(shù)據(jù),將其加密后存放在下位機(jī)中,當(dāng)上位機(jī)需要時(shí)再進(jìn)行讀取以保證核心數(shù)據(jù)的安全。
穩(wěn)定運(yùn)行是系統(tǒng)軟件的基本要求,外置穩(wěn)定模塊具有保障軟件的穩(wěn)定運(yùn)行的功能。圖1為其整體框圖。
圖1 外置穩(wěn)定模塊整體框圖Fig.1 The external stable module
圖2為控制邏輯程序框圖,圖中,t1,t2,t3,t4,n,m,p均為根據(jù)用戶需求設(shè)置的變量。
重啟條件I:超過t1分鐘未收到上位機(jī)交互數(shù)據(jù)包,硬件重啟軟件。
重啟條件II:檢測到上位機(jī)在t2分鐘之內(nèi)“軟重啟”n次,硬件重啟上位機(jī)。
在連續(xù)t2 分鐘內(nèi),當(dāng)連續(xù)n次出現(xiàn)重啟條件I時(shí),不再硬件重啟上位機(jī),關(guān)閉軟件系統(tǒng)功能,開始聲光報(bào)警。
當(dāng)在重啟條件II連續(xù)出現(xiàn)m次時(shí),不再硬件重啟上位機(jī),關(guān)閉上位機(jī)軟件系統(tǒng)功能,開始聲光報(bào)警。
穩(wěn)定工作時(shí),上位機(jī)與下位機(jī)的通信:每間隔t3分鐘,上位機(jī)會(huì)給下位機(jī)硬件模塊發(fā)送交互數(shù)據(jù)告知其正常運(yùn)行。
非穩(wěn)定工作時(shí),上位機(jī)與下位機(jī)的通信:1) 當(dāng)上位機(jī)發(fā)生故障時(shí),下位機(jī)由于沒有接收到數(shù)據(jù)會(huì)通過硬件啟動(dòng)電路重啟上位機(jī),保障系統(tǒng)正常運(yùn)行。2) 在一定時(shí)間內(nèi)重啟次數(shù)過多,系統(tǒng)會(huì)自動(dòng)聲光報(bào)警提醒工作人員檢查設(shè)備。
圖2 控制邏輯程序框圖Fig.2 The control logic program
由于系統(tǒng)需要具備USB接口、大容量SRAM等特性,因此選用微控制芯片STM32F103。
硬件電路以STM32F103微控制器為控制核心,采用ORCAD軟件進(jìn)行原理圖設(shè)計(jì)和PCB繪制[4]。電路采用USB與上位機(jī)進(jìn)行通信,通過繼電器控制重啟服務(wù)器實(shí)現(xiàn)硬件看門狗功能。
核心電路板主要由電源模塊、硬件啟動(dòng)電路、USB 接口、RS232 接口、STM32F103VCT6 微控制器系統(tǒng)等組成。電路板直接由PC機(jī)的USB接口供電。
硬件電路的具體組成如圖3所示。
圖3 硬件電路組成框圖Fig.3 Hardware circuit
以下主要描述一下硬件啟動(dòng)電路,它是控制上位機(jī)及服務(wù)器重啟的重要控制電路。硬件啟動(dòng)電路如圖4所示。圖4中,微控制器通過控制9013三極管基極的電平高低來控制三極管是否導(dǎo)通[5]。當(dāng)基極收到高電平時(shí),三極管導(dǎo)通,繼電器中的線圈通過電流,觸點(diǎn)簧片合上,繼電器處于“關(guān)”的狀態(tài)。同理,當(dāng)基極收到低電平時(shí)繼電器斷開。通過這樣的“開關(guān)”控制電腦的重啟,保障上位機(jī)系統(tǒng)的穩(wěn)定運(yùn)行。每一個(gè)繼電器都有一個(gè)保護(hù)二極管,防止斷開繼電器后線圈的自感電壓燒壞器件。
圖4 硬件啟動(dòng)電路Fig.4 Hardware start-up circuit
上位機(jī)與下位機(jī)采用USB進(jìn)行通信,需要編寫USB設(shè)備驅(qū)動(dòng)程序。由于USB采集設(shè)備的驅(qū)動(dòng)在不同操作系統(tǒng)中會(huì)出現(xiàn)不兼容現(xiàn)象,所以設(shè)計(jì)免驅(qū)動(dòng)的便攜數(shù)據(jù)通道,將STM32內(nèi)置存儲器虛擬成U盤,保證安全模塊的適用性和通用性。虛擬的U盤作為下位機(jī)與上位機(jī)數(shù)據(jù)交互的公共空間,采用Windows API函數(shù)對虛擬U盤進(jìn)行讀寫數(shù)據(jù)操作[6],上位機(jī)與下位機(jī)按照采集設(shè)備通信協(xié)議實(shí)現(xiàn)通信過程。
本系統(tǒng)采用的控制芯片的內(nèi)置SRAM內(nèi)存為48 kB,前16 kB用于處理器處理程序存儲變量,剩余32 kB作為虛擬U盤。
使用Win hex軟件查看U盤物理地址處數(shù)據(jù),經(jīng)過多次試驗(yàn)得知:1) 上位機(jī)向虛擬U盤讀寫數(shù)據(jù)字節(jié),單次讀寫字節(jié)數(shù)只能是2 kB的整數(shù)倍;2) 無法向4 kB的起始扇區(qū)中寫數(shù)據(jù),只能向剩余28 kB區(qū)域中讀寫數(shù)據(jù)。
根據(jù)功能用途,將28 kB區(qū)域分成5個(gè)區(qū)域,分別為A域、B域、C域、D域和E域。內(nèi)置SRAM區(qū)域劃分情況如圖5所示。
圖5 區(qū)域劃分示意圖Fig.5 Zoning schematic
虛擬U盤中數(shù)據(jù)讀寫分區(qū)如表1所示。
1) A域是上位機(jī)向下位機(jī)發(fā)送數(shù)據(jù)包的存儲區(qū)域,因?yàn)樯衔粰C(jī)向下位機(jī)發(fā)送的數(shù)據(jù)為請求或認(rèn)證數(shù)據(jù),字節(jié)數(shù)較少,所以A域分配4 kB。
2) B域?yàn)橄挛粰C(jī)向上位機(jī)發(fā)送數(shù)據(jù)包的存儲區(qū)域,發(fā)送加密的核心數(shù)據(jù)較多,所以B域分配了18 kB。
3) C域?yàn)樯衔粰C(jī)在A域中寫完數(shù)據(jù)后,再發(fā)送結(jié)束數(shù)據(jù)包的存儲區(qū)域。
4) D域?yàn)橄挛粰C(jī)在B域中寫完數(shù)據(jù)后,再發(fā)送結(jié)束數(shù)據(jù)包的存儲區(qū)域。
5) E域?yàn)橄挛粰C(jī)主動(dòng)向上位機(jī)報(bào)告狀態(tài)信息的存儲區(qū)域,C,D,E域中數(shù)據(jù)字節(jié)長度很小,設(shè)置為單次讀寫字節(jié)數(shù)最少的2 kB。
表1 虛擬U盤中數(shù)據(jù)讀寫分區(qū)
綜合安全系統(tǒng)軟件要實(shí)現(xiàn)的功能包括認(rèn)證、存儲、運(yùn)算、監(jiān)控和繼電控制等。
綜合安全系統(tǒng)軟件設(shè)計(jì)分為上位機(jī)軟件設(shè)計(jì)和下位機(jī)伺服軟件設(shè)計(jì)。上位機(jī)負(fù)責(zé)調(diào)用Windows API函數(shù)通信及實(shí)現(xiàn)上位機(jī)通信協(xié)議工作,下位機(jī)伺服軟件負(fù)責(zé)虛擬U盤及實(shí)現(xiàn)下位機(jī)通信協(xié)議的工作。
4.2.1 通信協(xié)議分層結(jié)構(gòu)設(shè)計(jì)
通信協(xié)議設(shè)計(jì)過程參考OSI網(wǎng)絡(luò)模型,通信協(xié)議采用層次結(jié)構(gòu)實(shí)現(xiàn),各層采用統(tǒng)一接口實(shí)現(xiàn)通信[7]。按照功能的不同分為4層:即硬件通信層、加密傳輸層、傳輸控制層和應(yīng)用層。圖6所示為通信協(xié)議分層結(jié)構(gòu)模型。
圖6 通信協(xié)議分層結(jié)構(gòu)模型圖Fig.6 Communication protocol layered model
通信協(xié)議各層主要功能如下。
1) 硬件通信層。主要功能是接收上層協(xié)議傳輸層傳輸下來的數(shù)據(jù)包,硬件通信層對數(shù)據(jù)包做判斷(判斷是否分包),將不足2048字節(jié)整數(shù)倍的數(shù)據(jù)包拼接成2048整數(shù)倍的數(shù)據(jù)包,并發(fā)送到指定地址,在虛擬U盤中實(shí)現(xiàn)讀寫數(shù)據(jù)工作。該層的工作包括調(diào)用Windows API底層讀寫函數(shù)直接在虛擬U盤內(nèi)存中讀寫數(shù)據(jù),同時(shí)預(yù)留函數(shù)接口,來接收加密傳輸層傳遞下來的密文數(shù)據(jù)包。
2) 加密傳輸層。加密傳輸層采用AES256加密算法,將上位機(jī)和下位機(jī)之間傳輸?shù)臄?shù)據(jù)進(jìn)行加密,保證數(shù)據(jù)的安全性。
3) 傳輸控制層。傳輸控制層的主要功能是完成數(shù)據(jù)封包/解析、校驗(yàn)差錯(cuò)控制、傳輸控制工作。
4) 應(yīng)用層。應(yīng)用層的工作是把要傳輸?shù)臄?shù)據(jù)提交到傳輸控制層和提供通用的調(diào)用接口。
4.2.2 邏輯控制
下位機(jī)不會(huì)主動(dòng)發(fā)送數(shù)據(jù),上位機(jī)是所有數(shù)據(jù)和命令發(fā)起者。邏輯控制如下:
1) 上位機(jī)向A域中發(fā)送命令數(shù)據(jù)包,發(fā)送完成后,再向C域中發(fā)送結(jié)束標(biāo)識數(shù)據(jù)包;
2) 下位機(jī)定時(shí)輪詢讀取C域,查看是否有發(fā)送結(jié)束標(biāo)識數(shù)據(jù)包,如果讀取到發(fā)送結(jié)束標(biāo)識數(shù)據(jù)包,則下位機(jī)讀取A域中命令數(shù)據(jù)包;
3) 下位機(jī)響應(yīng)上位機(jī)的命令,向B域中發(fā)送響應(yīng)數(shù)據(jù)包,發(fā)送完成后,再向D域發(fā)送結(jié)束標(biāo)識數(shù)據(jù)包;
4) 上位機(jī)同下位機(jī)一樣,定時(shí)輪詢讀取B域數(shù)據(jù),查看下位機(jī)是否響應(yīng),如果有響應(yīng)數(shù)據(jù)包,則讀出響應(yīng)數(shù)據(jù)包,進(jìn)行后續(xù)操作。
4.2.3 數(shù)據(jù)包的格式設(shè)計(jì)
數(shù)據(jù)包中包含5個(gè)組成部分,即包標(biāo)識符字段、數(shù)據(jù)字段、擴(kuò)展字段、校驗(yàn)字段和包結(jié)束符字段[8-9]。本文設(shè)計(jì)的通信協(xié)議數(shù)據(jù)包格式如表2所示。
表2 通信協(xié)議數(shù)據(jù)包格式
數(shù)據(jù)字段包含5個(gè)組成部分,即功能碼、包序號、數(shù)據(jù)長度、真實(shí)數(shù)據(jù)長度和真實(shí)數(shù)據(jù),其中數(shù)據(jù)長度包括真實(shí)數(shù)據(jù)和擴(kuò)展字節(jié)數(shù)據(jù)。數(shù)據(jù)字段的格式如表3所示。
表3 數(shù)據(jù)字段格式
數(shù)據(jù)包的格式說明如下。
1) 標(biāo)識符字段。表示本數(shù)據(jù)包屬于該設(shè)備通信協(xié)議,作為一個(gè)數(shù)據(jù)包的包頭,同時(shí)作為是否接收此數(shù)據(jù)包的標(biāo)志,為了防止與正文數(shù)據(jù)混淆,在本系統(tǒng)中約定為AABBCC789FH,占5個(gè)字節(jié),這樣就能保證與正文數(shù)據(jù)相同的概率降至1/(240)。
2) 數(shù)據(jù)字段。
① 功能碼。數(shù)據(jù)包所執(zhí)行功能的標(biāo)志碼, 如“0000H”代表上位機(jī)應(yīng)用程序要求下位機(jī)開始計(jì)算本次軟件運(yùn)行時(shí)間和軟件運(yùn)行次數(shù)的功能碼。占2個(gè)字節(jié),可供使用的功能碼有65 536個(gè),可以根據(jù)實(shí)際應(yīng)用需求進(jìn)行擴(kuò)充。
② 包序號。因?yàn)樘摂MU盤空間比較小,如果發(fā)送的數(shù)據(jù)包超過了U盤的區(qū)域內(nèi)存大小,就需要分成幾個(gè)數(shù)據(jù)包發(fā)送。占4個(gè)字節(jié),前2個(gè)字節(jié)表示發(fā)送數(shù)據(jù)的分包數(shù),后2個(gè)字節(jié)表示當(dāng)前發(fā)送的包序號。
③ 數(shù)據(jù)長度。表示本次發(fā)送的整個(gè)數(shù)據(jù)包的字節(jié)長度,包括包標(biāo)識符和包結(jié)束符,便于接收方校驗(yàn)。占2個(gè)字節(jié)。
④ 真實(shí)數(shù)據(jù)長度。表示后面的真實(shí)數(shù)據(jù)所占字節(jié)長度,與數(shù)據(jù)長度相比,不包含擴(kuò)展字節(jié)、包標(biāo)識符和包結(jié)尾符。占2個(gè)字節(jié)。
⑤ 真實(shí)數(shù)據(jù)。表示一個(gè)數(shù)據(jù)包所要發(fā)送的數(shù)據(jù)內(nèi)容。
3) 擴(kuò)展字段。保留字段,方便以后可擴(kuò)展功能,同時(shí)保證數(shù)據(jù)包中真實(shí)數(shù)據(jù)前后共占512字節(jié),由于對U盤讀寫操作是以扇區(qū)為單位,一個(gè)扇區(qū)為512字節(jié),方便對真實(shí)數(shù)據(jù)的讀寫操作。
4) 校驗(yàn)字段。這部分內(nèi)容是對前面內(nèi)容的校驗(yàn)碼,接收方通過判斷這部分的內(nèi)容來確定傳送數(shù)據(jù)是否正確,如果不正確,則發(fā)送請求重發(fā)數(shù)據(jù)包,請求發(fā)送方重傳。在本系統(tǒng)中,數(shù)據(jù)包校驗(yàn)字段使用的是16位循環(huán)冗余校驗(yàn)CRC,校驗(yàn)的范圍為校驗(yàn)字段之前的所有字節(jié)[10],占2個(gè)字節(jié)。
5) 包結(jié)束符字段。表示此數(shù)據(jù)包的結(jié)束,約定為16H,占1個(gè)字節(jié)。
4.2.4 數(shù)據(jù)包的封包與解析
數(shù)據(jù)發(fā)送方在發(fā)送數(shù)據(jù)前,需要按照通信協(xié)議的規(guī)則,將要發(fā)送的數(shù)據(jù)打包好才能發(fā)送,接收方接收到數(shù)據(jù)包后,需要對數(shù)據(jù)包進(jìn)行解析,抽取出數(shù)據(jù)包中的真實(shí)數(shù)據(jù)。
4.2.5 差錯(cuò)控制
校驗(yàn)字段放在包結(jié)束符字段之前、擴(kuò)展字段之后。上位機(jī)與下位機(jī)數(shù)據(jù)交互過程中檢測糾錯(cuò)采用循環(huán)冗余校驗(yàn)方法。
數(shù)據(jù)接收方接收到發(fā)送方的數(shù)據(jù)后進(jìn)行差錯(cuò)校驗(yàn),若不正確,則發(fā)送請求重發(fā)數(shù)據(jù)包,請求數(shù)據(jù)發(fā)送方重傳數(shù)據(jù)包。
系統(tǒng)采用USB接口通信,圖7為USB通信程序框圖。下位機(jī)伺服程序包括將SRAM虛擬成U盤、啟動(dòng)控制程序、實(shí)現(xiàn)下位機(jī)通信協(xié)議以及運(yùn)算存儲等功能。
程序通過USB中斷完成虛擬U盤過程。 U盤虛擬完成后繼續(xù)等待定時(shí)器中斷,當(dāng)中斷發(fā)生后,下位機(jī)伺服程序讀取U盤特定地址處是否有來自上位機(jī)的數(shù)據(jù)包,若沒有則繼續(xù)等待中斷,若有則響應(yīng)上位機(jī)的命令。
圖7 USB通信程序框圖Fig.7 Flow chart of USB communication program
本文以電纜載流量分析軟件為應(yīng)用實(shí)例,介紹安全模塊的使用方法。電纜載流量分析中核心數(shù)據(jù)如光纖溫度、銅芯溫度及其之間的映射關(guān)系,這些核心數(shù)據(jù)加密后存放在下位機(jī)硬件模塊中,當(dāng)載流量分析軟件需要核心數(shù)據(jù)時(shí)從下位機(jī)讀取。
當(dāng)載流量分析軟件開始運(yùn)行時(shí),調(diào)用安全模塊上位機(jī)的接口,向下位機(jī)發(fā)送認(rèn)證數(shù)據(jù)包、隨機(jī)密文數(shù)據(jù)包及交互數(shù)據(jù)包,下位機(jī)能定時(shí)收到交互數(shù)據(jù)包并且上位機(jī)能定時(shí)收到下位機(jī)解密數(shù)據(jù)包,即實(shí)現(xiàn)了下位機(jī)對載流量分析軟件的版權(quán)認(rèn)證保護(hù)和穩(wěn)定運(yùn)行模塊功能。圖8為數(shù)據(jù)傳輸示意圖。
當(dāng)載流量分析軟件在需要調(diào)用核心數(shù)據(jù)時(shí),向下位機(jī)發(fā)送請求核心數(shù)據(jù)包,下位機(jī)收到請求數(shù)據(jù)包后調(diào)出加密的核心數(shù)據(jù)并發(fā)送給上位機(jī),實(shí)現(xiàn)核心數(shù)據(jù)加密功能。
載流量分析軟件系統(tǒng)中,數(shù)據(jù)加密過程、數(shù)據(jù)存儲轉(zhuǎn)移過程比較耗時(shí),實(shí)際測得速率保持在1.1 MB/s,即1 min可以采集66 MB的數(shù)據(jù),載流量分析軟件每1 min采集1次數(shù)據(jù),每3 min分析1次數(shù)據(jù),上位機(jī)與下位機(jī)之間通信與數(shù)據(jù)交互的數(shù)據(jù)量較少,實(shí)際速率能滿足系統(tǒng)軟件實(shí)時(shí)性要求。
圖8 數(shù)據(jù)傳輸示意圖Fig.8 Data transmission schematic
綜合安全模塊采用USB與PC主機(jī)連接,將STM32微控制器內(nèi)置SRAM虛擬成U盤,設(shè)計(jì)了免驅(qū)動(dòng)的便攜式數(shù)據(jù)通道,保證了安全模塊的實(shí)用性和通用性,然后設(shè)計(jì)了上位機(jī)與下位機(jī)通信規(guī)約,實(shí)現(xiàn)了安全可靠的數(shù)據(jù)通信。本文以載流量分析軟件為應(yīng)用實(shí)例,實(shí)現(xiàn)了對電纜載流量分析軟件的版權(quán)保護(hù)、核心數(shù)據(jù)加密及穩(wěn)定運(yùn)行監(jiān)控功能,取得了很好的使用效果。
[1] 魏光村,孫忠林,徐燕妮.軟件加密技術(shù)研究[J].福建電腦,2006(9):44-45.
[2] 任克強(qiáng),劉暉.單片機(jī)系統(tǒng)硬件及軟件加密技術(shù)[J].電子設(shè)計(jì)應(yīng)用,2003(7):61-63.
[3] 王海春,李均,鄧珊.基于混沌加密的RFID認(rèn)證協(xié)議設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2015(11):206-207,209.
[4] 信侃.基于Cadence軟件的高速AD電路設(shè)計(jì)與仿真[D].哈爾濱:哈爾濱工業(yè)大學(xué),2008.
[5] 童詩白,華成英.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006.
[6] 范文慶,周彬彬,安靖.精通Windows API:函數(shù)、接口、編程實(shí)例[M].北京:人民郵電出版社,2009.
[7] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].北京:電子工業(yè)出版社,2008.
[8] 方旭.基于STM32處理器和PC主機(jī)的USB通信協(xié)議的實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2009.
[9] 劉愛東,張永強(qiáng),楊健,等.USB設(shè)備互連通信協(xié)議設(shè)計(jì)[J].電光與控制,2011,18(1):69-72.
[10] 胡方家,周雙娥,曾軍.基于可靠度的循環(huán)冗余校驗(yàn)算法[J].計(jì)算機(jī)應(yīng)用,2015,35(3):629-632.
DesignandApplicationofaComprehensiveSoftwareSecurityModuleBasedonUSB
ZHANG Chao-chao, CHEN Yuan-lin, LU Na, AN Bo-wen
(Information Engineering College,Shanghai Maritime University,Shanghai 201306,China)
A software security module is designed,which is an external hardware module,and can provide such functions as copyright authentication,kernel data encryption,stable operation monitoring and so on.The external module uses USB to connect with host PC,and a free driver portable data channel is achieved by taking the microcontroller of security module as a virtual USB mass storage device.A communication protocol is designed for use between the security module and PC based on packets layered communication protocol stack,and thus to implement safe and reliable data communication.The usage of the security module is illustrated by taking the software for cable ampacity analysis as an application example.
data encryption; data communication; USB; copyright protection; communication protocol; ampacity analysis
TP309
A
1671-637X(2017)03-0093-05
2016-03-31
2016-04-18
章超超(1990 —),男,安徽蕪湖人,碩士生,研究方向?yàn)榍度胧綉?yīng)用、光纖通信。