首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Stellaris 32位微控制器的lwIP安全登录

基于Stellaris 32位微控制器的lwIP安全登录
EN

Stack Overflow用户
提问于 2012-09-13 04:41:31
回答 1查看 1.6K关注 0票数 0

我希望使用我的Stellaris LM3S8962微控制器作为连接互联网和一堆传感器的桥梁。我将使用Zigbee节点进行从传感器到微控制器的通信。我已经能够使用HTML /IP堆栈(对于lwIP )访问存储在控制器闪存中的LM3S8962页面。

现在,我想为相同的用户添加一个安全的登录系统。我基本上想要的是-当我在浏览器中输入控制器的IP时,它应该提示我输入用户名和密码。我希望使用lwIP TCP/IP堆栈使这个系统尽可能安全。

FYI,堆栈不支持PHP或任何其他脚本。支持CGI特性(在C中),但我不知道如何实现安全部分。请指点。

EN

回答 1

Stack Overflow用户

发布于 2013-09-05 19:28:20

基本上有两种方法可以在您的平台上通过HTTP实现用户身份验证:

  • “经典的”基本HTTP身份验证(确切的规格请参见RFC2616 ),
  • 一个登录表单,创建一个会话ID,并将其返回到浏览器中,存储在cookie中或URL中。

基本HTTP身份验证的工作方式是将检查插入到web页面服务例程中,以查看是否存在授权HTTP标头。如果存在,您应该对其进行解码(请参阅RFC),并检查指定的用户名/密码。如果凭据正常,则继续提供网页服务。如果凭据不正确,或者如果没有授权头,则应返回401错误代码。然后浏览器将提示用户输入凭据。这个解决方案相当简单,您将得到浏览器登录对话框,而不是一个很好的HTML页面。此外,微控制器必须检查每个页面请求的凭据。

通过登录表单的身份验证由您的服务器负责维护一个经过正确身份验证的用户会话列表(可能在内存中),并根据这个列表检查请求。登录时,应该为该会话生成一个唯一的随机ID,并且会话数据应该输入到您的列表中。新的会话ID应该返回给浏览器,以便包含在即将到来的HTTP请求中。您可以选择要放入浏览器cookie中的会话ID,也可以将其嵌入到URL中,作为URL参数(?id=xxxxx)。URL参数通过向具有新URL的浏览器发送302重定向响应而嵌入。如果您想要cookie解决方案,可以使用Set-Cookie HTTP响应头将响应发送到登录请求。在登录表单解决方案中,实际凭据(用户名/密码)在登录时只检查一次。之后,只会根据活动会话的列表检查会话ID。会话ID必须从每个提供服务的网页的请求中提取(从URL或Cookie HTTP报头)。此外,您还必须实现某种会话超时,这既是一种安全措施,也是对活动会话列表大小的限制。

现在出现了更困难的部分:在这两种解决方案中,用户名/密码在一些请求中传递(在每个基本HTTP身份验证请求中,以及在登录表单解决方案的登录页面POST中),并且可以从网络流量中提取。此外,在这两种解决方案中,每个请求中都存在劫持会话所需的信息。如果这是一个问题(系统在一个可自由访问的LAN段上工作,或者在您无法控制的网络链接上工作),您可能需要SSL来隐藏这些敏感数据。如何为您的平台获得一个合理的SSL实现,这是另一个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12399519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档