有没有人在 Android 上使用过 DTLS,或者是否有支持 DTLS 的开源 Java 实现?
在 Android 上保护 UDP 流量的其他选择是什么?
DTLS 支持在纯 Java 中尚不可用。我们最终通过 JNI 使用 OpenSSL。我怀疑你会在 Android 上找到任何东西。
您应该使用 TLS(这意味着您必须使用 TCP)。
wolfSSL 最近围绕轻量级 SSL/TLS 库 CyaSSL 创建了一个开源 JNI 包装器。包装器支持 DTLS 1.0 和 DTLS 1.2 - 除了当前最高 TLS 1.2 的 SSL/TLS 标准。
CyaSSL 和 JNI 包装器均在 GPLv2 下获得双重许可,并获得商业许可,以适应个人/爱好和商业项目的需求。
您可以在此处找到我们的 JNI 包装器:http: //yassl.com/yaSSL/Products-wolfssljni.html
现在 OpenSSL for Android 不是一个好的选择,我目前正在使用 Mbed TLS 库,可以使用 Android NDK 轻松编译,工作正常,占用空间小,推荐它。
Californium在 Java 中提供了一个 DTLS 1.2 库(钪),因此您不需要任何本机的东西来使其工作。当发生地址更改时,它支持DTLS 1.2 连接 ID以克服损坏的 DTLS 加密上下文。根据用例,CoAP 也可能有意义。使用这两种方法可以让安卓设备交换使用云服务器加密的数据,在蜂窝或 wifi 之间移动或切换,而无需新的握手。