首页 > 汽车技术 > 正文

汽车基础软件信息安全关键技术

2023-02-03 20:03:05·  来源:汽车测试网  
 
图 3.2-1 静态代码检查

  • 需求一致性测试,通过单元测试、集成测试等方法,确定软件的实现与软件设计需求保持一致;

图片

图 3.2-2 需求一致性测试

在保证软件实现与需求一致后,需要通过以下三种测试手段确认软件的安全性:

  • 漏洞扫描,通过漏洞扫描软件如 defensecode 进行现有漏洞的扫描,防止软件存在已知漏洞;

  • 模糊测试,通过大量的随机请求,测试软件的鲁棒性,探测其是否有未知漏洞;

  • 渗透测试,通过专业渗透人员的分析,寻找程序逻辑中的漏洞,并尝试进行利用。若发现新的漏洞, 则反馈给开发人员进行修正。


后开发阶段(生产、运维、报废)

在生产阶段,要保证基础软件和应用软件在产线的正常刷写。产线软件的注入需要保证刷写方经过认证,例如供应商完成基础软件的刷写,内部包含初始密钥。OEM 在产线刷写更新密钥、证书、配置等内容前,需首先完成与控制器的相互认证。

信息安全是一个动态的过程,在软件使用过程中,随着技术的进步,之前安全的软件可能会出现(或发现)新的漏洞。因此软件维护人员需持续监控最新的漏洞消息,及时更新相关软件补丁,保持软件的安全性。在更新过程中,也需保证对更新源的认证,更新软件完整性校验,版本校验,防止黑客利用更新的漏洞进行软件的恶意修改。

在车辆的使用过程中,控制器内可能存储了大量的用户使用信息。在车辆的报废 / 买卖,或者某一部件的更换的情况下,用户信息会有泄露风险。为保证车辆的数据安全,基础软件需支持敏感数据(如密钥、证书、用户资料、指纹识别信息等)的一键销毁。

汽车基础软件信息安全需求

信息安全的实现并非是通过独立的安全机制可以实现的,需要进行信息安全纵深防御体系设计。从云端 - 车云通讯 - 车端控制器 - 应用软件 - 基础软件 - 硬件等多个维度进行层层防御,设计相应的安全措施提升安全性。基础软件的安全需求主要来自以下两个方面:

  1. 实现更高一级来自于功能 / 控制器的信息安全需求。如特定控制器需实现加密通讯,基础软件需要保证安全通讯协议、密钥管理、加密认证、加密存储等功能。

  2. 基础软件自身安全的要求。为保证上述功能的安全实现不被绕过,基础软件还需保证自身的安全, 如不存在公开漏洞、安全启动等。


安全启动

安全启动(SecureBoot)是 MCU 的基本功能,通过硬件加密模块来实现,该机制必须独立于用户程序运行,不能被破坏。作为整个安全启动信任链的基础,安全启动必须主要用于在 MCU 启动之后,用户程序执行之前,对用户定义的 Flash 中关键程序的数据完整性和真实性进行验证,确定是否被篡改。如果验证失败,说明 MCU 处于不可信的状态,部分功能甚至整个程序不能运行。

分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026917号-25