物联网(iot)继续成为现实,设备每天都有数百万人连接到互联网。令人兴奋的是,随着许多创新机会的开放,物联网设备和系统的开发人员面临着许多挑战,其中最关键的是保护他们的设备并确保最终用户的隐私。值得庆幸的是,新的微控制器(mcu)正在迅速出现,大大简化了安全任务,但这些功能与开发人员使用它们的能力一样好。
安全性一直存在,并且仍然是事后的想法,这有点令人惊讶。对于许多开发人员这是一个错误,因为它使房屋,车辆,制造,零售和关键基础设施容易受到攻击。然而,尽管历史上不愿意解决安全问题,但物联网现在迫使设计人员在开发嵌入式系统时更加认真地考虑安全性,幸运的是他们发现他们并不是唯一能够解决它的问题。
制造商和供应商微控制器是许多物联网系统和设备的基本元素,现在也认识到安全的重要性,并且正在构建其硬件和软件库的钩子,以简化开发并减轻开发人员的安全负担。
例如瑞萨电子美国公司的synergy平台。这不仅包括一系列基于arm®的微控制器,如s1,s3和s7系列,还包括一整套软件包,旨在通过提供驱动程序,rtos,中间件,框架和库,为开发人员提供快速启动。 synergy软件包(ssp)中包含一个安全和加密模块,开发人员可以利用该模块来正确保护其设备。虽然可以使用这些软件组件,但开发人员仍然需要了解如何将这些资源应用于嵌入式安全性的三个主要元素:身份验证,完整性和可用性。
图1:renesas synergy平台的synergy软件包(ssp)包括平台中包含的驱动程序,rtos,中间件,框架,库和开发工具。此处可以看到平台中包含的所有不同软件组件。 (来源:瑞萨电子美国公司)
身份验证和加密是一件棘手的事情。
身份验证最受关注的是安全性,这是正确的。身份验证是系统验证固件更新和通信来自合法来源的能力,而不是试图混淆或覆盖默认系统行为。开发人员可以在设计中使用的通用技术可以从最简单和最少资源约束开始在任何微控制器上工作,包括:
密码
handshakes
数字签名
校验和
循环冗余校验(crc)
crc应包含在重要数据上,例如存储在闪存中的应用程序映像和通过网络或通信接口传输的数据包。微控制器上的crc可能是一项棘手的业务,特别是没有浮点硬件单元。对于开发人员来说,一个很好的技巧是使用类似于fletcher16算法的校验和。
fletcher16算法检测数据流中是否有任何数据被更改。它通过将数据流基本上分解为8位的块,然后对这些块求和以生成两个唯一的8位值(重新组合成16位校验和)来实现这一点。 fletcher16算法限制为不大于255的模数,因此插入数据流的随机数将有1/255未被检测到。 fletcher16的有效性与最低挂起的crc相当。
为了保护嵌入式系统,开发人员可能需要采用包括加密技术的组合。如果您没有选择正确的设备,那么在mcu上进行加密可能会很困难。每个应用程序都需要自己独特的加密需求,但您应该在mcu上寻找几个硬件资源,至少:
唯一的设备标识符
有限的jtag访问
真正的随机数生成器(trng)
对称加密加速器
请注意使用的微控制器的数据表trng。所有trng都不是平等的,如果它们没有经过nist sp 800-90认证 - 最新和最好的熵规范 - 那么潜在的黑客就有可能通过影响系统熵来操纵发电机,然后产生可预测的结果。
熵是衡量系统内存在的随机性或混乱的指标。 trng通常会使用熵来计算随机数。如果黑客能够控制系统的熵,例如操纵时间或温度(伪随机数生成器使用的属性),则随机数变得可预测。可预测的数字允许黑客进行有根据的猜测,最终破坏系统安全性并将其打开以进行攻击。
renesas synergy mcu拥有上述所有硬件资源,并使用synergy工具链获取访问权限。 trng几乎是微不足道的。只需进入synergy配置文件,然后在threads选项卡中添加trng组件。该组件通过可视界面完全添加,图2中显示了必要的步骤。在此示例中,使用瑞萨s1开发套件部署trng。添加trng驱动程序后,以下api调用将生成随机数:
r_sce_trng_read(trng_ctrl_t * const p_ctrl,uint32_t * const p_dest,uint32_t nwords)
图2:要将真正的随机数生成器(trng)驱动程序组件添加到synergy项目,只需选择添加,然后按照右上角的菜单进行操作左下方找到trng驱动程序。 (来源:瑞萨电子美国,e2工作室协同项目)
高级应用程序需要的不仅仅是简单的trng或对称加密加速器。要利用最新的加密技术,开发人员应在其微控制器中寻找其他硬件,例如:
非对称加密加速器
hash加速器
非对称密钥生成器
安全密钥存储
如果没有这些关键组件,开发人员会发现他们的系统容易受到攻击,并且可能在现场受到攻击。事实上,最终用户可能会发现他们的隐私受到侵犯。隐私是最终用户数据被隐藏而不能被其他人查看的能力。缺乏良好加密方法的系统将导致用户可能甚至不知道或可能导致身份盗用等网络犯罪的隐私侵权行为。上面列出的高级功能可以帮助保护隐私,但可能不包含在每个微控制器中。例如,您不会在renesas s1设备上找到hash加速器,但您会在瑞萨s7上找到它。
确保系统完整性
开发人员通常非常关注身份验证和加密,很多时候他们没有考虑系统完整性的重要性。完整性衡量软件的可信度。许多开发人员将在启动时假设应用程序未被破坏或已注入恶意软件。对于经常连接到internet的设备,这是一个很差的假设。
开发人员可以使用一些技术来验证系统的完整性。首先,您可以将crc或校验和添加到存储在闪存中的应用程序映像。启动系统时,引导代码会计算校验和或crc,并验证它是否仍与预期值匹配。或者,您可以使用软件组件,例如瑞萨ssp中包含的安全引导框架(qsa)。它不仅提供安全启动功能,还提供受保护的内存位置,防止恶意软件或其他代码访问整个系统。这使您可以为不同的应用程序组件创建沙箱,以保证它们的安全。
可用性
嵌入式系统几乎100%可用,但有时黑客可能正在执行分布式拒绝服务(ddos)攻击导致线程不足或内存溢出,从而导致系统崩溃。为了保护嵌入式系统并防止这种情况发生,但确保使用能够启用内存保护并管理应用程序的rtos,以确保过度的任务不会导致整个系统崩溃。
安全性入门
嵌入式安全性可视为一个利基领域,因为在物联网之前安全性不是问题。过去断开的设备极大地限制了它们的攻击区域。虽然可以在各种情况下随时攻击连接的设备。学习嵌入式安全性的最佳方法是从板凳上开始。有两个开发套件,前面提到的瑞萨s1,以及可用于启动安全工作的瑞萨s7。
图3:在缩小硬件加密选择范围之前,瑞萨sk-s7g2开发套件是开始探索安全概念的最佳场所。 (来源:瑞萨电子美国公司)
每个开发套件都有arduino接头跳线,因此可以轻松地将蓝牙模块等硬件屏蔽添加到开发套件中,以进行定制设计工作。瑞萨s7包括一个以太网端口,当与ssp配合使用时,可以让您在短时间内启动并运行物联网设备。
首次开始探索安全概念时,您可能需要关注在s7上,因为它具有所有的铃声和口哨,并且最有能力。一旦了解了平台的功能和最终系统要求,只有这样才能考虑降低硬件加密能力。
结论
设计人员面临的安全挑战他们的嵌入式系统,从身份验证到系统完整性和高可用性,乍一看似乎势不可挡。然而,微控制器正在出现,具有内置功能,挂钩和库,可帮助开发人员应对这些挑战并简化流程。一个很好的例子是renesas synergy微控制器及其相关的评估平台。
以太坊社区正在考虑在以太坊网络上实施ProgPoW算法
基于ADS平台改进型Doherty电路设计与仿真
中兴通讯与东软睿驰达成战略合作 华为发布5G核心网CICD技术白皮书
专家访谈 | 为什么新能源车企都在比拼“热管理”?
大米重金属检测仪概述/参数/特点
如何利用新型微MCU简化嵌入式系统的安全挑战
光纤通信简介
HiFi和手机结合,酷派、vivo、OPPO三家旗舰谁更强
分享一下用一只电笔检测电机好坏的办法
行业案例 | 锂电池自动封口设备中,这个工位的传感器怎么选?
刷脸人脸识别,刷车车牌识别,两识别构建平安社区
如何在刻蚀铝之后保护铝不被腐蚀?
Maxim发布PPG和ECG生物传感器模块
创基USB Type-C扩展坞让您在您的主场叱咤风云
基于区块链技术的数字广告平台Ternio介绍
炎炎夏日让清风无处不在,USB小风扇哪个牌子好
腾讯黑鲨游戏手机3将搭载实体机械按键 将感受到主机手柄一样的操控体验
欧莱新材IPO拟募资5.77亿,研发费用率高于同业平均值
盘点所有铠装电缆与非铠装区别-科兰
软件装在C盘好不好