【发布时间】:2017-07-10 16:57:35
【问题描述】:
我正在寻求一些关于如何最好地防止(或至少阻止)嵌入式系统上未经授权的软件升级的具体建议。它不需要是防弹的,我们现在可以假设系统本身已被充分锁定,因此任何人都无法获得未经授权的访问。
我的计划是基本上在系统上运行一个安装程序进程,该进程将从任何地方接收更新包,但在尝试安装它们之前可以确保这些包来自受信任的来源(即我)。
简而言之,更新包将有实际的安装包,加上一个只能由我自己生成的匹配数字签名。此外,签名将完全由自己生成,不涉及任何外部机构。
以下是我对可能流程的想法:
生成私钥/公钥对,并将公钥与嵌入式系统本身一起分发。
创建软件安装包时,使用我们的私钥通过签名生成器通过管道传输包的内容(或包的 MD5)。
随该签名分发软件安装包。
让安装程序根据软件安装包检查签名(使用它已有的公钥)并仅在匹配时安装。
如果有人发现此方案有任何问题,我将不胜感激,并提供有关如何避免这些问题的任何具体建议。此外(尽管这不是问题的主要目的),任何有关生成密钥的工具的建议都将不胜感激。
【问题讨论】:
标签: digital-signature software-update