
让我们首先赞扬树莓派:它给许多人带来了廉价的计算,启发和启用了教育,无疑是一个巨大的好处。我每天使用自己的 Pi,我们经常使用它的灵活性来执行硬件测试,从访问 UART 到阅读闪存。那么,我们为什么不建议开发人员从安全角度使用它呢?
它提供了一个灵活的平台-你可以在Pi 4上开发一个解决方案,然后只需将该图像直接移动到计算模块即可。但是,这种快速的原型造型和发展导致一些智能设备供应商简单地将 Pi 嵌入到他们的智能"事物"中。同样,这是一件好事,因为它减少了进入市场的障碍,对不对?
从安全角度来看,问题如下:Pi 没有安全的引导加载器。
安全启动主要有两个目的:防止设备运行它不应该运行的代码,并使存储加密变得容易,从而保护任何机密(无论是知识产权还是客户的数据)不被提取和审查。
对于存储,Pi 使用 SD 卡或闪存。如果您将加密密钥放在上面,它们可以简单提取。弹出盖子并拉出 SD 卡,或拉出计算模块。将任何一个放入阅读器中,您就拥有解密数据和恢复凭据所需的一切。


当我们看一个早期的智能汽车充电器,我们发现了一个正常的树莓派3。我们只是拉了 SD 卡并阅读了整个文件系统,其中包含的远远超出我们的预期。


查看使用 Pi 计算模块的较后汽车充电器,再次使用开发板拉取模块并读取文件系统是微不足道的。

此外,因为没有完整性测试,如果可行的话,我们改变文件系统,插入一些恶意代码,然后让设备运行,而我们的代码允许我们完全远程控制设备。
你应该做什么?
使用用于此目的的硬件。市场上有很多伟大的微处理器,提供值得信赖的执行环境,一个安全的飞地和良好的熵来源种子加密操作。不要忘记正确配置它们,特别是围绕更改根密码和设置逻辑引信以防止代码读取。
在我们的博客中,这里和这里还有很多关于这个问题的。
反参数
我们经常被告知,安全启动是毫无意义的,因为一个人可以简单地更换硬件,如果一个人有物理访问设备。
这是事实,但它没有注意到,如果硬件被替换,所有用户的秘密仍然是安全的。如果受害者的 Wi-Fi PSK 存储在它上面,在物联网设备的情况下,它丢失了,为设备用户提供服务的凭据也丢失了。
所以,是的,当然可以更换硬件,但这是一个不同的攻击与不同的风险,是很难减轻。
愚蠢的论点
一个充电器供应商宣布,他们将继续使用Pi作为...转述一下,"其他制造商也使用它"。
这是一个荒谬的论点。每个人都可以学习和提高。
这也不是一个伟大的商业论点-Pi CM是不便宜的相比,一个MCU的目的是,如STM32。虽然一开始可能很便宜,因为一个人不需要专门的嵌入式系统工程师/开发人员,因为一个缩放生产使用Pi的成本间接费用变得非常显著。
最后,可能会出现基于良好标准(如ETSI EN 303 645)的法规,该标准在条款 5.7-1 中规定了安全引导加载器的要求。由于无法在目标市场销售产品,因此被迫重新设计您的产品将非常痛苦和昂贵。