【发布时间】:2018-02-04 10:39:12
【问题描述】:
我正在为物联网设备和客户端之间的机密通信设计一个 API。必须确保客户端与设备之间的连接是安全,并且没有中间人可以削弱通信或攻击设备,包括路由服务器。
网络图如下:
- IoT 设备始终位于同一网络后面的家中。
- 客户端设备是移动的并且会改变网络
- 客户端不断连接和断开 IoT 设备
客户端必须能够通过在每个 IoT 设备上运行的 API 服务器在 IoT 设备上执行命令。路由服务器仅对请求进行隧道传输,但不得信任。
我的问题是:
我应该使用什么协议来实现这个方案?
我对 SSH 有点困惑。 它似乎非常适合安全客户端 通过隧道进行 IoT 设备通信。
但是是否可以使用 SSH 创建 RESTful API?
我不需要直接访问设备的外壳,我需要一个抽象层,由在 IoT 设备上运行的 API 提供。
如果 SSH 不是一个选项,我能否以任何其他方式从 客户端 安全地路由请求并在 IoT 设备上执行命令?
【问题讨论】:
-
大多数人会在这里使用 HTTPS。
-
SSH 和 REST 是正交的。 SSH 承载流量,REST 只是定义流量的样子。
-
我真正的困境是我应该在物联网设备上运行经典的 HTTPS 服务器,创建具有强身份验证的 REST API 并让客户端通过它执行命令,还是应该在 SSH 之上开发一些东西。目标是让远程客户端安全地在设备上执行某些命令。 SSH 不是出于这个原因吗?但是,客户端不能在他们的智能手机上看到远程外壳,而是一个漂亮的 GUI
-
您是否意识到使用这两种方法最终用户都需要在其防火墙上打开端口才能允许连接?
-
物联网设备自动连接隧道服务器。我考虑使用 Ngrok 链接。两边都不需要转发端口
标签: security networking ssh iot