首页 > 解决方案 > 在 Dart 中使用 DTLS

问题描述

我正在开发一个需要使用 DTLS 进行通信的 Flutter 应用程序。据我所知,目前 Dart API 中不支持 DTLS,只有 TLS。

谁能推荐我能做什么?也许只是关于如何让 Flutter 应用程序在 DTLS 中通信的高级步骤?关于我应该注意什么的任何提示?

谢谢!

标签: dartflutterdtls

解决方案


十年前,我用 Java 编写了一个 DTLS 服务器(在 Bouncy Castle 支持之前),在过去的几年里,我将很多 Java 代码移植到了 Dart(但不是 DTLS!)。

我快速浏览了服务器代码,以了解在纯 Dart 实现中最大的陷阱可能是什么(客户端的 - 希望这是一个正确的假设)。两个直接的困难似乎是解析服务器的证书链(DER 解码以获取可用的 RSA 公钥),然后使用该 RSA 密钥加密预主密钥。(在 pub 中有一个旧的 RSA 实现,但我找不到任何 ASN/DER 库来帮助处理证书。)如果不访问信任库,验证根 CA 证书会很棘手。

大多数其他东西,如随机数生成(有多安全?)、SHA/MD5 散列、序列化到/从网络字节顺序、处理计时器都是可行的。

总而言之,鉴于 BC 的支持,Rémi 向 Java 建议一个平台通道是正确的。


推荐阅读