查看: 1605|回复: 0

【NXP科普】SOC安全性的严苛测试

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3300

    主题

    6547

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32030
    最后登录
    2024-4-26
    发表于 2019-8-19 08:36:23 | 显示全部楼层 |阅读模式
    随着嵌入式电子器件在汽车和其它产品中不断普及,连接的需求也随之不断增加。这种连接可以是车载设备之间的连接,也可以是SoC通过有线或无线网络与外界建立的连接。

    由此,信息安全成为汽车SoC需要关注的关键问题,并成为确保信息安全传输,防止信息篡改的必要条件。安全措施包括加密、数字签名、MAC计算以及身份验证等。

    安全验证不仅仅是测试功能,更主要的是测试风险场景或安全攻击。在进行安全验证时,测试人员须具备黑客思维和视角。目前,许多用于安全测试的设备成本高昂,本文探讨的几种负面测试无需使用这类设备,并且可以用于后硅验证环节。

    下面是几种基于场景及对抗的对安全性进行压力测试的方法。

    ECC检测

    ECC故障在非易失性存储器中可能随时发生,。所以我们应了解设备在遇到ECC故障时的行为,并检查故障是否已造成安全漏洞。出于验证目的,我们可以内部注入多个比特的ECC错误。错误注入可以施加于非易失性存储器、秘钥区、安全固件、安全存贮镜像以及器件的配置寄存器等。

    例如:在存放安全引擎输出的存贮器处插入ECC。AES-128引擎将对两个128位数据块实施加密。在这种情况下,存在两种ECC场景:

    1.ECC插入第一个128位的数据块,存储器余下的部分可访问。

    我们通过这一测试能够确认,当第一个数据块出现错误时,安全引擎是会终止对下个数据块实施加密,还是会忽略错误,保存可访问数据块的输出。
    70.png
    2.存储器的前128位可访问,ECC插入下一个128位数据块。

    我们通过这一测试能够确认,第一个数据块是否存储在可访问的存储器中,且存储操作是否在第二个数据块出现错误时即终止,还是两个数据块的操作均被终止。

    命令排序与取消

    通过操控命令排序来检查设备行为。例如,在运行无效命令执行加密/解密命令。这种情形是为了确保:在运行无效命令的条件下,如果又执行了有效加密/解密命令,错误不再保持锁存。

    取消:操作期间发布取消/中止命令。不应生成不完整输出,以免安全数据泄露。其它安全操作亦可采取相同的方式检查。


    时钟篡改

    时钟对于保证安全性至关重要。可以检测多种场景:

    1. 理论上,不应规定只为安全IP部署时钟门控。
    2. 如果安全IP按照规定应部署时钟门控,尝试在安全操作期间部署,并且务必确保时钟门控未造成安全数据泄露或秘钥泄露。
    3. 如果一个微控制器包含多个安全IP,且每个IP均须部署时钟门控,务必检查所有可能的门控配需/组合。此举可以确保任何安全IP部署门控都不会影响其它的安全IP,且不会造成安全数据泄露。
    4. 如果安全模块上配有时钟分频器,检查所有这些分频器,确保操作符合预期的安全等级。
    5. 时钟篡改还可能包括改变安全模块的频率;以及将频率值设为指定频率范围以外的值,进而引发故障。

    电压篡改

    电源电压微调可干扰设备和安全模块的性能。但即便我们篡改电压,也不应影响设备运行。可尝试以下场景:

    • 设备运行电压为规格指定的最低电压或最高电压时,执行安全操作。
    • 设备运行电压高于或低于指定电压时,执行安全操作。
    • 安全操作期间突然将电压改至指定范围以外的值。
    • 安全操作期间突然改变电压。
    • 安全操作期间逐步改变电压。

    异步事件生成

    SoC支持不同类型的异步事件,诸如:非屏蔽中断、功耗运行模式更改等。测试这些异步事件对于安全引擎验证至关重要。例如,在某些安全操作期间,触发低功耗模式请求,然后返回正常模式。此举不应导致安全数据泄漏。


    异步事件扫描

    接下来,在安全操作的不同时间间隔应用异步事件。通过这一操作可以防止按随机时间间隔或按随机功耗发生的事件造成安全数据泄露或安全秘钥泄露。可在安全引导、加密/解密、生成/验证签名等操作期间尝试异步事件扫描。
    71.png
    异步事件可在不同或相同的供电周期内按照不同的时间间隔生成,事件生成的时间窗口可以扩大或缩小。

    其他的攻击方式

    •  采用多种方式试图使用调试端口暴露安全信息。
    •  软件攻击:执行恶意代码(任何非应用代码)。
    •  尝试破坏随机位置或者非安全区域,同时确认没有安全信息泄露。

    结论

    安全验证不可能面面俱到,往往存在一些干扰设备的方法,可能造成安全信息泄露。安全验证的思路时常会与安全规定相悖,反其道行之。安全验证的目的不应是检查设备是否正常工作,而应该是发现设备有可能受到的潜在干扰。

    作者简介:


    Amrit Singh现任恩智浦半导体汽车解决方案研发组高级设计验证工程师。


    Atulesh Kansal现任恩智浦半导体公司印度分公司(原飞思卡尔半导体公司)首席工程师,在汽车SoC领域拥有七年的前硅验证和后硅验证经验。








    作者:NXP            文章出处:NXP客栈

    签到签到
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-26 16:50 , Processed in 0.111489 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表