引言
以PC為中心的傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用如今在嵌入式系統(tǒng)中得到了廣泛的應(yīng)用,但以往大部分嵌入式Web服務(wù)器的開發(fā)是針對性非常強(qiáng)的某一項或某一些專用功能程序開發(fā),即使在一些具體的項目中做了一些控制和監(jiān)測嵌入式設(shè)備系統(tǒng)的Web服務(wù)器應(yīng)用,也只是力求做到小巧,滿足本系統(tǒng)本平臺的相對簡單的功能,因此,此類嵌入式Web服務(wù)器安全性都不能得到很好的滿足。面對今天高端嵌入式設(shè)備的快速發(fā)展,硬件成本的顯著下降,甚至有的嵌入式系統(tǒng)硬件已經(jīng)與通用計算機(jī)接近的這種情況,嵌入式市場完全可能需要可靠安全性的嵌入式Web服務(wù)器軟件。本文就信息認(rèn)證的安全性方面,提出了嵌入式Web服務(wù)器身份認(rèn)證的解決方案。
1 采用方案的分析
嵌入式Web服務(wù)器與通用領(lǐng)域的web服務(wù)器相比,存在以下方面的差距:兩者運(yùn)行的目標(biāo)環(huán)境不一樣,通用Web服務(wù)器一般運(yùn)行在計算資源和內(nèi)存都比較豐富的服務(wù)器上,嵌入式Web服務(wù)器運(yùn)行的目標(biāo)系統(tǒng)大多是各類專用的設(shè)備。資源比較缺乏,兩者在各自系統(tǒng)中起的作用不一樣,通用Web服務(wù)器的系統(tǒng)是利用服務(wù)器向大家提供信息服務(wù),而嵌入式Web服務(wù)器主要功能起對設(shè)備提供監(jiān)測、控制等特殊功能的作用。
兩者在各自系統(tǒng)中的地位不一樣,嵌入式Web服務(wù)器只是作為一種管理手段而存在,并且嵌入式Web服務(wù)器通常只有設(shè)備管理員進(jìn)行訪問,因此嵌入式Web服務(wù)器無需高吞吐率,但要求短的響應(yīng)時間。因為二者之間存在上述的差距,決定了兩者所處的客觀環(huán)境和安全性復(fù)雜程度的不同,所以要求二者采用不同的方案來實現(xiàn)Web服務(wù)器身份認(rèn)證機(jī)制。嵌入式領(lǐng)域中不能采用通用領(lǐng)域的基于DCE/Kerberos或公共密鑰復(fù)雜的認(rèn)證方案來實現(xiàn)Web服務(wù)器身份認(rèn)證,那么嵌入式Web服務(wù)器應(yīng)該采用何種方案呢?本文給出一種簡易、安全的基于HTTP認(rèn)證協(xié)議的身份認(rèn)證方案來實現(xiàn)嵌入式Web服務(wù)器的身份認(rèn)證,它可以廣泛地應(yīng)用在各種通用的Web瀏覽器和目標(biāo)平臺的嵌入式Web服務(wù)器中。本文方案主要由密鑰維護(hù)、角色權(quán)限分配和身份認(rèn)證處理模塊組成。
2 身份認(rèn)證的實現(xiàn)
2.1 口令字管理及口令數(shù)據(jù)庫的設(shè)計
密鑰的分配和管理由密鑰維護(hù)模塊負(fù)責(zé)。當(dāng)用戶進(jìn)行注冊時,設(shè)定自己的口令字,用戶的密鑰可以由口令字生成。一個口令字必須接受嚴(yán)格的口令字檢查。當(dāng)用戶設(shè)置口令字時,強(qiáng)制口令字必須有足夠的長度,并且檢查工具會對此口令字進(jìn)行檢查,如識別為弱口令字,強(qiáng)制用戶修改為強(qiáng)口令字。
口令數(shù)據(jù)庫設(shè)計不能以明文形式存放,要求采用密碼體制對口令數(shù)據(jù)庫進(jìn)行加密,通常采用私鑰密碼體制對口令數(shù)據(jù)庫進(jìn)行加密。因為私鑰密碼系統(tǒng)具有運(yùn)算效率高、使用方便、加密效率高等特點(diǎn),并且在系統(tǒng)應(yīng)用中不要求密鑰交換,所以也不可能失密。私鑰密碼體制采用的算法技術(shù)根據(jù)自身系統(tǒng)所需算法的安全性和復(fù)雜性的高度不同,可以分別采用傳統(tǒng)的加密方法和采用滿足數(shù)據(jù)加密標(biāo)準(zhǔn)的DES和IDEA算法。
2.2不同角色的權(quán)限分配
角色權(quán)限分配模塊可以對用戶組、用戶、認(rèn)證方案、訪問控制靈活配置,要求配置不同角色的認(rèn)證方案、訪問控制權(quán)限、URL授權(quán)。角色權(quán)限分配模塊的訪問控制采用簡化的基于角色的訪問控制模型。設(shè)計的目的是要求角色對信息系統(tǒng)資源應(yīng)該有控制的進(jìn)行訪問,即防止合法用戶的非法操作,它是建立在身份認(rèn)證之上的訪問控制,根據(jù)不同的角色,規(guī)定了他們對資源的訪問方式,是基于權(quán)限管理的一種非常重要的安全策略。模塊設(shè)計依照以下的安全準(zhǔn)則:基于角色對用戶組訪問控制;支持動態(tài)地改變用戶的權(quán)限;提供方便的授權(quán)和取消機(jī)制;用戶之間授權(quán)關(guān)系可以依照角色進(jìn)行管理。對URL授權(quán)的訪問認(rèn)證方案分為以下4種情況:
(1)不需要訪問認(rèn)證方案,可以自由訪問服務(wù)器資源,無需用戶名和密碼的校驗:
(2)Basic訪問認(rèn)證方案,需要用戶名和密碼的校驗,但用戶名和密碼是以明文形式在網(wǎng)絡(luò)上傳輸。
(3)Digest訪問認(rèn)證方案,需要用戶名和密碼的校驗,用戶名和密碼小是以明文形式存在于網(wǎng)絡(luò)上:
(4)禁止訪問原始服務(wù)器上的任何資源。
以上4種訪問認(rèn)證方案完全可以根據(jù)自身嵌入式系統(tǒng)的工作情況和工作要求,來選擇適合自身嵌入式系統(tǒng)的訪問認(rèn)證,達(dá)到嵌入式Web服務(wù)器在嵌入式系統(tǒng)上更合理的應(yīng)用。
2.3身份認(rèn)證處理模塊詳細(xì)流程
身份認(rèn)證處理模塊中Digest訪問認(rèn)證方案實現(xiàn)的總體流程圖如圖1所示,服務(wù)器程序和應(yīng)用程序完成角色權(quán)限分配的工作后,當(dāng)客戶申請原始服務(wù)器的資源時,如果請求的是原始服務(wù)器設(shè)置了要求授權(quán)訪問的資源時,服務(wù)器要求角色身份認(rèn)證。當(dāng)服務(wù)器要求Digest訪問認(rèn)證時,服務(wù)器提供客戶圖1認(rèn)證的總體流程響應(yīng)頭和參數(shù)值列表,作為“挑戰(zhàn)”發(fā)送給客戶,響應(yīng)狀態(tài)行及
Digest在這里表示Digest訪問認(rèn)證方案。realm是字符串“Embedded-WebServer”,指的是要求使用的證書的參考信息,以便用戶決定使用什么證書。建議此參考值中應(yīng)至少包括服務(wù)器域名和被保護(hù)的Web資源領(lǐng)域信息,可以根據(jù)這個字符串知道要求輸入的用戶ID和密碼,該參數(shù)值最終的使用方式依賴于客戶程序的具體實現(xiàn)。domain是機(jī)器名和TCP通信協(xié)議要求的端口號組成的字符串。nonce value是向客戶發(fā)送的“挑戰(zhàn)”信息,該參數(shù)值為經(jīng)過Base64編碼的隨機(jī)數(shù),隨機(jī)數(shù)的長度和產(chǎn)生方法依賴于服務(wù)器的具體實現(xiàn),但服務(wù)器必須保證每次狀態(tài)碼的響應(yīng)信息中該隨機(jī)數(shù)的值是惟一的。一般考慮采用偽隨機(jī)數(shù)發(fā)生器,組合用偽隨機(jī)數(shù)、客戶口地址、時間戳、HTTP Etag響應(yīng)頭值由服務(wù)器來產(chǎn)生字串nonce(128位散列值)保證此參數(shù)值的惟一性。最后包括所用算法的參數(shù)值,該參數(shù)值指出了對前面的散列值進(jìn)行數(shù)字簽名的Hash算法(一般考慮采用MD5算法)。
圖1 認(rèn)證的總體流程
Web瀏覽器收到“挑戰(zhàn)”信息后,錄入用戶名和口令字,按服務(wù)器提供的參數(shù)值列表的要求,組織身份驗證報文m,進(jìn)行數(shù)字簽名,詳細(xì)認(rèn)證過程如圖2所示。用MD5算法簽名身份驗證報文m,生成摘要H(m)后,用加密器E和密鑰k加密報文摘要得到Ek(H(m))后,向服務(wù)器發(fā)送新的請求,包括狀態(tài)行和請求頭域,其中必須包括請求頭域Authofizmion如下例所示:
圖2 客戶認(rèn)證過程
其中response是128位散列值即Ek(m)),服務(wù)器用解密器D和密鑰k解密報文摘要Ek(H(m)),得到報文摘要H(m),Cnonce是客戶端簽名產(chǎn)生臨時的128位散列值。服務(wù)器收到客戶端發(fā)來的“應(yīng)答”信息后,從加密口令數(shù)據(jù)庫中得到用戶名和口令字,使用收到身份驗證報文m,開始實體認(rèn)證經(jīng)過簽名后的報文摘要H(m),嵌入式Web服務(wù)器重復(fù)客戶方的簽名過程如下:
(1)首先對A1(其中A1是“用戶ID:realm:用戶密碼”組成的字節(jié)串)用MD5算法進(jìn)行簽名,簽名后得到一個128位敖列值H(A1);
(2)對A2(其中A2是“HTTP方法:URL”組成的字節(jié)申)用MD5算法進(jìn)行簽名,簽名后得到一個128位散列值H(A2);
(3)將“A1:nonce:ne:cnonce:qop:A2”組成一個字節(jié)串,然后在用MD5算法對其進(jìn)行簽名,最后得到H(m’)。
最后比較Web瀏覽器對身份驗證報文m簽名生成摘要H(m)和嵌入式Web服務(wù)器對身份驗證報文m簽名生成的摘要H(m’)是否相等,相等則服務(wù)器處理請求的資源,不等則拒絕訪問。經(jīng)過Web瀏覽器對身份驗證報文m簽名和嵌入式Web服務(wù)器對身份驗證報文m簽名過程,完全實現(xiàn)了對身份驗證報文m的信息認(rèn)證。
3 結(jié)束語
本文作者給出了一種嵌入式Web服務(wù)器身份認(rèn)證的解決方案。實現(xiàn)身份認(rèn)證已經(jīng)完成了嵌入式Web服務(wù)器安全性極為關(guān)鍵的一步。基于嵌入式Web服務(wù)器安全性的各種應(yīng)用情況沒有通用領(lǐng)域Web服務(wù)器的安全性情況復(fù)雜,并且嵌入式Web服務(wù)器的實時性要求比通用領(lǐng)域的Web服務(wù)器要高,采用安全協(xié)議勢必降低系統(tǒng)響應(yīng)性能。因此對普通意義上應(yīng)用的嵌入式Web服務(wù)器,對身份驗證報文的信息認(rèn)證不失為一個好的解決安全性的方案。
投稿及文章評論請聯(lián)系:zhaom@e-works.net.cn MSN:zhaoman123329@live.cn
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:嵌入式Web服務(wù)器身份認(rèn)證的解決方案
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112186695.html