我正在建立一个嵌入式设备,我计划分发。设备将定期轮询我的服务器,以检查更新和命令。我希望设备验证任何消息(由用Go编写的客户端解析的JSON字符串)和更新实际上都来自我。
我的计划是使用Go的密码/ecdsa库为每个设备生成一个私钥/公钥对,将公钥存储在嵌入式设备上,并使用私钥对每条消息进行签名。然后,该设备将使用其公钥验证接收到的任何消息。
从我到目前为止所了解到的情况来看,RNG (在对消息进行签名的服务器上)可能是一个潜在的弱点。我还有其他明显的缺点/问题吗?
发布于 2013-08-11 08:55:01
由于您通常会问“我缺少其他明显的缺陷/问题”,所以我建议您对整个更新流程进行批判性的检查。我不认为您服务器上的PRNG的质量是一个明显的弱点,只要它是相当强的,因为在服务器上,您可以选择相当好的例程来生成一个公平的PRN (请注意,在常规服务器或客户端机器上生成一对好的PGP密钥是可以接受的)。
对整个更新进程进行的批判性审查应考虑到以下清单,绝不是详尽无遗的:
当您考虑以上情况时,如果您的嵌入式应用程序只是一个工业控制器,或者系统由于流氓更新而失败,则会造成地区性的灾难,这将产生很大的影响。
https://crypto.stackexchange.com/questions/9676
复制相似问题