Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在iPhone应用程序和Arduino服务器之间安全传输数据的方法_Ios_Arduino_Security - Fatal编程技术网

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

Ios 在iPhone应用程序和Arduino服务器之间安全传输数据的方法,ios,arduino,security,Ios,Arduino,Security,我正在尝试在iPhone应用程序和Arduino服务器之间建立一个安全协议。目标是iPhone应用程序向Arduino服务器发出请求,并且服务器仅在具有某种形式的正确凭据时才处理该请求。我真的不知道如何解决这个问题。任何建议都将不胜感激 不幸的是,Arduino上没有真正安全的通信选项。基本问题是SSL库尚未移植到该平台,部分原因是该平台构建的8位处理器功能不强。我说过有些事情你可以做,但你必须自己去做: 是一种非常不安全的控制HTTP页面访问的方法,因此不推荐使用,另一方面,采用单向加密编码(

我正在尝试在iPhone应用程序和Arduino服务器之间建立一个安全协议。目标是iPhone应用程序向Arduino服务器发出请求,并且服务器仅在具有某种形式的正确凭据时才处理该请求。我真的不知道如何解决这个问题。任何建议都将不胜感激

不幸的是,Arduino上没有真正安全的通信选项。基本问题是SSL库尚未移植到该平台,部分原因是该平台构建的8位处理器功能不强。我说过有些事情你可以做,但你必须自己去做:

是一种非常不安全的控制HTTP页面访问的方法,因此不推荐使用,另一方面,采用单向加密编码(散列)。它只需要MD5库,这是Arduino的。您需要做的是修改类的源代码以支持摘要访问身份验证:AFAIK它不支持开箱即用

如果这看起来很困难,您可以自己实现一些相当基本的东西(虽然不是很安全,但总比什么都没有好)。可能是这样的:

  • 第一个GET请求来自客户端
  • 服务器以“未授权”响应进行响应,在响应中嵌入与请求IP地址相关(可能是散列)的令牌。您还可以将原始时间段作为散列的一部分,并为这些令牌提供有限的生存期
  • 如果来自同一IP地址的下一个请求包含基于某个密码+发送的令牌的哈希,则下一个请求将得到满足

现在,这将不能保护您免受IP地址欺骗,以及许多其他我可能没有想到的事情。然而,它会给你一点安全感(如果你相信这类事情的话,也会给你一点默默无闻的安全感)。您可以要求在

上提供(稍微)更详细的方案,您可能只需要使用基于共享机密的经过身份验证的消息。消息将[至少]包含消息类型、消息正文、时间戳和消息摘要。您可以通过将其他内容添加到共享机密中来创建摘要。(在Google中键入HMAC Arduino以获取库和代码。)消息通过TCP或UDP发送(我更喜欢这样)。Arduino计算消息摘要,检查它,验证数据,然后对消息执行操作


我喜欢做的一件事是在应用服务器前面的网络层实现端口敲打之类的事情。这可以防止不必要的通信量到达自定义(可能是易受攻击的)命令服务器。这可以秘密进行(见无声敲门),也可以明显地进行。网络保护也可以由一个专用的设备来实现,该设备在到达Arduino之前进行大量提升并取消许多流氓流量的资格

以太网屏蔽+SSL?不要认为Arduino有足够的处理能力/内存在其上运行SSL。我已经在使用以太网屏蔽了,但是USB串行+PC+SSL?我需要它是独立的SB串行+ducktape+上网本+SSL?