基于智能卡的嵌入式網絡加密安全系統設計
4 網絡安全加密系統的設計與實現
4.1 Microwindows和TinyWidgets基礎
Microwindows(如圖4所示)是一個著名的開放源碼的嵌入式GUI軟件,目的是把圖形視窗環境引入到運行Linux的小型設備和平臺上。作為XWindow的替代品,Microwindows可以使用更少的RAM和文件存儲空間(100 K~600 K)提供與x Window 相似的功能。Microwindows允許設計者輕松加入各種顯示設備、鼠標、觸摸屏和鍵盤等 。
Microwindows的可移植性非常好,基本上用c語言實現,只有某些關鍵代碼使用了匯編以提高速度。Microwindows支持Intel 16位、32位cPu,MIPS R4000以及ARM 芯片。盡管Microwindows完全支持Linux,但是它內部的可移植結構是基于一個相對簡單的屏幕設備接口,可在許多不同的RTOS和裸機上運行。Microwindows系統以圖形方式支持在主機平臺上的仿真目標平臺。這樣, 為Linux設計的Microwindows應用程序就可以在臺式機上進行編寫和開發而不用進行交叉編譯就可測試和運行,并且直接在目標平臺上運行。
MicroWindows是一個基于典型客戶/服務器體系結構的GUI系統,基本分為3層。最底層是面向圖形輸出和鍵盤、鼠標或觸摸屏的驅動程序;中間層提供底層硬件的抽象接口,并進行窗口管理;最高層分別提供兼容于X.Window和WindowscE(win32子集)的API。但由于Microwindows沒有實現窗口管理,這樣對窗口的管理就需要系統提供一個插件集。TinyWidget就是這樣的一個控件集供程序員來調用。TinyWidge~是一個基于Microwindows的c控件集,提供了一些比較基本的控件對象,比如窗口、按鈕、標簽、文本輸入框、列表框和組合框等。
4.2 uClinux及其文件系統構建方案
嵌入式操作系統uClinux(micro.contro1.Linux)是模塊化,簡化版的Linux,具有可剪裁、可配置、高安全性、好的可移植性和擴展性等特點,容易進行升級換代,以不斷適應新的應用 。
uClinux系統采用romfs文件系統,這種文件系統相對于一般的ext2文件系統要求更少的空間。空間的節約來自于兩個方面,首先內核支持romfs文件系統比支持ext2文件系統需要更少的代碼,其次romfs文件系統相對簡單,在建立文件系統超級塊(superblock)需要更少的存儲空間。Romfs文件系統不支持動態擦寫保存,對于系統需要動態保存的數據采用虛擬ram盤的方法進行處理。ram盤將采用ext2(第二擴展文件系統)或者jffs2(日志閃存文件系統)。
因此,綜合考慮存儲空間可用性因素,我們可以混合使用romfs和jffs2文件系統。使用romfs文件系統可以得到更大的空間節省和更快的運行速度,使用jfs2文件系統可以為用戶提供讀寫空間,方便用戶添加自己的個人文件和數據。Romfs文件系統作為uClinux的根文件系統,可以將jffs2文件系統掛載到romfs的/home目錄下供用戶來讀寫。
4.3 具體實現
我們采用Microwindows做界面,在uClinux下通過調用智能卡的命令實現對信息的加解密操作。具體實現包括:①身份認證,保證通信雙方身份的有效;②采用高強度加密算法對通訊數據進行加密和解密,上傳時相關數據被加密,下收時相關數據首先被解密,然后再作另行處理;⑧ 安全報文傳送,保證數據的可靠性、完整性和對發送方的認證。
4-3.1 身份認證
客戶端的身份是由安全模塊確定的,每一個安全模塊具有一個惟一的ID號,在實際交易前,客戶端發送簽到報文將ID號上傳服務器,服務器首先檢驗該ID的合法性,通過后則下發加密后的工作密鑰,如果客戶端能夠解密得出工作密鑰并繼續進行交易,則表明服務器的身份是合法的,從而完成對客戶端的實體認證;簽到完成后,服務器要求用戶輸入用戶名、口令,并對ID號、用戶名、口令進行驗證,完成對客戶的身份認證。
4.3.2 加解密
加解密采用的是已經燒到智能卡中的高強度對稱加密算法和128位的數據加密密鑰對傳輸報文中的關鍵敏感字段進行加密。
(1)數據加密步驟
第1步:用LD表示明文數據的長度,在明文數據前加上LD產生新數據塊;
第2步:將第1步中生成的數據塊分解成8字節數據塊,標號為D ,D ,D ,D 等。最后一個數據塊的長度有可能不足8位;
第3步:如果最后(或惟一)的數據塊長度等于8字節,轉入第4步;如果不足8字節,在右邊添加16進制數字“80”。如果長度已達8字節,轉入第4步;否則,在其右邊添加1字節16進制數字“0”直到長度達到8字節;
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論