首页 > Crypto > 当安全问题变得越来越个性化的时候
当安全问题变得越来越个性化的时候
来源:Atmel  时间:2015-01-05

如果使用 Crypto Authentication 设备对嵌入系统进行验证,就要求必须对设备进行编程,这一编程过程通常被称为“个性化”过程,其中包括对所涉及到的设备以及希望受到保护的档案的配制,而档案中最重要的部分当然就是密钥了。

个性化过程可以由客户自己完成、也可以由客户指定的第三方完成、或者由“Atmel 安全个性化服务” 自身来完成。如果客户选择了第三种方法,Atmel 公司将通过安全途径把客户的密钥编程到器件中,也就是说客户的密钥在整个过程的任何步骤中都不会被暴露,即使是我们自己也无法获得。该服务主要针对的是具 有较高容量要求的客户,可以让客户避免在将器件放置到目标 PCB 上之前必须要花费精力完成复杂的“个性化”工作。

当安全问题变得越来越个性化的时候

Atmel CryptoAuthentication 安全个性化服务

器件的配制一旦设计完成后(Atmel 的应用工程师在必要时可以提供帮助),客户会收到一个“密钥交换包”,其内容包括:

1. 个性化工具

2. 一个空白的 xml 格式文档,说明器件的存储配制

3. 加密密钥

如果一位 Atmel 的现场应用工程师(FAE)对设计提供了帮助,那么格式为.xml 的文档就不是空白的,里面包含了客户希望得到保护的档案中除密钥之外的其他内容。

个性化工具将.xml 格式的文档以及加密密钥作为输入内容,创建一个加密文件然后传送回 Atmel 公司。这个工具还可以针对客户 .xml 格式文档中的数据进行某种格式设置和逻辑测试。客户将其密钥连同保密档案中的其他数据输入 .xml 格式文档中。加密密钥在位于 Atmel 设施内的“硬件安全模块”(HSM)上产生,同样是在这里完成对集成电路封装后的测试和密匙插入工作。

在这个过程中,HSM 可以确保客户的密钥在传输和保存状态时都不会以明文显示或者对任何人可读,甚至包括 Atmel 自己。这个传输过程在三方面之间完成,即客户、位于Atmel 生产现场的 Atmel 硬件安全模块(HSM)、还有放在 Atmel 生产现场测试器上的 Atmel CryptoAuthentication 器件。

这一过程背后的思路很简单,客户创建密钥,将其以加密形式传输给 Atmel, 存储在 HSM 里,HSM 是一个安全模块,即使是我们自己也无法读取其数据。当将密钥传输到器件中时,首先在 HSM 内进行解码,然后重新加密后传输给器件。只有当密钥安全地放入器件内部后,且器件本身(根据定义)是受保护的硬件,密钥才会被解码后加载到指定的存储条 中。下图准确地显示出了在三方之间进行密钥交换的相关步骤。

当安全问题变得越来越个性化的时候

过程图

步骤1:Atmel 将“密钥交换包”提供给客户

步骤2: 客户创建最终会输入 crypto 器件中的密钥。密钥由客户妥善保管(可借助枪、警卫和狗等手段)。步骤2到步骤6都在客户处完成。

步骤3:客户将密钥导入 .xml 格式文档中。

步骤4:客户运行个性化工具。该工具会产生一个随机数字,作为 AES 加密密钥。

步骤5:AES 密钥用 RSA 加密算法加密,使用客户从 Atmel 那里收到的 RSA 公共密钥。加密后的 AES 加密密钥成为文档的一个组成部分被发回到 Atmel。这种用一个 AES 密钥执行“批量”加密任务,然后密钥本身用一个 RSA 密钥进行加密的方式被称为密钥包装。

步骤6:完成后的 .xml 格式文档(内含所有的密钥和完整的档案)通过一种 AES 算法用 AES 加密密钥加密(注意:一旦用 AES 加密密钥给相关密码加密后,就会在个性化工具中被销毁)。从个性化工具输出的文档再被送回 Atmel 并部署在位于 Atmel 最终封装测试场所的一个服务器上。

步骤7:当客户的器件在 Atmel 最后封装测试场所进行编程时,用存储在 HSM 内的 RSA 私有密钥在 HSM 内对加密后的 AES 密钥进行解码(这个私有密钥当然是 RAS 公共-私有密钥对中的另外一部分)。随后 .xml 格式文档在 HSM 内部的安全存储内用 AES 解码。

步骤8:当需要将密钥上传到测试设备上的 CryptoAuthentication ™ 器件时,用会话密钥对数据重新加密,然后将其传送到器件上完成解码并放入器件的存储当中。

步骤9:最后,加密后的代码被上传到器件中并进行解码。密钥被上传到指定的存储条中。解码和上传操作都在受到保护的 crypto 器件内部进行,因此绝对不会以明文的形式出现。

一旦客户器件的特殊工作步骤编程完毕(完成个性化),HSM 存储中的加密密钥将被废弃(即被销毁)。同样地,每个客户以及每个 HSM 都会被授予一个独有的 RAS 密钥对,密钥对不会重复使用。这个安全密钥交换过程可以确保密钥一直处于保密状态,这一点对于任何一种类型的安全保障都是关键所在。

如果你想要将基于硬件的安全保障纳入到你自己的嵌入系统当中,请从这里开始!

点击阅读英文原文