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