我正在尝试在 iPhone 应用程序和 Arduino 服务器之间建立一个安全协议(protocol)。目标是 iPhone 应用程序向 Arduino 服务器发出请求,并且服务器仅在具有一种或另一种形式的正确凭据时才处理该请求。我不太确定如何解决这个问题。非常感谢任何建议!
最佳答案
不幸的是,Arduino 上没有真正安全的通信选项。基本问题是 SSL 库尚未移植到该平台,部分原因是该平台构建的 8 位处理器功能不是很强大。话虽如此,有些事情你可以做,但你必须自己做:
Basic access authentication是一种非常不安全的控制 HTTP 页面访问的方法,因此不建议使用。 Digest access authentication另一方面,采用单向加密编码(散列)。它只需要MD5库,即actually available对于阿杜伊诺。您需要做的是修改 Web Server 的源代码支持摘要访问身份验证的类:据我所知,它不支持开箱即用。
如果这看起来很困难,您可以自己实现一些相当基本的东西(不是很安全,但总比没有好)。它可能看起来像这样:
- 第一个 GET 请求来自客户端
- 服务器以“未授权”响应进行响应,并在响应中嵌入与请求 IP 地址(可能是其哈希值)相关的 token 。您也可以将原始时间范围作为哈希的一部分,并为此类 token 赋予有限的生命周期。
- 如果来自同一 IP 地址的下一个请求包含基于某些密码 + 发送的 token 的哈希值,则下一个请求将被接受。
现在,这并不能保护您免受 IP 地址欺骗,以及许多其他我可能没有想到的事情。然而,它会给你一点安全感(如果你相信这种事情的话,通过默默无闻也能带来一点点安全感)。您可以在 superuser 上要求(稍微)更详细的方案。
关于ios - 在 iPhone 应用程序和 Arduino 服务器之间安全传输数据的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15855325/