新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于智能卡的嵌入式網(wǎng)絡(luò)加密安全系統(tǒng)設(shè)計(jì)

基于智能卡的嵌入式網(wǎng)絡(luò)加密安全系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2010-09-29 來源:網(wǎng)絡(luò) 收藏


  4 安全加密系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

  4.1 Microwindows和TinyWidgets基礎(chǔ)

  Microwindows(如圖4所示)是一個(gè)著名的開放源碼的GUI軟件,目的是把圖形視窗環(huán)境引入到運(yùn)行Linux的小型設(shè)備和平臺上。作為XWindow的替代品,Microwindows可以使用更少的RAM和文件存儲空間(100 K~600 K)提供與x Window 相似的功能。Microwindows允許設(shè)計(jì)者輕松加入各種顯示設(shè)備、鼠標(biāo)、觸摸屏和鍵盤等 。


  Microwindows的可移植性非常好,基本上用c語言實(shí)現(xiàn),只有某些關(guān)鍵代碼使用了匯編以提高速度。Microwindows支持Intel 16位、32位cPu,MIPS R4000以及ARM 芯片。盡管Microwindows完全支持Linux,但是它內(nèi)部的可移植結(jié)構(gòu)是基于一個(gè)相對簡單的屏幕設(shè)備接口,可在許多不同的RTOS和裸機(jī)上運(yùn)行。Microwindows系統(tǒng)以圖形方式支持在主機(jī)平臺上的仿真目標(biāo)平臺。這樣, 為Linux設(shè)計(jì)的Microwindows應(yīng)用程序就可以在臺式機(jī)上進(jìn)行編寫和開發(fā)而不用進(jìn)行交叉編譯就可測試和運(yùn)行,并且直接在目標(biāo)平臺上運(yùn)行。

  MicroWindows是一個(gè)基于典型客戶/服務(wù)器體系結(jié)構(gòu)的GUI系統(tǒng),基本分為3層。最底層是面向圖形輸出和鍵盤、鼠標(biāo)或觸摸屏的驅(qū)動程序;中間層提供底層硬件的抽象接口,并進(jìn)行窗口管理;最高層分別提供兼容于X.Window和WindowscE(win32子集)的API。但由于Microwindows沒有實(shí)現(xiàn)窗口管理,這樣對窗口的管理就需要系統(tǒng)提供一個(gè)插件集。TinyWidget就是這樣的一個(gè)控件集供程序員來調(diào)用。TinyWidge~是一個(gè)基于Microwindows的c控件集,提供了一些比較基本的控件對象,比如窗口、按鈕、標(biāo)簽、文本輸入框、列表框和組合框等。

  4.2 uClinux及其文件系統(tǒng)構(gòu)建方案

  操作系統(tǒng)uClinux(micro.contro1.Linux)是模塊化,簡化版的Linux,具有可剪裁、可配置、高安全性、好的可移植性和擴(kuò)展性等特點(diǎn),容易進(jìn)行升級換代,以不斷適應(yīng)新的應(yīng)用 。

  uClinux系統(tǒng)采用romfs文件系統(tǒng),這種文件系統(tǒng)相對于一般的ext2文件系統(tǒng)要求更少的空間??臻g的節(jié)約來自于兩個(gè)方面,首先內(nèi)核支持romfs文件系統(tǒng)比支持ext2文件系統(tǒng)需要更少的代碼,其次romfs文件系統(tǒng)相對簡單,在建立文件系統(tǒng)超級塊(superblock)需要更少的存儲空間。Romfs文件系統(tǒng)不支持動態(tài)擦寫保存,對于系統(tǒng)需要動態(tài)保存的數(shù)據(jù)采用虛擬ram盤的方法進(jìn)行處理。ram盤將采用ext2(第二擴(kuò)展文件系統(tǒng))或者jffs2(日志閃存文件系統(tǒng))。

  因此,綜合考慮存儲空間可用性因素,我們可以混合使用romfs和jffs2文件系統(tǒng)。使用romfs文件系統(tǒng)可以得到更大的空間節(jié)省和更快的運(yùn)行速度,使用jfs2文件系統(tǒng)可以為用戶提供讀寫空間,方便用戶添加自己的個(gè)人文件和數(shù)據(jù)。Romfs文件系統(tǒng)作為uClinux的根文件系統(tǒng),可以將jffs2文件系統(tǒng)掛載到romfs的/home目錄下供用戶來讀寫。

  4.3 具體實(shí)現(xiàn)

  我們采用Microwindows做界面,在uClinux下通過調(diào)用卡的命令實(shí)現(xiàn)對信息的加解密操作。具體實(shí)現(xiàn)包括:①身份認(rèn)證,保證通信雙方身份的有效;②采用高強(qiáng)度加密算法對通訊數(shù)據(jù)進(jìn)行加密和解密,上傳時(shí)相關(guān)數(shù)據(jù)被加密,下收時(shí)相關(guān)數(shù)據(jù)首先被解密,然后再作另行處理;⑧ 安全報(bào)文傳送,保證數(shù)據(jù)的可靠性、完整性和對發(fā)送方的認(rèn)證。

  4-3.1 身份認(rèn)證

  客戶端的身份是由安全模塊確定的,每一個(gè)安全模塊具有一個(gè)惟一的ID號,在實(shí)際交易前,客戶端發(fā)送簽到報(bào)文將ID號上傳服務(wù)器,服務(wù)器首先檢驗(yàn)該ID的合法性,通過后則下發(fā)加密后的工作密鑰,如果客戶端能夠解密得出工作密鑰并繼續(xù)進(jìn)行交易,則表明服務(wù)器的身份是合法的,從而完成對客戶端的實(shí)體認(rèn)證;簽到完成后,服務(wù)器要求用戶輸入用戶名、口令,并對ID號、用戶名、口令進(jìn)行驗(yàn)證,完成對客戶的身份認(rèn)證。

  4.3.2 加解密

  加解密采用的是已經(jīng)燒到卡中的高強(qiáng)度對稱加密算法和128位的數(shù)據(jù)加密密鑰對傳輸報(bào)文中的關(guān)鍵敏感字段進(jìn)行加密。

  (1)數(shù)據(jù)加密步驟

  第1步:用LD表示明文數(shù)據(jù)的長度,在明文數(shù)據(jù)前加上LD產(chǎn)生新數(shù)據(jù)塊;

  第2步:將第1步中生成的數(shù)據(jù)塊分解成8字節(jié)數(shù)據(jù)塊,標(biāo)號為D ,D ,D ,D 等。最后一個(gè)數(shù)據(jù)塊的長度有可能不足8位;

  第3步:如果最后(或惟一)的數(shù)據(jù)塊長度等于8字節(jié),轉(zhuǎn)入第4步;如果不足8字節(jié),在右邊添加16進(jìn)制數(shù)字“80”。如果長度已達(dá)8字節(jié),轉(zhuǎn)入第4步;否則,在其右邊添加1字節(jié)16進(jìn)制數(shù)字“0”直到長度達(dá)到8字節(jié);

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關(guān)鍵詞: 智能 嵌入式 網(wǎng)絡(luò)

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉