所有关于电路
新闻

SoC安全意味着什么?无线壁虎系列2近距离观察

2019年7月24日,经过马克·休斯

什么是安全的SoC实际上......安全?签出真实世界示例IC中基于硬件的安全功能的概述。

什么是安全的SoC实际上......安全?签出真实世界示例IC中基于硬件的安全功能的概述。

安全性是在开发新设备时的工程师的重要考虑因素,特别是对于IOT应用程序。选择安全组件可以在这个过程中走很长的路 - 但无论如何,设备都是安全的,这意味着什么?

在本文中,我们将仔细研究硅实验室无线壁虎系列2 EFR32xG21无线SoC。该IC具有安全核心和无线电,在硅上沿着ARM-M33处理器实现。它设计用于使用ZigBee,线程和蓝牙协议

来自Silicon Labs的图像

据Silicon Labs称,系列2 SoC不同于其前身,它更加注重为智能家庭、智能城市和工业物联网应用提供功能。

链接预算

该EFR32蓝壁虎SoC可在10dbm或20dbm输出,并根据无线电配置,灵敏度高达-104.5 dBm。这提供了高达124.5 dB (915 MHz 2GFSK, 0.6 kbps)的链路预算。请参阅Silicon Labs文档UG147.有关其他配置,范围和链接预算文档。

EFR32内的安全性

嵌入EFR32的硅模具中,以及ARM Cortex-M33处理器,是包含真正随机数发生器(TRNG)和硬件加密加速器的硬件安全核心。该核心具有配置和优化的硅门,针对特定的加密任务进行了优化,包括:

  • 高级加密标准(AES)
  • 椭圆曲线加密(ECC)
  • 安全哈希算法
  • 32位循环冗余检查(CRC32)

安全启动、安全调试和安全调试解锁

通常情况下,当一个坏行为者物理访问你的微控制器时,他们可以做所有类型的恶意行为,从读取内存到上传新的固件,再到找出你的私人安全密钥。Silicon Labs通过安全引导和安全加载器(RTSL)以及安全调试特性消除了许多攻击向量。安全引导通过只执行正确签名的代码来防止恶意软件的注入。

安全引导可确保只有正确签名的固件将在无线壁虎系列中运行2.黑客是否尝试过空气(OTA)更新,或者物理连接到JTAG引脚,他们可以做的最糟糕的是“砖”装置。

Secure Debug可确保设备关闭的所有数据都完全加密。此安全功能可确保只有设备的原始程序员可以解锁并解释调试数据。通常情况下,这也意味着设备的制造商无法帮助失败分析,因此Silicon Labs包含安全的调试解锁功能,允许硅实验室仍然在设备上工作。客户提供行为空白设备,以及安全键到硅实验室,然后可以解密设备上的数据。

真正的随机数发生器

任何安全系统的关键组件是随机数生成器。这一点硬件工作要连续地创建一个图案和不可预测的1S和0s的字符串。EFR32xg21使用环形振荡器生成随机数。环形振荡器由奇数逆变器阶段制成。

三级环形振荡器原理图。图片由Guerberj提供

作为随机数生成器的环形振荡器利用了这样一个事实:从一个振荡器到下一个阶段有一个轻微变化的门过渡延迟(抖动)。当第一阶段的输出从低逻辑转换到高逻辑时,第二阶段不会立即改变状态。下一级输入处的少量电容减缓了电压的变化。一旦达到阈值电压,第二阶段的状态发生变化,这个过程围绕环继续,直到最后一个阶段触发第一阶段,然后整个循环重复。结果是方波以循环的方式围绕环传播。如果振荡器的一个单级以振荡频率的一小部分异步采样,输出是不可预测的和随机的。

如果一些坏的执行者找到了操纵环形振荡器的方法,或者它开始以某种方式发生故障,输出将通过一系列满足要求的64位和4096位完整性测试不断监测傻瓜- 800 - 90AIS 31.

美白过滤器

任何研究任何时间随机数的人都会告诉您,使用真正的随机数发生器,0b00000000000000和0b1011010010110110一样可能,如0b000000111111111111111111111111111。但只有四种选择,只能用于加密数据。因此环形振荡器的输出被馈送到数据 - 美白过滤器中。数据美白使用多次线性反馈移位 - 寄存器以防止长度为1S和0。

数据白化移位寄存器

高级加密标准(AES)

高级加密标准是NIST建立的分组密码。这种对称密钥密码用于对数据进行编码和解码,使用的是一种叫做Rijndael算法的东西(以提出该算法的一位比利时密码学家的姓氏命名)。数据在128位块中加密/解密,使用128位、192位或256位的密钥。

椭圆曲线密码学

椭圆曲线加密由Neal Koblitz和Victor Miller独立创建。它允许在窃听者的完整视图中允许从未满足过共享秘密的两方。共享秘密与要加密/解密的数据组合以编码/解码密码消息。

这个动画展示了Alice和Bob如何生成共享的秘密。

马克·休斯的椭圆曲线密码学可视化

Alice和Bob达成本身点和点添加到一个随机选择的次数(爱丽丝选择α= 7,鲍勃选择ß= 5)找点& b . Alice和Bob然后交换秘密点值,乘以数字再次到达一个共享密钥s(爱丽丝2α= 14和鲍勃2ß= 10总操作。)

请阅读我的文章椭圆曲线密码学了解更多。

安全哈希算法

安全散列算法接受任意长度的输入,并生成固定长度的输出。这对于验证数据的完整性很有用,因为对输入的任何更改都会影响输出。然后可以将固件更新连同它们的哈希值一起交付给目标微控制器。如果微控制器为散列计算一个不同的值,它知道固件文件有问题,不会将它们写入内存。

32位循环冗余校验(CRC32)

循环冗余校验用于保证数据在传输、存储和检索过程中的完整性。用原始数据计算CRC值,再用传输或检索的数据计算CRC值。如果两个CRC值不匹配,则数据被破坏。

上面显示的是一个24位的CRC动画,因为32位太小无法读取。

关于单网格开发工具包

该工具包旨在允许开发人员跨各种协议在双节点和多节点应用程序中实现安全的无线通信,包括蓝牙网格,zigbee和线程

无线壁虎EFR32来自于插入到开发主板的子板。经过编程,无线壁虎无线电板可以从主板分离,并通过外部电池组供电。

硅实验室无线壁虎开发板。图片由硅实验室

这个开发套件与Silicon Labs提供的其他套件有些不同,它除了提供USB调试器外,还提供了一个基于以太网的程序/调试通道。这允许用户连接远离编程计算机的设备,并与大楼现有的IT基础设施保持连接。

这一特性使得套件适合于使用无线接口,因为多个设备可以在其无线电范围的极限上无线连接,并且仍然可以与编程计算机通信所有必要的调试信息。Silicon Labs在其波士顿办公室有一个由500个以太网连接的无线节点组成的网络,使他们能够在真实环境中测试客户代码。他们可以在几分钟内远程刷新设备,而不是在实际接触每一个设备时需要数小时或数天。

主板有多个电源输入选项,包括一个迷你usb,允许连接到电脑,便携式电池组,或5V充电器。主板还具有一个显示器、两个用户输入按钮、两个led、两个瞬时按钮和一个温度/湿度传感器。

硅实验室无线壁虎开发套件框图。图片来自硅实验室入门指南点击放大。

本质上,主板允许用户对EFR32xG21无线SoC进行编程。


有无数的理由说明您应该在无线项目中实现适当的安全性。制造商越来越多地让工程师更容易采取适当的预防措施,以防止不良分子进入他们的微处理器。

这允许工程师保护其源代码和知识产权,验证安装前的OTA(空中)更新,确保无污染的数据传输,并与基于互联网的计算机安全地通信。