【发布时间】:2013-03-06 00:34:49
【问题描述】:
有一个 Java 服务器和许多 Arduino 设备,它们通过 TCP 连接连接。我们可以使用的板:Arduino Uno 或 Arduino Mega 2560
每个 Arduino 设备实际上都是报告器(例如,它从水表获取数据并将数据传输到服务器)或某些设备的某种远程控制。
目前,此连接不安全。我需要确保它的安全,即实施 VPN。
我在这个知识领域是全新的,我正在尝试找出我应该使用的方式。
我真的希望我能找到一些协议的现有实现,并将其构建到这个系统中。
但是哪个协议呢?
我已经发现我不能使用 IPSec,因为 TCP/IP 堆栈是在这些 Arduino 设备中硬件实现的,所以我们不能修改它。
因此,我需要使用一些比 TCP 更高的协议,并且我需要用 C(用于客户端设备)和 Java(用于服务器)实现。
我正在尝试查找 SSL、PPTP、L2TP 或其他我仍然不知道的实现。
如果有人有这方面的经验,我很乐意看到你的建议。
【问题讨论】:
-
如果你有一个固定的服务器,你可以通过将公钥硬编码到你的 Arduino 中(而不是协商密钥)大大简化你的问题,然后执行通常的 SSL 技巧:生成本地密钥以对数据进行编码,并通过使用公钥加密发送密钥的加密版本。如果数据不是太大,您甚至可以直接使用公钥进行编码。我猜你只需要保证数据的安全 - 这实际上比“完整”VPN连接的能力要小......
-
是的,您猜对了:我只需要确保数据安全。感谢您的提示!
-
@Floris,您能否详细说明“小于完整 VPN 连接的能力”?与我的需求相比,它有什么关键区别:使数据安全?当然,我在问之前用谷歌搜索过,但正如我所见,VPN 的目的是为安全的数据交换建立“隧道”。而且我无法说明 VPN 和使数据安全的具体区别。
标签: java c encryption arduino vpn