2012-11-20 28 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中。