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