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