文獻標(biāo)識碼: A
文章編號: 0258-7998(2012)02-0028-03
目前,,U盤等USB移動存儲載體由于其容量大,、價格低、攜帶方便,、可靠性高等優(yōu)點,,得到了越來越廣泛的應(yīng)用,在生活,、工作中隨處可見,。然而,USB移動存儲載體的便利性及其自身安全脆弱性的矛盾十分突出,。
本文針對U盤的安全隱患,,分析目前較為常見的解決方法,利用SoPC技術(shù),,設(shè)計實現(xiàn)了一款基于NiosⅡ處理器的U盤安全控制器,。該控制器位于PC機和U盤之間,通過對U盤進行扇區(qū)級的加解密操作,,將普通U盤升級為安全U盤,,保證U盤中數(shù)據(jù)的安全性??刂破髯裱璘SB MassStorage類協(xié)議,,無需專用驅(qū)動,即插即用,,具有靈活方便,、安全性高等優(yōu)點[1]。
1 安全控制器的整體設(shè)計
1.1 安全U盤解決方案分析
U盤最為突出的安全問題是其內(nèi)部所存儲的數(shù)據(jù)都以明文形式存儲,,任何人得到該存儲載體,,即可對其中的數(shù)據(jù)進行任意的操作。因此,,普通U盤一旦丟失,,其存儲的數(shù)據(jù)則毫無安全性可言。針對這一問題,,目前已經(jīng)有多種解決方法,,其中較為常見、安全性較高的是采用專用安全U盤的方法,。
專用安全U盤的硬件架構(gòu)如圖1所示,,主要由微處理器、存儲芯片(NandFlash),、USB模塊及加解密模塊等組成[2],。當(dāng)U盤和PC機進行數(shù)據(jù)傳輸時,加解密模塊在微處理器的控制下對數(shù)據(jù)流進行加解密操作,使得U盤存儲芯片中的數(shù)據(jù)都以密文形式存在,。當(dāng)PC機對數(shù)據(jù)進行讀寫時,,首先需要進行身份認證,若認證不通過,,則讀寫操作不能進行,,即使攻擊者將安全U盤物理分解,直接讀取存儲芯片,,而由于存儲芯片中的數(shù)據(jù)是以密文形式存在的,,攻擊者也只能獲得數(shù)據(jù)的密文。安全U盤通過加解密和認證相結(jié)合的方法,,保證其存儲數(shù)據(jù)的安全性,。
專用安全U盤由于保密性高的優(yōu)勢,在一些特殊場合得到了廣泛的應(yīng)用,。然而安全U盤也有自身的不足,,主要表現(xiàn)在:
(1)成本高。與普通U盤相比,,安全U盤硬件構(gòu)造復(fù)雜,,成本通常為普通U盤的數(shù)倍乃至數(shù)十倍。
(2)開發(fā)難度大,。安全U盤開發(fā)涉及USB協(xié)議,、加解密算法、密鑰保護方案,、NandFlash讀寫等,,其涉及面廣、開發(fā)周期長,、工作量大。
(3)密鑰,、算法,、數(shù)據(jù)保存在同一載體中。若安全U盤丟失,,則直接導(dǎo)致密鑰,、算法和數(shù)據(jù)一起丟失,不但增大了數(shù)據(jù)被破解的可能性,,而且有可能導(dǎo)致密碼算法的丟失,。
1.2 U盤安全控制器的系統(tǒng)設(shè)計
本文借鑒安全U盤的優(yōu)缺點,按照方便快捷,、安全性高的原則,,利用SoPC技術(shù),設(shè)計實現(xiàn)了U盤安全控制器。片上可編程系統(tǒng)SoPC技術(shù)是基于可編程編輯器件PLD解決方案的片上系統(tǒng)(SoC),。SoPC是PLD和ASIC技術(shù)融合的結(jié)果,,是一種軟硬件協(xié)同設(shè)計技術(shù)。SoPC可以方便地將硬件系統(tǒng)(包括處理器,、存儲器,、外設(shè)和自定義邏輯電路等)和固件集成到一個PLD器件上,構(gòu)建成一個可編程的片上系統(tǒng),,具有設(shè)計靈活,、可裁剪、易升級,、可編程等優(yōu)點,,同時還有豐富的IP核資源可供使用[3]。
本文所設(shè)計的安全控制器系統(tǒng)架構(gòu)如圖2所示,,安全控制器位于PC機和U盤之間,,主要由USB Device模塊、USB Host模塊,、微處理器,、緩沖區(qū)、加解密模塊等組成,??刂破鲗τ赑C機表現(xiàn)為一個USB大容量存儲(MassStorage)類設(shè)備,而對于U盤,,則表現(xiàn)為一個USB Host,。USB Device模塊負責(zé)接收PC機的命令和數(shù)據(jù),USB Host模塊負責(zé)向U盤等USB發(fā)送命令和數(shù)據(jù),,加解密模塊則完成數(shù)據(jù)的加解密,,整個系統(tǒng)在微處理器的控制下工作。
2 安全控制器硬件架構(gòu)的設(shè)計實現(xiàn)
本設(shè)計采用USB接口芯片+FPGA的方案來實現(xiàn)安全控制器的硬件架構(gòu),,通過微處理器器對USB接口芯片的控制即可實現(xiàn)USB通信,。采用USB接口芯片有助于降低開發(fā)費用,縮短系統(tǒng)的開發(fā)周期,。
2.1 USB接口芯片選型
本設(shè)計中,,安全控制器既要實現(xiàn)USB Host的功能,又要實現(xiàn)USB Device的功能,。因此,,若能采用一片USB接口芯片實現(xiàn)兩者的功能,則有助于降低硬件系統(tǒng)的復(fù)雜性,。綜合USB芯片的功能需求,、價格,、硬件復(fù)雜性等因素,本設(shè)計選用NXP公司的ISP1761作為USB接口芯片,。
ISP1761是一個單芯片的高速USB OTG 控制器,,在其單芯片上集成了一個OTG控制器、一個主機控制器和一個外設(shè)控制器,,主機和外設(shè)控制器兼容USB2.0協(xié)議,,并支持480 Mb/s的高速傳輸。ISP1761有3個USB接口,,接口1可以被配置為Host接口,、Device接口或者OTG接口,接口2,、3只能被配置為Host接口,。在OTG模式下,ISP1761的接口1可通過跳線靈活配置成Host接口或Device接口,。ISP1761可以直接與目前市場上的大多數(shù)帶尋址功能的微處理器直接連接,,微處理器通過讀寫ISP1761內(nèi)部的寄存器或存儲器即可實現(xiàn)USB通信功能。ISP1761支持DMA傳輸,,可以提高數(shù)據(jù)的吞吐率[4],。
2.2 控制器整體硬件架構(gòu)
安全控制器整體硬件架構(gòu)如圖3所示,由SoPC模塊和ISP1761芯片及按鍵組成,。SoPC模塊使用Altera公司提供的開發(fā)工具SoPC Builder生成,,主要由NiosⅡ控制器、內(nèi)存,、加解密模塊,、JTAG、ISP1761控制器,、鎖相環(huán),、PIO控制器和DMA控制器組成。
NiosⅡ控制器作為整個系統(tǒng)的核心,,完成對各個模塊的調(diào)度和控制,;鎖相環(huán)為系統(tǒng)各個模塊提供所需要的時鐘;加解密模塊完成數(shù)據(jù)流的加解密功能,;ISP1761控制器則用來連接NiosⅡ控制器和ISP1761芯片,通過該控制器,,NiosⅡ處理器可以訪問ISP1761芯片內(nèi)部的寄存器和存儲器,;DMA控制器負責(zé)PC機到控制器、控制器到U盤的數(shù)據(jù)傳輸,,提高數(shù)據(jù)傳輸速率,。ISP1761芯片分別連接主機和U盤,,在NiosⅡ的控制下實現(xiàn)USB Host接口和USB Device接口的功能。
3 安全控制器固件的設(shè)計實現(xiàn)
3.1 固件模塊及層次的劃分
安全控制器固件實際上是運行于NiosⅡ處理器上的COS(Chip Operating System),,主要負責(zé)監(jiān)控USB Host接口及USB Device接口的狀態(tài),,解析PC機發(fā)出的命令,對系統(tǒng)各個模塊進行調(diào)度,,實現(xiàn)PC機到U盤間的數(shù)據(jù)通信,,完成數(shù)據(jù)流的加解密。
安全控制器固件主要包括初始化模塊,、USB Host模塊,、USB Device模塊、DMA模塊,、密碼模塊等,。各模塊的功能如下:
(1)初始化模塊:安全控制器系統(tǒng)的啟動;ISP1761芯片接口的配置,,將接口1配置成USB Host接口,,接口2配置成USB Device接口。
(2)USB Host模塊[5]:檢測USB接口芯片Host接口的狀態(tài),,檢測U盤的插入和移除等,;向插入的USB設(shè)備發(fā)出標(biāo)準(zhǔn)的USB標(biāo)準(zhǔn)命令,獲取設(shè)備描述符,、配置描述符,、接口描述符、端點描述符等,;向插入的USB設(shè)備發(fā)出USB MassStorage類命令,,獲取設(shè)備的容量等基本信息及對設(shè)備進行讀寫操作。
(3)USB Device模塊:向PC機報告USB設(shè)備的插入,;響應(yīng)PC機發(fā)出的標(biāo)準(zhǔn)的USB命令,,返回相應(yīng)的數(shù)據(jù),如各種描述符等,。此時返回的描述符應(yīng)為安全控制器的描述符,;響應(yīng)PC機發(fā)出的USB MassStorage命令,返回設(shè)備的基本信息,,此時返回的基本信息應(yīng)為U盤的信息,。
(4)加解密模塊[6]:身份認證方案的實現(xiàn),如用戶口令的保存,、更改等,;加解密算法的高速實現(xiàn)及密鑰的保護等。
(5)DMA模塊:DMA控制器的配置,、啟動等,。
安全控制器固件層次劃分如圖4所示,,主要包括硬件抽象層、USB協(xié)議層和批量傳輸層,。硬件抽象層主要實現(xiàn)NiosⅡ處理器對外設(shè)的讀寫以及對ISP1761芯片內(nèi)部寄存器和存儲器的訪問,;USB協(xié)議層通過對ISP1761芯片的控制實現(xiàn)USB協(xié)議;批量傳輸層則實現(xiàn)MassStorage類的操作,,通過Bulk-In和Bulk-Out端點,,完成CBW、數(shù)據(jù),、CSW的傳輸,。安全控制器在批量傳輸層對數(shù)據(jù)進行扇區(qū)級的加解密操作,不進行文件系統(tǒng)級的解析,。
3.2 整體工作流程
以一次PC機向U盤寫數(shù)據(jù)的過程為例,,U盤安全控制器的工作流程如圖5所示。
(1)U盤安全控制器初始化,;
(2)循環(huán)檢測ISP1761芯片Host接口的狀態(tài),,判斷是否有USB設(shè)備插入;
(3)若檢測到USB設(shè)備,,判斷設(shè)備是否是USB MassStorage類設(shè)備,;
(4)若是USB MassStorage類設(shè)備,則向PC機報告設(shè)備的插入,,否則返回步驟(2),;
(5)安全控制器響應(yīng)PC機發(fā)出的命令,包括USB標(biāo)準(zhǔn)命令和Mass Storage類命令,,返回描述符及所插入設(shè)備的基本信息,;
(6)PC機發(fā)出寫(Write10)命令及數(shù)據(jù),安全控制器將數(shù)據(jù)加密,,然后向U盤轉(zhuǎn)發(fā)寫命令及加密后的數(shù)據(jù),;
(7)一次傳輸過程結(jié)束。
本文針對USB存儲設(shè)備的安全問題,,利用SoPC技術(shù),,設(shè)計實現(xiàn)了U盤安全控制器,并在terasic公司的DE3開發(fā)板上得到驗證,。結(jié)果表明,,該控制器將普通U盤升級為安全U盤,保證U盤中的數(shù)據(jù)都以密文形式存在,,方便快捷,、安全性高,具有廣泛的應(yīng)用前景,。下一步重點是研究密碼方案,,如身份認證方案的設(shè)計、密鑰的保護及加解密算法的高速實現(xiàn)等,。
參考文獻
[1] 王威.具有身份認證及數(shù)據(jù)加密U盤的研究與實現(xiàn)[D]. 沈陽:沈陽航空工業(yè)學(xué)院,,2010.
[2] 李亞強.基于Z8HM2芯片的加密U盤的設(shè)計[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010.
[3] SoPC Builder Data Sheet[EB/OL].[2011-08-15].http://www.altera.com.cn/literature/lit-index.html.
[4] ISP1761 user manual[EB/OL].[2011-08-10].http://www.doc88.com/p-5420112991.html.
[5] 董揚生.USB主機在嵌入式系統(tǒng)中的應(yīng)用[D].南京:南京理工大學(xué),,2008.
[6] LIBERATORI M,,OTERO F B.AES-128 cipher high speed,low cost FPGA implementation[C].2007 3RD Southern Conference on Programmable Logic,,2007(12):195-198.