緒論 信息安全的解決方案目前主要集中于采取單一的措施來(lái)保證信息的安全性,針對各種攻擊手段,防范措施主要集中于信息加密技術(shù)、安全交換機技術(shù)、防火墻技術(shù)、認證技術(shù),入侵檢測技術(shù)等,這些技術(shù)從不同的方面對安全性提供了較好的保障,但各有缺點(diǎn)和不足,這將成為網(wǎng)絡(luò )防護的軟肋,因此,本文也嘗試性地提出了一種集數據加密技術(shù)和訪(fǎng)問(wèn)控制策略于一體的信息安全解決方案。 加密算法的硬件實(shí)現具有高速率、高可靠性、高安全等特點(diǎn),因此,加密算法在FPGA平臺中實(shí)現是一種很好的硬件實(shí)現方案。本文在xilinx公司的spartan-3e平臺中構建一個(gè)嵌入式系統來(lái)實(shí)現安全網(wǎng)絡(luò )通信。 系統設計 該系統主要針對信息傳輸過(guò)程中存在信息泄露、信息篡改、非法用戶(hù)入侵等安全威脅而設計的一套基于FPGA平臺的網(wǎng)絡(luò )信息安全傳輸系統。該系統采用客戶(hù)機/服務(wù)器模式,因此,系統主要包括兩個(gè)部分:客戶(hù)端和服務(wù)器端?蛻(hù)端作為整個(gè)系統的控制中心,根據實(shí)際需要,向服務(wù)器端發(fā)送請求,并顯示接收到的信息。服務(wù)器端響應客戶(hù)端的請求,發(fā)送相應信息。服務(wù)器端和客戶(hù)端之間的信息都是經(jīng)過(guò)加密后進(jìn)行傳輸的,保證信息的安全可靠性。 系統服務(wù)器端設計 服務(wù)器端采用XILINX公司的Spartan-3e開(kāi)發(fā)平臺,在該平臺上構建基于MicrBlaze處理器和Xilkernel操作系統的嵌入式系統,在該系統中通過(guò)定制AES加密IP、鍵盤(pán)IP、LCDIP、通用擴展接口控制IP并添加EDK中自帶的網(wǎng)絡(luò )控制器IP、串口IP等,服務(wù)器端的系統結構框圖如圖1所示。當服務(wù)器端收到經(jīng)過(guò)AES加密的請求IP數據包時(shí),在服務(wù)器端,信息需要經(jīng)過(guò)AES解密處理,根據解密后信息分析并提取請求方的ID信息和IP信息,客戶(hù)端的ID信息是唯一的授權證號,根據客戶(hù)端的ID信息,作出相應的處理。 圖1 服務(wù)器端的系統結構框圖 系統服務(wù)器端設計 客戶(hù)端同樣采用XILINX公司的Spartan-3e開(kāi)發(fā)平臺,但該系統中只需要定制AES加解密IP、鍵盤(pán)IP、LCDIP并添加EDK中自帶的網(wǎng)絡(luò )控制器IP,客戶(hù)端的系統結構框圖如圖2-2圖所示?蛻(hù)端作為整個(gè)系統的控制中心,當需要采集信息時(shí),客戶(hù)端經(jīng)md5算法形成自己的唯一授權ID,指令信息和ID信息經(jīng)過(guò)AES加密后發(fā)送至服務(wù)器端,當服務(wù)器端響應其請求后,視其身份權限做出相應處理。 圖2 客戶(hù)端的系統結構框圖 系統具體實(shí)現 該系統采用模塊化設計實(shí)現,系統包括客戶(hù)端和服務(wù)器端。系統客戶(hù)端和服務(wù)器端的實(shí)現都是基于xilinx公司的spartan-3e平臺來(lái)實(shí)現的。 系統服務(wù)器端實(shí)現 ·AES算法的硬件實(shí)現 AES算法是一種迭代分組密碼,采用的是代替/置換網(wǎng)絡(luò )(SP)。AES加密算法的實(shí)現包括密鑰擴展過(guò)程和加密過(guò)程。AES解密算法的實(shí)現包括密鑰擴展過(guò)程和解密過(guò)程。解密過(guò)程與加密過(guò)程類(lèi)似,是加密過(guò)程的逆運算,AES加解密過(guò)程如圖3所示。 圖3 AES加解密過(guò)程 AES加解密算法通過(guò)硬件描述語(yǔ)言來(lái)實(shí)現,在該系統中采用VHDL語(yǔ)言編寫(xiě)代碼。根據AES加解密算法的相似性,很多電路模塊可以共用,其占用資源可以盡可能的少。在該系統中采用密鑰長(cháng)度和分組數據塊長(cháng)度都為128bits,輸入信息都為字符型的數據,采用對字符加解密,因此,每一個(gè)字符都將對應其ASCII值輸入。AES加解密實(shí)現主要有4個(gè)模塊:控制模塊、AES加解密運算實(shí)現模、SBOX模塊、密鑰操作模塊,實(shí)現的框圖如圖3-2圖所示。 AES加解密模塊的實(shí)現經(jīng)過(guò)ISE 綜合后占用資源利用情況如表1所示。 表1 AES加解密資源利用表 圖4 AES加解密實(shí)現框圖 ·接口模塊的實(shí)現 服務(wù)器端采用Spartan-3e平臺擴展了PS2接口、16X2的LCD液晶顯示,3個(gè)6針的通用擴展接口,這些接口方便了外設的連接和擴展。鍵盤(pán)在該系統中實(shí)現了單向通信,擴展接口模塊通過(guò)平臺通用擴展接口J1、J2、J3與外接設備進(jìn)行信息交互。Spartan-3e平臺通過(guò)串口DTE和GSM模塊進(jìn)行通信,將相應的信息通過(guò)短信的方式發(fā)送到指定手機中。 各個(gè)接口模塊通過(guò)EDK添加自定義IP的方式添加到OPB總線(xiàn)中,其中鍵盤(pán)、LCD、串口DTE使用中斷。驅動(dòng)程序在自動(dòng)生成的驅動(dòng)程序模板基礎上完成各個(gè)模塊的驅動(dòng)程序。 ·網(wǎng)絡(luò )安全檢測及報警實(shí)現 服務(wù)器端通過(guò)添加EDK中網(wǎng)絡(luò )控制器IP核,移植LwIP網(wǎng)絡(luò )協(xié)議棧,實(shí)現基于SOCKET的網(wǎng)絡(luò )通信。服務(wù)器端收到客戶(hù)端請求時(shí),對接收到的IP數據包進(jìn)行解密,對請求的IP數據包進(jìn)行分析,提取對應的ID信息和IP信息,由于該ID信息是經(jīng)過(guò)md5算法產(chǎn)生的,因此該ID作為授權客戶(hù)的唯一ID,根據ID信息與授權的ID列表進(jìn)行比較,若為授權ID,則根據客戶(hù)請求把相應的信息加密處理后發(fā)送至客戶(hù)端;若為非授權ID,則說(shuō)明該網(wǎng)絡(luò )已存在非授權ID用戶(hù),此網(wǎng)絡(luò )已經(jīng)存在不安全性,則把提取的IP信息通過(guò)GSM網(wǎng)絡(luò )發(fā)送至指定接收端手機,達到網(wǎng)絡(luò )的實(shí)時(shí)檢測和報警功能。 ·服務(wù)器端軟件實(shí)現 服務(wù)器端構建基于MicroBlaze處理器和Xilkernel操作系統的嵌入式系統,通過(guò)擴展PS2鍵盤(pán),LCD液晶顯示屏等設備,實(shí)現具有良好的人機交互接口的系統。Xilkernel操作系統支持多線(xiàn)程操作,通過(guò)配置一些參數就可以靈活應用。雖然其沒(méi)有網(wǎng)絡(luò )系統,但可以通過(guò)移植LwIP協(xié)議棧就可以實(shí)現基于SOCKET的網(wǎng)絡(luò )通信。 應用程序的設計主要包括系統的初始化、系統對客戶(hù)端請求的處理、網(wǎng)絡(luò )安全監測及報警等。系統的初始化主要針對外設的初始化,LCD初始化工作:允許中斷函數microblaze_enable_interrupts(),初始化函數LCD INIT_LCD(),PS2鍵盤(pán)初始化:初始化鍵盤(pán)函數init_kbd(),允許中斷函數enable_interrupt(),系統調用xilkernel_main()進(jìn)入xilkernel,創(chuàng )建socket_thread。初始化lwip,并創(chuàng )建socket_app_thread。該線(xiàn)程主要是針對網(wǎng)絡(luò )參數設定,通過(guò)IP4_ADDR()函數設定ip、網(wǎng)關(guān)、子網(wǎng)掩碼。 當系統運行時(shí),液晶顯示相關(guān)信息,當出現等待鍵盤(pán)輸入密鑰時(shí),輸入16個(gè)字符密鑰,同時(shí)對密鑰進(jìn)行密鑰確認。系統調用socket()函數創(chuàng )建socket,調用listen()函數開(kāi)始監聽(tīng)。 一旦接收到用戶(hù)請求時(shí)就創(chuàng )建socket_process_thread線(xiàn)程。在socket_process_thread線(xiàn)程中,提取IP數據包的相關(guān)信息,首先檢查客戶(hù)端發(fā)送的ID是否在授權ID列表之內,如果ID無(wú)誤,將從無(wú)線(xiàn)模塊接收到的數據進(jìn)行AES加密,發(fā)送加密過(guò)后的數據給客戶(hù)端。如果ID有錯誤,提取其收到IP數據包中的IP,并啟用GSM模塊,將提得的IP通過(guò)短信發(fā)送給指定接收端。 整個(gè)服務(wù)器端的軟件設計流程圖如圖5圖所示。 圖5 服務(wù)器端軟件流程圖 系統客戶(hù)端實(shí)現 客戶(hù)端的系統構建與服務(wù)器端相似,系統的原理可以參考服務(wù)器端的系統設計。應用程序的設計也包括系統的初始化,客戶(hù)請求的處理及解密處理,服務(wù)器端返回的信息處理。初始化外設,LCD初始化:允許中斷函數microblaze_enable_interrupts(),初始化LCD函數INIT_LCD(),PS2鍵盤(pán)初始化:初始化鍵盤(pán)函數init_kbd(),允許中斷函數enable_interrupt()。系統調用xilkernel_main()進(jìn)入xilkernel,創(chuàng )建socket_thread。液晶顯示等待鍵盤(pán)輸入密鑰,輸入密鑰后需再次確認密鑰,確認成功后啟動(dòng)客戶(hù)端。初始化LwIP,并創(chuàng )建socket_app_thread。配置網(wǎng)絡(luò )參數,通過(guò)IP4_ADDR()函數設定ip、網(wǎng)關(guān)、子網(wǎng)掩碼。等待用戶(hù)按鍵,提出所要數據申請。調用socket()函數創(chuàng )建socket,連接server,發(fā)送經(jīng)過(guò)md5加密后的授權ID,等待server響應。.當接收到server返回的數據時(shí),調用AES解密模塊進(jìn)行解密。在LCD上顯示數據,并等待用戶(hù)再次提出所要數據申請?蛻(hù)端軟件流程圖如圖3-4圖所示。 結論 該系統采用FPGA平臺構建基于Microblaze軟核和Xilkernel操作系統的嵌入式系統。本文主要對下述內容進(jìn)行了論述和自主開(kāi)發(fā): 1.AES加解密算法的原理介紹及基于FPGA的硬件自主實(shí)現。 2.構建基于Microblaze軟核和Xilkernel操作系統的嵌入式系統,自定制外設接口IP。 3.網(wǎng)絡(luò )安全檢測的實(shí)現及通過(guò)GSM網(wǎng)絡(luò )報警機制的設計與實(shí)現。 經(jīng)過(guò)單元測試和整體評測,各模塊獨立運行功能良好,均達到系統設計要求。系統整體測試運行平穩,可靠性強。完全可以達到實(shí)際應用的性能及技術(shù)要求。 |