信息安全對(duì)于企業(yè)、政府、國(guó)防等部門(mén)有著極其重要的意義。一般現(xiàn)有的認(rèn)證方法都通過(guò)存儲(chǔ)介質(zhì)保存密碼,使用比較器比對(duì)輸入密碼正確與否,此方法保密性差,易于破解。本文通過(guò)特有的MEMS強(qiáng)鏈和百萬(wàn)門(mén)級(jí)的FPGA來(lái)對(duì)SATA硬盤(pán)進(jìn)行身份認(rèn)證。實(shí)現(xiàn)物理加密。密碼轉(zhuǎn)換為相應(yīng)的密鑰并以機(jī)械結(jié)構(gòu)的形式成為MEMS強(qiáng)鏈的核心部位,即根據(jù)齒輪組的運(yùn)行完成對(duì)密碼的比較,來(lái)完成對(duì)口令的驗(yàn)證,利用PCI9054芯片快速完成對(duì)口令和MEMS返回值的傳輸.根據(jù)密碼所形成的控制流由FPGA對(duì)MEMS強(qiáng)鏈進(jìn)行控制。整個(gè)系統(tǒng)快速、簡(jiǎn)潔、安全性高。 1 系統(tǒng)的總體構(gòu)成 該系統(tǒng)由主機(jī)、物理認(rèn)證的FPCA專(zhuān)用板和MEMS強(qiáng)鏈組成,其中主機(jī)里面裝有連接和掃面模塊和用于存儲(chǔ)重要數(shù)據(jù)的SATA硬盤(pán);物理認(rèn)證FPGA專(zhuān)業(yè)板包括:PCI控制器、FPGA、SATA硬盤(pán)、EEPROM PCI配置芯片、MEMS控制模塊、密碼處理模塊和MEMS密碼鎖驅(qū)動(dòng)電路等構(gòu)成。圖1描述了整個(gè)系統(tǒng)的硬件布局。 ![]() 圖1 系統(tǒng)結(jié)構(gòu)框架圖 本文使用MEMS密碼鎖特有的機(jī)械結(jié)構(gòu)產(chǎn)生相應(yīng)的反饋信號(hào),用此反饋信號(hào)參與物理認(rèn)證系統(tǒng)。計(jì)算機(jī)中裝有兩塊硬盤(pán),一塊硬盤(pán)直接與主板IDE口相連。其中裝有操作系統(tǒng),數(shù)據(jù)是普通數(shù)據(jù),進(jìn)入不需要物理認(rèn)證,可以直接讀取。另一塊是SATA硬盤(pán),它通過(guò)連接和控制模塊與主板SATA接口相連,開(kāi)機(jī)后,由于與硬盤(pán)相連的數(shù)據(jù)線是斷開(kāi)狀態(tài),則該硬盤(pán)不可見(jiàn)。此硬盤(pán)需通過(guò)MEMS密碼鎖認(rèn)證,若認(rèn)證通過(guò),產(chǎn)生一個(gè)反饋信號(hào),此反饋信號(hào)由物理認(rèn)證的FPGA專(zhuān)用板通過(guò)PCI控制器傳給主機(jī),主機(jī)來(lái)對(duì)反饋值進(jìn)行判斷,若密碼正確,主機(jī)開(kāi)啟連接和掃描硬件模塊,把與SATA硬盤(pán)相連的數(shù)據(jù)線接上,同時(shí)進(jìn)行掃描硬件改動(dòng),這樣SATA硬盤(pán)就被系統(tǒng)識(shí)別。 主窗口顯示從鍵盤(pán)輸入密碼,然后主機(jī)通過(guò)插在PCI插槽上的PCI控制器,PCI控制器主要是由PLX公司的PCI9054芯片構(gòu)成,它和FPGA都受板上50MHz系統(tǒng)時(shí)鐘的控制。通過(guò)PCI控制器把密碼傳輸?shù)紽PGA內(nèi)部的PCI本地控制器,由PCI本地控制器將密碼傳給FPGA,由FPGA根據(jù)得到的密碼來(lái)驅(qū)動(dòng)MEMS驅(qū)動(dòng)電路,MEMS驅(qū)動(dòng)電路驅(qū)動(dòng)MEMS強(qiáng)鏈根據(jù)輸入的密碼來(lái)運(yùn)行,如果密碼正確,也就是驅(qū)動(dòng)電路的指令與MEMS強(qiáng)鏈內(nèi)部結(jié)構(gòu)固化的密碼一樣,密碼鎖就能正確走完,然后返回Ox000000FF(十進(jìn)制的255);如果密碼錯(cuò)誤,MEMS強(qiáng)鏈被卡死,并返回0。同時(shí)PCI本地控制器將返回值再通過(guò)PCI9054傳送回主機(jī),并在主窗口上顯示。如果返回信號(hào)是0x000000FF的話,啟動(dòng)聯(lián)接控制程序,實(shí)現(xiàn)掃描資源管理器,接通SATA硬盤(pán),正常傳輸數(shù)據(jù)。 2 MEMS強(qiáng)鏈與其相關(guān)的控制模塊 MEMS強(qiáng)鏈的棘爪能卡住棘輪,從而能精確定位到固定的位置,棘爪裝有電磁驅(qū)動(dòng)型電機(jī),使其具有誤碼鑒別與自復(fù)位功能,因而可用于信息安全,實(shí)現(xiàn)密碼鎖的功能。鑒碼機(jī)構(gòu)由兩組電磁型微步進(jìn)電機(jī)驅(qū)動(dòng)反十涉齒輪集A和B,反干涉碼輪集中機(jī)械周化了密碼。反干涉齒輪集在正確解碼時(shí),碼齒之間互相沒(méi)有接觸;當(dāng)出現(xiàn)錯(cuò)碼時(shí),碼齒相互干涉,反干涉齒輪集卡死。使用光電耦合機(jī)構(gòu),在正確接收到24位密碼時(shí)光電能量耦合,系統(tǒng)開(kāi)啟。圖2是MSMS強(qiáng)鏈結(jié)構(gòu)圖。 ![]() 圖2 MEMS強(qiáng)鏈組織結(jié)構(gòu)圖 MEMS密碼鎖控制模塊以PCI協(xié)議通訊方式與FPGA和MEMS密碼鎖驅(qū)動(dòng)電路進(jìn)行通訊,它是用Verilog HDL語(yǔ)占寫(xiě)的控制FPGA運(yùn)行的指令模塊,它存儲(chǔ)在EPCS1中,系統(tǒng)上電后開(kāi)始工作。EEPROM PCI配置芯片通過(guò)內(nèi)部的PCI驅(qū)動(dòng)程序正確驅(qū)動(dòng)PCI控制器.完成主機(jī)與PCI控制器控制信號(hào)、地址線和數(shù)據(jù)線的配置,使PCI控制器正常工作,PCI控制器把PCI總線上的指令轉(zhuǎn)化為PCI局部總線端指令,由局部總線指令控制I/O擴(kuò)展芯片,I/O擴(kuò)展芯片根據(jù)局部總線指令輸出控制字到MEMS密碼鎖驅(qū)動(dòng)電路驅(qū)動(dòng)MEMS密碼鎖解碼,解碼的同時(shí)MEMS密碼鎖反饋信號(hào),密碼處理模塊讀取MEMS密碼鎖發(fā)來(lái)的反饋信號(hào),判斷正確碼或是錯(cuò)誤碼的來(lái)臨,若取得32位正確碼,發(fā)送反饋信號(hào)到FPGA,F(xiàn)PGA把獲得的反饋值經(jīng)PCI控制器傳給主機(jī),主機(jī)啟動(dòng)聯(lián)接和掃描硬件模塊,SATA硬盤(pán)被系統(tǒng)識(shí)別。 3 PCI控制器 PCI控制器主要由PCI9054芯片和EEPROM PCI芯片組成。它支持主模式、從模式、DMA傳輸方式。本文利用PCI9054在C模式下傳輸32位的密碼和32位返回值。工作時(shí)間的寫(xiě)入時(shí)序圖如圖3。本地總線周期可是是single周期或突發(fā)周期,BLAST# 信號(hào)被用于決定是一個(gè)single周期被執(zhí)行還是一個(gè)突發(fā)周期被執(zhí)行。本地總線Initiator(本地總線訪問(wèn)內(nèi)存和I/O)訪問(wèn)PCI9054必須是對(duì)32位non-pipelined總線才可以。其中,LA是地址總線;LD是數(shù)據(jù)總線;LBE是字節(jié)使能信號(hào)。 ![]() 圖3 PCI Initiator狀態(tài)下寫(xiě)時(shí)序圖 BLAST#、READY#、ADS#和FPGA相連。只有在ADS信號(hào)在高電平,BLAST在低電平,LWR為高電平。LA[31:2]為高時(shí),表明PCI9054開(kāi)始一個(gè)有效的寫(xiě)數(shù)據(jù)周期,同時(shí),F(xiàn)PGA使寫(xiě)標(biāo)志有效,并把數(shù)據(jù)放到本地總線上,此時(shí)本地總線上才接收到由外部總線上寫(xiě)入的數(shù)據(jù)。只有在ADS信號(hào)為高,BLAST為低,LWR信號(hào)為低,同時(shí)LA[3l:2]接受到地址時(shí),表明PCI9054開(kāi)始一個(gè)有效的讀數(shù)據(jù)周期,同時(shí),下位機(jī)的FPGA使讀使能有效,并把返回值放到本地總線上,LD[3l:0]才能接收到數(shù)據(jù)。 EEPROM PCI配置芯片與PCI控制器直接相連。通過(guò)存儲(chǔ)在配置芯片內(nèi)部的PCI驅(qū)動(dòng)程序正確驅(qū)動(dòng)PCI控制器,完成主機(jī)與PCI控制器控制信號(hào)、地址線和數(shù)據(jù)線的配置,使PCI控制器正常工作。 4 Altera Cyclone FPGA Cyclone系列現(xiàn)場(chǎng)可編程門(mén)陣列是基于1.5V,O.13μm.全銅互聯(lián)SRAM T藝,最高內(nèi)嵌20,060個(gè)邏輯單元、最大288 Kbits RAM。內(nèi)置鎖相環(huán)和一個(gè)專(zhuān)用雙倍速率(DDR)界面支持用以雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR SDRAM)和快速循環(huán)動(dòng)態(tài)隨機(jī)存儲(chǔ)器(FCRAM,Cyclone可以提供低功耗的數(shù)據(jù)鏈路解決方案。cvclone支持多種標(biāo)準(zhǔn)的I/O(輸入輸出),支持ASSP和ASIC設(shè)備。支持多種IP核。 5 SATA硬盤(pán) SATA,是由Intel、IBM、Dell、APT、Maxtor和Seagate公司共同提出的硬盤(pán)接口規(guī)范。SATA規(guī)范將硬盤(pán)的外部傳輸速率理論值提高到了150MB/s。SATA的優(yōu)勢(shì)是支持熱插拔,傳輸速度快,執(zhí)行效率高等。 熱插拔是最希望看到的功能,但是現(xiàn)在的SATA硬盤(pán)的熱插拔并不是想象中的把硬盤(pán)在開(kāi)機(jī)的狀態(tài)下接入主機(jī),就能正常的傳輸數(shù)據(jù),而是需要啟動(dòng)資源管理器,進(jìn)行“掃描檢測(cè)硬件改動(dòng)”的操作后才能正常識(shí)別硬盤(pán)盤(pán)符。根據(jù)這個(gè)情況,本文設(shè)計(jì)了“連接與掃描硬件改動(dòng)模塊”代替手動(dòng)的“掃描檢測(cè)硬件改動(dòng)”操作。該硬盤(pán)有數(shù)據(jù)線和電源線,在開(kāi)始的時(shí)候,只接通電源線,用軟件來(lái)控制數(shù)據(jù)線是否連接,當(dāng)物理認(rèn)證通過(guò)后,主機(jī)啟動(dòng)連接和掃面硬件模塊,連接上數(shù)據(jù)線。然后使主機(jī)自動(dòng)枚舉檢測(cè)所有的硬件,看是否有新硬件安裝,有就使其正常聯(lián)接使用。若密碼錯(cuò)誤,主機(jī)不啟動(dòng)該模塊,繼續(xù)保持?jǐn)?shù)據(jù)線斷開(kāi),SATA硬盤(pán)還是不可見(jiàn)。 6 軟件實(shí)現(xiàn) 軟件有兩部分,首先是上位機(jī)控制部分,該部分是用VC++寫(xiě)的上位機(jī)窗口對(duì)話框和聯(lián)接控制程序;下位機(jī)控制部分主要是本地PCI控制程序、FPGA驅(qū)動(dòng)程序以及MEMS強(qiáng)鏈控制程序,該部分是用verilog HDL編寫(xiě),調(diào)試成功之后燒寫(xiě)在與FPGA相連的只讀存儲(chǔ)器EPCS1里面。上位機(jī)和下位機(jī)的控制程序通過(guò)PCI9054有機(jī)的聯(lián)接在一起。 首先用戶點(diǎn)擊主窗口的用戶對(duì)話框,在上面的編輯框內(nèi)輸入密碼,點(diǎn)擊“確認(rèn)”按鈕,主機(jī)將數(shù)據(jù)放在總線上,同時(shí)FPGA內(nèi)部的本地總線控制器不斷的檢測(cè)ADS信號(hào),BLAST信號(hào),LWR讀寫(xiě)信號(hào)信號(hào),和LA[3l:2]地址總線信號(hào),當(dāng)他們滿足寫(xiě)有效時(shí),表明FPGA可以接收數(shù)據(jù),于是數(shù)據(jù)通過(guò)本地總線將密碼數(shù)據(jù)傳到FPCA內(nèi)部指定的寄存器里面,同時(shí)由MEMS控制模塊根據(jù)所得的密碼來(lái)控制MEMS強(qiáng)鏈,若密碼與MEMS強(qiáng)鏈內(nèi)部結(jié)構(gòu)密碼一致,MEMS強(qiáng)鏈走完全程,F(xiàn)PGA返回八位1(即十進(jìn)制的255),接著啟動(dòng)連接和掃描硬件程序掃描硬件,SATA硬盤(pán)就被系統(tǒng)識(shí)別,所加密硬盤(pán)的盤(pán)符在我的電腦中顯現(xiàn)。如果密碼錯(cuò)誤的話,MEMS強(qiáng)鏈被卡死,返回0。為了增加可視化.本地總線控制器當(dāng)檢驗(yàn)到ADS信號(hào),BLAST信號(hào),LWR信號(hào).和LA[3l:2]讀有效時(shí)將返回值返回到主窗口的“返回值”編輯框中。 當(dāng)輸入正確的密碼,這里我們?cè)O(shè)置的正確密碼是12345678,上位機(jī)先把密碼傳如到下位機(jī)存儲(chǔ)起來(lái),時(shí)序圖見(jiàn)圖4,ld數(shù)據(jù)總線上的數(shù)據(jù)是12345678,當(dāng)密碼與固化的密碼比較以后,正確的話返回255,如圖5所示。 ![]() 圖4 寫(xiě)入正確密碼仿真時(shí)序圖 ![]() 圖5 正確密碼返回值的仿真時(shí)序圖 7 結(jié)束語(yǔ) 該系統(tǒng)已經(jīng)初步實(shí)現(xiàn)了主機(jī)、硬盤(pán)、FPGA之間的控制信號(hào)、應(yīng)答信號(hào)、讀寫(xiě)信號(hào),及這些信號(hào)協(xié)調(diào)工作完成安全認(rèn)證和加密的工作機(jī)理和硬件實(shí)現(xiàn)技術(shù)方案。該系統(tǒng)基于先進(jìn)的FPGA芯片和特有的MEMS強(qiáng)鏈,利用PCI接口進(jìn)行通信。這樣可以把整個(gè)系統(tǒng)做成一個(gè)小巧的認(rèn)證卡裝在主機(jī)上,使系統(tǒng)美觀,便于攜帶。 本文的創(chuàng)新點(diǎn):l、將密碼轉(zhuǎn)換為MEMS強(qiáng)鏈的內(nèi)部結(jié)構(gòu)實(shí)現(xiàn)真正的物理加密;2、利用PCI接口實(shí)現(xiàn)主機(jī)與FPGA的數(shù)據(jù)交換,速度更快,穩(wěn)定性更好;3、利用FPGA和MEMS驅(qū)動(dòng)電路來(lái)控制MEMS強(qiáng)鏈.可靠性高。 作者:許鵬,張衛(wèi)平,陳文元 來(lái)源:《微計(jì)算機(jī)信息》(嵌入式與soc)2009年第5-2期 |