我正在开发一个需要使用DTLS进行通信的颤动应用程序。据我所知,目前在Dart API中没有对DTLS的支持,只支持TLS。
有没有人能推荐我能做什么?也许只是关于如何让Flutter应用程序在DTLS中进行通信的高级步骤?有什么我应该注意的小贴士吗?
谢谢!
发布于 2018-07-10 08:54:49
十年前,我用Java编写了一个DTLS服务器(在Bouncy Castle提供支持之前),并且在过去的几年中,我已经将大量Java代码移植到Dart (但不是DTLS!)。
我快速浏览了服务器代码,了解在纯Dart实现(客户端-希望这是一个正确的假设)中最大的陷阱是什么。两个直接的困难似乎是解析服务器的证书链(DER解码以获得可用的RSA公钥),然后使用该RSA密钥加密预主秘密。(在pub中有一个旧的RSA实现,但我找不到任何ASN/DER库来帮助处理证书。)如果不能访问信任存储区,验证根CA证书将非常困难。
像随机数生成(如何安全?)、SHA/MD5散列、与网络字节顺序的串行化、处理计时器之类的大多数其他东西都是可以做到的。
总而言之,考虑到BC的支持,Rémi向Java建议一个平台通道是正确的。
https://stackoverflow.com/questions/51254327
复制相似问题