Q&A –Secure Bootloader网络研讨会2017年11月29日

I’ve有几个要求发布Q&来自我的网络研讨会的A,以便与会者可以离线查看它们。考虑一下之后,我认为&我的博客上提供的会话对于那些曾经’能够参加仍然学习一些东西。

以下是最初于2017年11月29日举行的Secure Bootloader Design Techniques的已编译问题和答案。如果您错过了网络研讨会,仍然可以查看它 这里 .

问题 答案
是否有许多产品线在硬件中提供*非对称*加密功能,或者通常仅在需要的地方通过软件来完成? 是。借助物联网设备,越来越多的MCU’针对该市场的产品包括这些功能。
您是否在引导程序中使用了SDA优化? 只是将优化设置为默认值。代码大小可能会压缩很多。
您使用的Atollic IDE是免费版还是专业版? 正在使用专业版,但所有示例将在免费版中运行
网络研讨会结束后,有什么方法可以获取ppt? 可以提供pdf。
Isn’使用私钥方案是否存在很大的缺点,因为可以将零件脱盖并使用显微镜从闪存中读取私钥? 是。还有一个问题,如果你不这样做’如果没有合适的工具而忘记了钥匙或丢失了钥匙,则设备现在已变砖。
对于与制造伙伴共享固件的情况:您知道有哪些生产程序员‘secure remote’访问我们可以用来将固件加载到其中而不先将其传递给我们的合作伙伴? Yes. SEGGER has a 安全 flash unit that can be used to protect and program a device.
对于没有’t have dedicated 安全 key storage, do you think that typical flash readout protections are adequate to protect private keys? 这将取决于应用程序。一世’我们已经看到了很多设备,可以让您设置一个值,然后一旦设置,您需要知道密钥,MCU才能让您访问“extra”诸如阅读和编程之类的功能。这些可能是第一层还可以。在许多情况下,安全性就是要建立多种防御措施,这样一来,如果突破了一层,则另一层就可以起到阻止作用。目标是要有足够的路障,以至于黑客会认为它工作量过多或不值得投资来攻击和破坏系统。
您在引导程序中使用哪种调度程序? 引导程序使用beningo.com洞察页面上的简单协作计划。如果您有兴趣了解更多信息,可以发送电子邮件 [电子邮件 protected]
是否有一个外部安全芯片来保存密钥并使用您不知道的开放接口进行加密’t need an NDA? 有称为安全元素的设备。我知道意法半导体确实做到了。您可以在他们的网站上看看。一世’在接下来的几个月中,m还将就这些主题写一些博客和论文,并将与我的时事通讯一起发送出去。
以及当设备处于攻击者状态时,如何保护设备上使用的密钥不被更改’s hands? You use a microcontroller that has 安全 storage, an area in flash that can be written 上 ce and never read from externally.
Wikipedia defines pub key crypt like this: //en.wikipedia.org/wiki/File:Public_key_encryption.svg And it makes sense b/c the pub key is public, can be known by the public and therefore 上 ly used for encryption but not decryption. The priv key is private because it can decrypt data. 谢谢!
在跳转到应用程序之前,如何检查应用程序的软件完整性? 有几种不同的方法,首先可以生成一个散列并确保其匹配(未修改),然后可以验证是否已对复位向量进行了编程,然后验证是否存在’要求留在行李箱中。如果所有这些都通过,则引导加载程序将跳转到应用程序。
这些是“secure elements” the same as “可信平台模块”,它们的广告似乎有所不同,且费用低于TPM No there is a difference. The TPM has a MCU inside where to the 安全 element does not
symmetric cryptography raise a question how to 安全ly imprint private key in actual device. Any comment about this? This usually has to be done at the time of manufacturing. You could use a flash tool from SEGGER for example. They have a 安全 tool that can program keys.
自己实现加密算法很少是一个好主意。实施中的细微缺陷可能会导致安全漏洞,使黑客容易入侵。您可以建议使用现成的库吗? 我通常将WolfSSL作为加密库的一个示例。
什么是a S-Record ? 用于传输应用程序的应用程序图像格式。
数字签名将需要某种形式的公共密钥分发系统。在没有将大延迟引入网络的情况下,如何在大型IoT / WSN分发中发生这种情况? 公钥可以提前分配或在交易过程中分配。
为什么初始向量不共享? It’用于提供随机化方法,以使数据流更难以破解
即使哈希可以被打破
so there is no way to say that we can have a 安全 boot code
如果它们已经坏了。有很多没有。
那么您是否在数字签名选项中发送摘要的两个副本 一份
引导加载程序代码是否始终以汇编语言指令(强制性)开头? 通常,引导加载程序的启动代码采用汇编语言,并由芯片制造商提供。将显示一个示例,说明如何从引导加载程序跳转到应用程序代码,但它不会’不必使用汇编代码。
控制器通电后,如何定义从何处开始执行控制器指令? 是。从复位向量跳转到的启动代码会初始化cpu,然后跳转到引导加载程序主代码以对引导加载程序进行启动。
我认为固件和签名已切换
如果您从安全性POV中根据AES加密或未加密内容计算哈希和签名,是否会有所不同(以及解决方案所需的反向工程工作)? 它不应该’t matter
是什么阻止仅重写引导加载程序,然后再执行任何不安全的操作? 引导加载程序应使用微控制器上的闪存安全位锁定,以使引导加载程序无法擦除和重写。
公钥和私钥之间的区别? 您放入金库的私钥,不要’与任何人分享。否则,系统将受到威胁。所有人都可以免费使用公钥。
什么是“mode” in AES? 哥伦比亚广播公司
密码学依赖于*好*的随机数生成器。我怎么知道我可以在系统中找到的硬件是“好”的? 您需要深入研究数据表,以查看数字生成器的随机性。我会寻找具有TRNG的设备,这是一个真正的随机数生成器。
为什么不点击? it’一个选项。只是在本讲座中没有讨论。
处理前,您将加密的图像存储在哪里? 它们可以存储在主机,服务器上,甚至可以下载到本地存储源(例如SD内存)。
为了评估TRNG,我需要成为密码学和硬件开发方面的专家。关于如何减少工作量的任何建议?第三方公司可以这样做吗?此类专家在不同设备上评估不同实现的公开信息? 您可以使用专门从事这一领域的安全公司。前NSA员工已经开始采取多种行动。
哥伦比亚广播公司 有专利问题吗? 您将需要就此咨询您的专利律师。
哪种哈希算法更节能? 这将取决于微控制器上的硬件加速。您应选择具有加密硬件加速器的微控制器,并选择其支持的算法以最有效地执行。
我们可以看到定义启动/加载引导加载程序规则的启动代码吗? 我们已经看过了。网络研讨会结束后,您将需要查看记录。
那么,当您进行“secure”引导加载程序?仅仅依靠硬件功能,并希望芯片供应商在没有任何进一步检查的情况下做得很好? 您可以定义所需的安全级别,确定风险,评估硬件,然后开发具有多层安全性的解决方案。安全不是’您要做的是一站式服务,但您要对解决方案进行分层,以便在违反某一层的情况下另一层可以帮助保护解决方案。
在大型IoT部署中,网络的广播特性容易受到窃听和中间人攻击,一个人如何安全地分配数字签名密钥? 因此,对于数字签名,您不必’不必担心每个人是否都有公共密钥。签名的目的是验证固件是从制造商而非其他来源获得的。仅制造商应具有用于加密签名的私钥。 Anyoen可以解密它并验证固件。
哈希,对称密钥,RSA代码可用吗? 通常可以使用它们,具体取决于您使用的微控制器供应商或第三方组件的可用性。
组理论密码学似乎是最节能的安全系统,不确定为什么它没有在业界得到采用。 我也不确定。
AES加密需要初始向量,这可以是一个随机数。为了解密,初始向量必须相同,因此如果这是一个随机数,我们如何知道加密中的初始向量? 建议对每个消息使用新的IV。解密不需要IV,但是IV有助于使数据随机化,因此无法将重播消息用作攻击媒介。
回到幻灯片进行数据加密。有一个用于加密的初始向量。这个初始向量也是解密所必需的,对吧?如果是这种情况,如何将其安全地转移到引导加载程序中/或者应将其永久存储在设备上? 解密不需要。随机数用于对数据字段进行随机化,因此无法使用重播攻击来破坏系统

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.