首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >加密连续/小型UDP数据的最佳实践

加密连续/小型UDP数据的最佳实践
EN

Stack Overflow用户
提问于 2010-06-15 03:09:20
回答 7查看 27.7K关注 0票数 29

我有一个应用程序,我必须使用UDP每秒通过网络发送几个小数据。应用程序需要实时发送数据(无需等待)。我想对这些数据进行加密,并确保我所做的事情尽可能安全。

因为我使用的是UDP,所以没有办法使用SSL/TLS,所以我必须单独加密每个数据包,因为该协议是无连接/不可靠/不受监管的。

现在,我正在使用一个128位密钥,该密钥来自用户的密码短语,AES采用CBC模式(使用AES-CBC的PBE)。我决定使用带有密码短语的随机盐来派生128位密钥(防止对密码短语的字典攻击),当然还使用I(以防止对数据包进行统计分析)。

然而,我关心的是几件事:每个包包含少量的数据(就像每个包的几个整数值),这将使加密的包容易受到已知明文攻击(这将导致更容易破解密钥)。此外,由于加密密钥是从密码短语派生的,这将使密钥空间变得更小(我知道salt会有所帮助,但我必须通过网络发送salt一次,任何人都可以获得它)。有了这两件事,任何人都可以嗅探并存储发送的数据,并尝试破解密钥。虽然这个过程可能需要一些时间,但一旦密钥被破解,所有存储的数据都将被解密,这对我的应用程序来说将是一个真正的问题。

所以我的问题是,使用无连接协议(UDP)发送/加密连续的小型数据的最佳实践是什么?我的方式是最好的方式吗?...flowed?...Overkill?

请注意,我不是要求一个100%安全的解决方案,因为没有这样的事情。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-06-15 07:58:32

您有几个选择。您可以使用DTLS,它是一种适用于数据报的TLS版本。它在RFC中指定,并在openssl库中实现。您还可以使用IKE/IPsec协议并使用IPsec部分的UDP封装。通常,IPsec在操作系统级别可用。您还可以使用OpenVPN,它看起来是用于密钥交换的TLS和基于UDP的专有分组加密协议的混合体。

票数 19
EN

Stack Overflow用户

发布于 2010-06-15 03:20:23

如果你的问题是数据太小,用随机字节扩展数据怎么样?这将使明文更难猜测。

票数 4
EN

Stack Overflow用户

发布于 2014-04-16 00:07:20

这个问题有点老了,但是如果使用One Time Pad类型的方法呢?您可以使用安全可靠的传输机制(如HTTPS)将一次性密钥从服务器传输到客户端。可能有两组密钥--一组用于客户端到服务器,另一组用于服务器到客户端。然后,每个数据报将包括序列号(用于标识一次性密钥),然后包括加密消息。因为每个键只用于一个数据报,所以您不应该暴露在小数据问题中。也就是说,我不是这方面的专家,所以在使用之前一定要检查一下这个想法……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3040123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档