security / crypto:使用zeroMQ加密TCP消息

时间:2014-04-10 04:06:55

标签: security tcp cryptography zeromq

我是一名安全/加密新手,正在寻找关于我的系统是否安全的建议,如果没有,加密是否对我来说是正确的答案。这是我的情况:

  • 我通过远程服务器之间的zeroMQ req / rep发送TCP消息
  • 系统有固定数量的N个发送者和1个接收者
  • 我不是 TOO 担心其他人阅读我的信息(虽然最好不要),但我绝对不希望别人能够伪装成我的发件人之一,因为这些信息包含说明接收器执行
  • 延迟/性能是一个很大的因素。我希望发送100k +消息/秒

理想情况下,有没有办法让我知道谁是授权发件人,在我的接收器上指定只接受来自某某人的消息并安全地知道?在zeromq本身或其他方法?

感谢大家的帮助!

1 个答案:

答案 0 :(得分:0)

如果您在所有发件人之间共享AES密钥(最好通过SSH或可靠的其他公钥基础结构),那么您将非常安全。接收方不必确切地知道发送请求的系统,它是相同的密钥。

但是:由于您发送的数据包都很小,因此您必须确保以巧妙的方式填充数据(可能是因为事务ID已经在接收方端进行了计数检查) ,发件人ID +一些随机数据)。如果你不这样做,你将对replaying attacks开放,无论恶意的人是否有钥匙。

另一种有趣的方法是以某种方式从接收器发送challenge-responses,i。即与一些公共密钥一起散列的随机数(其中一个应被视为" salt"?)。请不要使用对称加密密钥,如果有人设法以某种方式攻击挑战/响应,你也会给他们你的神圣共享密钥。

使用散列的回复,"回答"对于挑战,证明发送者拥有与接收者/挑战者相同的秘密密钥,并且可以非常快(SHA-1或类似的快速)。

玩得开心。不要,你永远不敢将你的解决方案用于真实。