ios - 在 iPhone 应用程序和 Arduino 服务器之间安全传输数据的方法

标签 ios arduino security

我正在尝试在 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/

相关文章:

ios - 在日期选择器中显示时间设置最长时间和最短时间

objective-c - 使用不兼容类型 'double' 的表达式初始化 'id'

ios - Core Graphics 不透明类型,它们是什么以及如何使用?

arduino - 在 AVR Studio 中使用自动完成功能通过 avr-gcc 编码 C

ruby-on-rails-3 - Heroku 中的 Ruby 1.9.3p327

database - 访问远程数据库的最佳方式 : via webservice or direct DB-access?

ios - 如何使用 Xcode 和 Swift 在我的导航栏中添加标题?

Python:测试串行端口以获得答案

android - 以无线方式将 Android 连接到 Arduino 的最快方法?

sql - CMS 的 MySQL 用户的推荐 SQL 权限