【问题标题】:Datagram Transport Layer Security (DTLS) on Android/JavaAndroid/Java 上的数据报传输层安全性 (DTLS)
【发布时间】:2010-05-26 15:05:16
【问题描述】:

是否有人在 Android 上使用过 DTLS,或者是否有支持 DTLS 的开源 Java 实现?

在 Android 上保护 UDP 流量还有哪些其他选择?

【问题讨论】:

    标签: java android udp datagram dtls


    【解决方案1】:

    DTLS 支持在纯 Java 中尚不可用。我们最终通过 JNI 使用 OpenSSL。我怀疑你会在 Android 上找到任何东西。

    您应该使用 TLS(这意味着您必须使用 TCP)。

    【讨论】:

    • 谢谢。我假设您使用了 OpenSSL 的 DTLS。使用 JNI 使用 OpenSSL 的性能如何?你的代码是开源的吗?
    • 该项目不是开源的。性能不错,但我们最终决定不值得使用 DTLS。与 TCP 相比,UDP 有很多优势,您可以节省 3 次握手(我们网络上的 4 毫秒)。但是,当您添加 TLS 的开销时,UDP 和 TCP 之间的性能提升并不那么明显。
    【解决方案2】:

    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

    【讨论】:

    • 上面的许可明确表明它确实是商业的,但也可以在开源 GPLv2 许可下使用。不想隐瞒这个事实,只是提供一个替代选项。
    【解决方案3】:

    现在 OpenSSL for Android 不是一个好选择,我目前正在使用 Mbed TLS 库,使用 Android NDK 轻松编译,运行良好,占用空间小,推荐它。

    【讨论】:

      【解决方案4】:

      Californium 在 java 中提供了一个 DTLS 1.2 库(钪),因此您不需要任何本机的东西来使其工作。当发生地址更改时,它支持DTLS 1.2 Connection ID 以克服损坏的 DTLS 加密上下文。根据用例,CoAP 也可能有意义。同时使用这两种设备可以让安卓设备交换使用云服务器加密的数据,在蜂窝或 wifi 之间移动或切换,而无需新的握手。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-06
        • 1970-01-01
        • 2012-04-12
        • 2021-02-24
        • 1970-01-01
        • 2015-06-09
        相关资源
        最近更新 更多