java - Java 服务器和 Arduino 客户端之间的安全通信 : need a suggestion

标签 java c encryption arduino vpn

有一个Java服务器和许多Arduino设备,它们通过TCP连接连接。我们可以使用的主板:Arduino UnoArduino Mega 2560

每个 Arduino 设备实际上都是报告器(例如,它从水表获取数据并将数据传输到服务器)或某些设备的某种远程控制。

目前,此连接不安全。我需要确保其安全,即实现 VPN。

我在这个知识领域是全新的,我正在尝试找出应该使用的方法。

我真的希望我能找到一些协议(protocol)的现有实现,并将其构建到这个系统中。

但是哪个协议(protocol)呢?

我已经发现我无法使用 IPSec,因为 TCP/IP 堆栈是在这些 Arduino 设备中硬件实现的,因此我们无法修改它。

因此,我需要使用一些高于 TCP 的协议(protocol),并且需要用 C(针对客户端设备)和 Java(针对服务器)实现。

我正在尝试查找 SSL、PPTP、L2TP 或其他我仍然不知道的内容的实现。

如果有人在这方面有经验,我很高兴看到您的建议。

最佳答案

对您的后续问题的回复太长...

VPN 通常会创建一个通往基础设施(例如大学计算机系统)的“隧道”。也就是说,VPN 集中器“位于大学网络的外围”,当您连接到它时,您将创建一个“ channel ”进入防火墙后面的系统 - 任何协议(protocol)、任何 IP防火墙内的地址变得可访问。关键是,任何观察从您的计算机到集中器(也称为“VPN 网关”)的流量的人都只会看到您与集中器通信 - 他们不知道您正在与防火墙内的哪些 IP 地址以及使用什么协议(protocol)通信,或者什么数据。相比之下,如果您不需要隐藏所有这些内容,您只需加密数据本身即可;简单的加密算法很容易实现,特别是如果您不需要担心人们窃取您的设备并获取代码。加密所需的复杂程度取决于您的应用程序 - 在速度、内存使用和安全性之间需要权衡。

谷歌。 le“Arduino 加密库”的一些示例;选择一个 key ,然后加密您的数据,然后POST它...

让我们知道你是如何做到的!

关于java - Java 服务器和 Arduino 客户端之间的安全通信 : need a suggestion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463859/

相关文章:

c# - 即使正确发送了 SOAP 请求,Axis2 也总是收到空参数?

java - 将记录插入数据库的 JUnit 测试用例

java - 我想用另一个 JLabel 替换一个 JLabel 但将其保持在相同位置,这可能吗?

c - 如何更改二维数组中的位置

java - Android 中使用 RSA 解密 AES key

java - 从数据库加载 Spring PropertyPlaceholderConfigurer

c++ - openmp:增加线程数会降低性能

c# - 从C#运行C代码

MySQL 加密

java - 如何解密 IRC Bot 的河豚加密消息