2012-11-20 26 views
5

我正在研究一個稍微深奧的項目,我們需要在小型/慢速嵌入式微型(無OS)中實施一些基本認證。該設備通過其串行端口爲多個網頁提供服務,然後通過一些我們無法控制的硬件將其噴到IP網絡上。嵌入式系統的輕量級Web認證

服務器代碼(如飢餓飲食時認爲是nweb)需要HTTP GET/POST請求,並且吐出頁面&會相應地更改其設置。

我們需要某種方式來驗證用戶登錄/會話,以便我們不允許用戶查看數據或更改他們不應該的設置。

該設備並不打算直接暴露在互聯網上,或者是被嚴重黑客入侵(網絡安全/隔離是客戶的問題*),但安全要求更多的是關於讓低層人員不要觸及眨眼燈;)

由於缺乏空間/處理能力(假設我們有大約2k的代碼空間而不是很多MHz),我們不能實現像SSL這樣的東西,但是至少有一個更好沼氣標準HTTP access control

我們可以處理GET,POST和設置/讀取cookie數據。我們的微型產品確實有一個體面的加密標準硬件隨機數發生器,應該有任何幫助。

  • =真的,客戶應該將設備掛在自己的網絡上,從物理上斷開連接,或至少防火牆或其他任何東西。但是,嘿,如果它適用於波音...

回答

1

如果你只是想防止訪問: 任何時候有一個GET請求,尋找密碼的cookie。 如果未設置cookie,請發回一個將登錄密碼發送到服務器的HTML登錄表單。 如果服務器使用正確的密碼獲取POST數據,則返回一個「登錄正常」頁面,將COOKIE設置爲密碼。然後,任何登錄的人(顯然具有正確的密碼)都將在所有未來的GET請求中設置cookie。任何從未登錄的人都會看到登錄頁面。你可以通過設置兩個cookie值來隱藏它:一個隨機數,以及隨機和密碼的XOR。這樣客戶端將無法弄清楚cookie中的值是什麼。如果你進一步和XOR說客戶端IP,客戶端將無法將cookie複製到其他計算機。服務器將始終能夠取消所有操作並從隨機數和其他cookie值中找出密碼/ IP。

如果你想要簡單加密,你可以在javascript中使用XMLHTTPREQUESTS。讓服務器用簡單的puesdo隨機數生成器(或簡單的XOR obsfuncitation或其他)加密數據,並讓客戶端在JavaScript中向後執行相同的操作。你可以讓服務器對除index.html之外的每個頁面都進行加密,並且在index.html中可以對其進行加密,以便XMLHTTP請求javascript中的其他頁面並解密它們,然後使用innerHTML或其他方法將內容放入div中。