发布于 2016-06-14 15:20:33
从我(快速)阅读规范,相同的特定于设备的密钥("Appkey")被用来“解密”服务器上的明文消息。我将“解密”放入引号中,因为它使用AES解密来对消息进行实际加密;只需实现AES加密的接收设备就可以解密密文。请记住,这些都是非常资源限制,低功耗的设备。
无论如何,为了回答你的问题--我是根据规范第6.2.5节得出的--似乎很多字段都是可以预测的,而且关键是没有变化的,所以它们依赖于24位的nonce (nonce =每一次使用一次的数字)的唯一性。2^24约为1 600万。如果现在被重复使用(即使是偶然的,例如,如果它是随机生成的,并且有一个现在的碰撞(只是谷歌的“生日悖论”),那么你就有了一个真正的安全问题。
我还没有花足够的时间来进一步理解/批评安全措施,但是我敢打赌有一些实现使用rand()来实现现在(悲伤的脸),或者更糟的是,一个硬编码的值(非常悲伤的脸)。
https://stackoverflow.com/questions/37812601
复制相似问题