如果你错过了第一部分--什么是安全烧录,或第二部分--加密:对称和非对称密钥,或第三部分--建立硬件信任根,你可以在这里浏览。
公钥基础设施是一种基于标准的安全技术,用于保障网络连接设备的安全已有一些年头了。它涵盖了许多用例,并在设备、服务和用户之间提供安全的加密通信和相互认证。通过使用数字证书,每个连接的 "东西 "都可以通过使用公共密钥与人和组织等实体绑定。这些证书的使用在连接的设备和颁发证书的认证机构之间建立了一个信任链。然而,与RoT是微控制器系统安全的基础类似,唯一的身份是有效的PKI的关键。
那么,身份认证有什么特别之处?我可以简单地使用唯一的ID,甚至是当今大多数微控制器都可以读取的UUID(通用唯一ID)吗?不,这不是一个身份,它只是一个标识符。为了使PKI发挥作用,我们需要为生产的每一个设备随机生成一对加密密钥。该密钥对必须被提供给微控制器的RoT。私钥必须受到硬件RoT的保护,而公共部分则保存在证书中,两者都是在制造过程中提供的。该证书将由一个证书颁发机构签署,从而为身份提供一种认证手段。这就是身份的含义,不仅仅是一个数字,而是一种加密技术,通过随机生成的密钥对来识别一个 "东西"。密钥对的公共部分是以证书的形式提供的,该证书已由一个受信任的证书机构签署(认证)。密钥对的私人部分被用来证明身份。
数字签名是一种用于验证数字信息或文件的真实性的机制。一个有效的数字签名为接收者提供了强大的信心,即信息或文件是由已知的发件人创建的(认证),以及信息在传输中没有被改变(完整性)。让我们研究一下创建数字签名的过程,以及它与我们的软件安全问题有什么关系。
我们想发送一个软件图像给收件人,我们想用数字签名来为收件人提供信心,即该软件来自发送者(认证),在传输过程中没有被篡改(完整性)。图1是流程图解。
首先,我们把我们的软件图像,一个二进制文件,用HASH函数来处理它。HASH函数获取一个任意的数据块(我们的二进制文件),并将其映射为一个固定大小的比特串。例如,如果我们使用SHA-256 HASH函数来处理我们的二进制文件,输出将是一个唯一的256位值。如果我们改变二进制文件的一个比特并重复这个过程,就会产生一个完全不同的256比特值。该机制用于检查数据块的完整性。
为了创建一个数字签名,我们现在使用发送者的私人非对称密钥对HASH函数的输出(256位值)进行加密。必须强调的是,私钥必须由发件人安全地持有。这就是PKI的基础。接收者现在同时收到二进制文件和与之相关的数字签名。使用发送方的公钥,接收方对签名进行解密,从而暴露出HASH值。接收方使用相同的HASH函数处理二进制文件。如果产生的HASH值与从数字签名中解密的HASH值相同,则二进制文件的完整性是完整的(见图2)。
我们接下来将讨论硬件安全模块,为什么它被信任以及如何为HSM打包一个二进制文件。
同时,如果你有任何问题或需要安全烧录服务,请与我们联系,我们有当地的工程和销售团队随时准备提供帮助。你可以在这里找到我们烧录点的完整列表。
另外,如果您有任何问题,或希望我们在未来的博客中关注围绕物联网安全烧录的其他主题,请不要犹豫,让我们知道: programming@epsglobal.com。
期待下期...