首页 > 解决方案 > DTLS 状态共享

问题描述

我有一个使用 DTLS 与
具有某种安全分布式存储的客户端通信的集群(...)

正如我们所知,DTLS 状态相当长。因此,在典型的负载平衡场景中,加密的数据包将被转发到无法解密的服务器

我不是指由于 NAT 绑定更改而导致 src ip 发生更改的情况(这是我们无法控制的)

所以我在想......
为了不对负载均衡器产生一些严重的限制(比如:总是将此 src ip 转发到该服务器并希望最好)并尽可能长时间地保持 DTLS 状态我应该如何使用DTLS?

是否(甚至)值得考虑使用一些 DTLS 会话参数的分布式缓存来扩展一些现有的 DTLS 库(如scandium)(以便任何节点都能够解密数据包)?

JDK>=9 是否可行(那里很难遵循 ssl 代码...)

标签: javadtls

解决方案


这些是有关此信息的一些信息的链接:

https://github.com/eclipse/leshan/wiki/Cluster

https://github.com/eclipse/leshan/wiki/Using-Leshan-server-in-a-cluster

Leshan 项目基于 Californium 和 Scandium,因此集群问题与您的非常相似。不过资料不多。

但基本上很难说清楚。这取决于您的用例/集群配置,并意味着一些负载测试。否则,这只是猜测。

尽可能长时间地保留 DTLS 状态


顺便说一句,TLS 1.2 规范说:

建议会话 ID 生命周期的上限为 24 小时,因为获得 master_secret 的攻击者可能能够冒充受害方,直到相应的会话 ID 退休

所以最好选择一些合理的寿命。


推荐阅读