我有一个用AES-128实现的嵌入式系统.有非常少的闪存/RAM和(8位) CPU运行相对缓慢。公钥密码不是一个可行的选择。该系统连接到互联网,可以有一个或多个独特的AES键编程在制造。
是否有使用预共享对称密钥保护TCP套接字的标准协议?
仅仅在TCP上为AES-CBC使用预共享密钥就足够了吗?交换唯一的会话密钥有好处吗?AKEP2 2/Needham-Schroeder
谢谢。
发布于 2012-06-19 16:09:53
我知道有两种标准协议支持AES加密,而不涉及公钥加密:
如果两者都适合您,我建议您使用TLS选项;它可能需要更多的工作(因为您需要处理会话设置消息);但是,对TLS的支持是更多的命令,这确实意味着随着时间的推移,密钥实际上会发生变化(使用IPSec手动键时,键是固定的;如果它们被泄漏,那么您就死定了)。
当然,您可以设计自己的协议,但是我强烈建议您坚持使用那些知道自己在做什么的人设计的协议。
发布于 2012-06-19 16:06:58
我认为TCP的真正标准是带有PSK加密套件的TLS。如果您的硬件中有AES-128,并且PK不是一个选项,那么您可能希望使用TLS_PSK_WITH_AES_128_CBC_SHA加密套件(还有其他选项可以使用证书进行身份验证,或者使用DH进行转发安全,但这些选项似乎都是非启动的)。
TLS-PSK似乎也非常方便,因为任何‘大’的盒子,你的系统交谈,可以使用现成的软件进行沟通。
RFC 4279是标准参考。OpenSSL、GnuTLS、CyaSSL和其他几个SSL/TLS实现支持PSK (但无论如何,您可能不得不黑掉对AES硬件的支持)。
https://crypto.stackexchange.com/questions/2976
复制相似问题