嵌入式系统的轻量级Web身份验证

时间:2012-11-20 12:48:58

标签: c security http authentication embedded

我正在开展一个稍微深奥的项目,我们需要在小型/慢速嵌入式微型(无操作系统)中实现一些基本身份验证。该设备通过其串行端口提供几个网页,然后通过我们无法控制的一些硬件将其喷射到IP网络上。

服务器代码,例如它(在饥饿饮食中思考nweb),接收HTTP GET / POST请求并吐出页面&相应地更改其设置。

我们需要某种方式来验证用户登录/会话,以便我们不允许人们查看数据或更改他们不应该的设置。

该设备不是直接暴露于互联网,也不是100%坚不可摧的严重黑客行为(网络安全/分离是客户的问题*),安全要求更多的是保持低层人员不要触摸闪烁灯; )

由于缺乏空间/处理能力(假设我们有大约2k的代码空间而且没有多少MHz),我们无法实现像SSL那样的东西,但是至少比沼泽标准更好一点会很好HTTP access control

我们可以处理GET,POST和设置/读取cookie数据。我们的微软确实拥有的一件事是一个体面的加密标准硬件随机数发生器,应该是任何帮助。

  • =客户应该将设备悬挂在自己的网络上,与其他任何设备断开连接或至少防火墙。但是,嘿,如果它适用于波音......

1 个答案:

答案 0 :(得分:1)

如果您只想防止访问: 任何时候有GET请求,请查找密码的cookie。 如果未设置cookie,请发回一个将登录密码发送到服务器的HTML登录表单。 如果服务器使用正确的密码获取POST数据,请发回“登录确定”页面,将COOKIE设置为密码。然后登录的任何人(显然使用正确的密码)将在未来的所有GET请求中设置cookie。从未登录过的任何人都会看到登录页面。您可以通过设置两个cookie值来“隐藏”它:随机数,随机数和密码的XOR。这样客户端就无法弄清楚cookie中的值是什么。如果你更进一步与XOR它说客户端IP,客户将无法将cookie复制到其他计算机。服务器将始终能够取消所有操作并从随机数和其他cookie值中找出密码/ ip。

如果您想要简单加密,可以在javascript中使用XMLHTTPREQUESTS。让服务器使用简单的puesdo随机数生成器(或简单的XOR阻塞或其他)加密数据,并让客户端在javascript中向后执行相同的操作。您可以让服务器对每个页面进行加密,除了说index.html之外,在index.html中你可以拥有它,以便XMLHTTPREQUES对javascript中的其他页面进行解密,然后使用innerHTML或其他内容将内容放入div中。