随着软件日益复杂,并且车载系统和传感器数量稳步增加,车内系统的通讯成几何增长,必须加强密码保护。这种保护可以通过经典的实时汽车开放系统架构(AUTOSAR)来实现。即便在资源稀缺的情况下,安装合适固件的硬件安全模块(HSM)也是一种永不过时的技术,它可以用来验证您的系统密码。

多年来,不论是ECU之间的连接,还是ECU与外部的连接,汽车电子控制单元(ECU)的连接程度是在不断加深的。然而,随着软件日益复杂,新的需求也随之而生,对通信的要求也越来越高。从安全角度来看,这意味着从单个孤立系统到高度连接节点的变化。因此,抵御外部威胁的安全防护变得越来越重要。除此之外,这种保护可以通过加强密码使用来实现。乍看之下,在经典的实时系统中实现密码保护并非易事。密码学曾经只在特殊操作模式下才需要,例如修配车间的ECU软件更新。

现在,必须确保加密在常规运行时同样有效:例如,对通信伙伴和通信内容进行身份验证并防止拦截。想要适当的实施,必须允许实时需求。这与密码方法的计算时间要求看似相矛盾。硬件安全模块(HSM)可以解决这个问题。它们允许在单独的处理器上计算密码,如果可行,可用硬件加速。然而,我们需要一个优化的实现来发挥其全部的潜力。

  • 汽车实时性

对车辆实时性的要求通常是由所谓的连锁效应造成的。在处理从传感器到相关执行器期望输出脉冲的输入脉冲时,分析涉及到的硬件或软件组件,以及排列顺序。从传感器和执行器的物理状态中得出整个链的最长可接受运行时间。然后,将其分解成单个组件的最长允许运行时间。根据用例不同,从10微秒到100毫秒不等。如果超出了最长允许运行时间,可能会降低便利性,导致噪音。对于需要实时性的安全相关功能来说,这甚至可能伤害生命和肢体。

为了满足对软件的实时需求,并实现需求,AUTOSAR操作系统将相关的软件功能划分为子步骤,即所谓的任务。通过外部事件触发任务,比如加注可运行标记,然后基于优先级进行处理。大多数应用程序会使用具有循环触发表的定时器来触发任务,因为相关的控制功能会连续处理新的生成信号。这样会产生一个默认的时间响应,几十毫秒一次循环。为确保满足实时要求,必须实施下列步骤。一方面,在处理信号时,必须采取适当措施,确保能够提供所需的时间响应。另一方面,必须确保ECU中与时间相关的触发任务能够满足时间要求。为此,必须分析所有任务在运行时期的行为,找到适当的优先级及触发命令时序,确保时效性。

  • AUTOSAR基础软件
    ECU功能涉及的不仅是信号处理。处理通信和管理的基本软件也是ECU的重要组成部分。同样,基础软件必须分成不同任务,根据运行需求进行分析,并将其放进整个系统中加以考虑。简而言之,有两种不同的功能集:例如,基本软件中用于通信信号值的一部分,对于处理实时信号十分必要,必须高度重视。而另一部分的实时需求明显较低:必须在后台定期运行;然而,它可能被具有较强实时要求的功能短暂抢占。因此,常见模式是将这些非关键功能转移到低优先级后台任务中。此文的问题在于如何划分功能的优先级:通常,存在多个后台活动,所以在较长时期不必确定哪个不合格。解决优先级排序的方法是循环调度,对每个低优先级功能计时小段时间,后面紧接着下个功能。AUTOSAR术语中,涉及的每个模块都提供了一个运行时间有限的所谓的“主功能”。在后台任务中,这些功能将按顺序调用。

  • 信息安全
    “后台功能”中一个典型的例子是密码算法。4.0发布之后,AUTOSAR包含加密基础软件的规范——版本修改和微调的规范。在这种情况下,所谓的密码服务管理器(CSM)为应用程序提供加密服务:

图1 AutoSar 4.3系统中的安全模块

例如,安全车载通信系统(SecOC)使用CSM对传输数据包中信号值进行加密验证。顾名思义,CSM管理密码服务。通过制造商专用密码库实现。为了集成到具有实时需求的AUTOSAR系统中,CSM异步处理请求:最初,CSM 主功能调用只保存请求,然后逐个处理请求。为此,CSM主功能就其本身而言,调用所有底层加密原语的主功能,然后每个对加密原语进行几步计算。

典型的加密计算时间超过了信号处理函数计算时间的数量级。调用主函数时,就出现了一个两难问题:允许的计算能力是多少?计算步骤过多,密码系统会失效,整个系统的实时性会成为问题。而步骤太少,加密操作的计算则会延迟,导致受益有限。

此外,还必须考虑另一个影响:特定的主函数用于管理内部计算状态,允许逐步执行计算。这种状态管理在某种程度上意味着开销。实际计算调用越少,开销越大。

应由软件供应商找到一个标准的解决方案。在典型场景中,例如,运行时的加密常用对称加密方法来验证较小的数据块。其中一种解决方案是为每个主函数调用计算一个对称块。然而,如果使用更为复杂的方法,很难找到明智的折衷方案。

示例包括对大量数据进行认证/加密或生成非对称签名。例如,假设每1毫秒计算100微妙可接受——这个假设十分乐观,因为在多数实时场景中保持这个状态并非易事。

与纯计算时间相比,这种划分意味着在结果可用之前时间增加了10倍。对于纯计算时间已经造成困难的密码函数而言,这种划分严重限制了实际应用。

  • 硬件安全模块
    显然,实时性能和加密方法开销的要求相互冲突,仅仅通过软件无法解决。因此,一个显而易见的解决方案是使用专门的硬件,这些硬件可以与主处理器并行计算适当算法或者其中大部分。然后,AUTOSAR CSM及相关的密码库仅负责将请求传递给该硬件,并在主功能中循环检查结果是否可用。过去十年里,在制造商的软件计划(HIS)里,这些硬件协处理器中的第一批被指定为“安全硬件扩展”。而在密码算法中规范仍限于在不同模式下实现AES-128。最近的发展显示,由于存在大量的可能情况,纯硬件协处理器常常是有限的,因此并不理想。

结果出现了所谓的硬件安全模块(HSM)趋势。HSMs是由一种防火墙连接到主机系统总线的独立微控制器。HSM通常有其受保护的内存(RAM),程序代码和数据的专用闪存区,及其外围设备,例如定时器、用于某些密码算法的硬件加速器或用于真随机数的发生器。它能够访问主机的所有硬件。在运行时实现系统的安全、认证启动或主机监测。专用数据闪存可以用来存储秘钥,主机系统无法随意访问。这意味着主机可以请求HSM执行加密操作,而密钥无需离开HMS。然而,在这方面,HSM的特殊优点是它是可自由编程的。作为一个独立的微控制器,HSM能够运行为当前用例优化的任何程序代码。这使得其安全性要求比简单的协处理器更高。

  • HSM固件实现
    仅在HSM上建立良好的AUTOSAR标准软件,使用标准AUTOSAR方法将其与环境连接,似乎很不错。这样可以重用熟悉的AUTOSAR实现模式。然而,事实并非如此:具有实时信号处理功能的典型AUTOSAR系统,和关注安全性的HSM的用例大有不同。这清楚表明,如果HSM固件可以更自由地优化其目的,则可以实现更高的效率。此外,当前HSM硬件可用资源有限——另一个因素使得在HSM上使用AUTOSAR软件变得困难。

HSM用例通常是典型的客户机-服务器模型:主机将一个或多个请求发送到HSM,在HSM中处理这些请求,并在结果可用时立即发出通知。与传统的AUTOSAR系统不同,HSM上管理和后台任务的数量非常有限。因此,可以假定HSM大部分计算时间将专用于处理主机请求。

当在HSM上使用允许中断的操作系统时,可以相应优化任务映射和优先次序。这样的话,可以在低优先级任务中处理长时间运行的操作,中断较短的操作。如有需要,高优先级中循环任务允许处理管理任务。通过这种类型的映射,可以实现加密例程,在一个会话中执行特定任务。不再需要适当的例程允许中断。然而,操作系统使得日常操作透明化。不再需要相关的管理开销,这大大减少了代码规模和运行时间。此外,中断只有在实际需要时才会发生——如果只需处理单个操作,那么计算将不会中断。

图2是HSM固件的体系结构。

HSM固件的架构

  • 算法布局的影响

事实上,与ECU硬件性能相比,HSM硬件性能有限,这可能是HSM软件优化的障碍之一。因此,理论上纯软件实现在HSM上需要的时间比主机更长。然而,在实践中,优化节省了时间。图3是tc397 ECDSA英飞凌测量(secp-256r1)上的主机系统,明显比HSM慢。虽然主机核心运行300MHz,HSM核心运行100MHz,主机上的软件算法比HSM的执行时间快了三倍。不幸的是,在一个真正的ECU中,主机CPU时间无法专门用于执行算法计算。事实上,使用AUTOSAR时间片和并发应用的用例可能只占主机CPU时间的10%,可用于算法计算。因此,100% CPU时间场景中的xyz ms,在结果可用之前,其操作将围绕实际ECU项目中的xyz * 10 ms。

有趣的是硬件加速器可以用来加速算法,所以软件部分只需设置输入数据并读出结果。计算是由硬件来完成,不需要任何CPU周期。图3显示了惊人的加速速度。具有8k输入数据的测量ECDSA secp-256r1仅需要9.6ms验证签名,而相应的HSM软件需要大约750ms,才能给出结果。这是一个78倍的加速。如果我们将硬件解决方案与具有10%CPU时间的主机CPU解决方案进行比较,结果在2.5秒之后是可用的,这意味着在硬件支持下,我们可以实现260倍的加速。

图3 ECDSA (secp-256r1)在主系统和HSM的运行时间

  • 加密时间
    因此,使用具有优化固件的HSM,也使实时ECUs成为永不过时的技术来验证密码。非对称加密方法也不再局限于特定的操作模式,而是可以在运行时以可接受的性能计算和使用。这开创了以前无法实现的密码用例。HSM的自由可编程性使得在选择所需方法及其实现方面能够进行特定于应用程序的优化。

满足AUTOSAR基础软件要求的硬件安全模块(HSM)加密运算相关推荐

  1. 符合ASIL D的AUTOSAR基础软件带来的安全和性能

    符合ASIL D的AUTOSAR基础软件带来的安全和性能 本文转载于符合ASIL D的AUTOSAR基础软件带来的安全和性能,原稿来源:Safety and Performance with ASIL ...

  2. 硬件安全模块如何启用AUTOSAR

    硬件安全模块如何启用AUTOSAR How hardware security modules enable AUTOSAR 越来越复杂的软件和车内连接需要越来越多的加密保护.这种保护也必须由经典的实 ...

  3. 汽车电子学习笔记—AutoSAR之基础软件层(BSW)

    汽车电子学习笔记-AutoSAR之基础软件层(BSW) - 1.概述 如之前autosar概述笔记中说明,BSW按照层级结构可以分为服务层.ECU抽象层.硬件抽象层(MCAL)和复杂驱动层(CDD). ...

  4. 安全软件秘诀——根据ISO / DIS 26262开发ECU基础软件

    原文链接:Recipe for Safe Software 安全软件秘诀 根据ISO / DIS 26262开发ECU基础软件 随着新的ISO 26262标准的引入,安全相关功能的要求变得比以前更加具 ...

  5. Entrust Datacard将从泰雷兹手中收购市场领先的通用硬件安全模块业务

    明尼波利斯和佛罗里达州森赖斯--(美国商业资讯)--领先的可信身份和安全发布技术解决方案提供商Entrust Datacard今日宣布,该公司已签署一份最终协议,收购泰雷兹(Thales)市场领先的通 ...

  6. QuartusII开发软件中的宏模块

    Quartus II开发软件中的宏模块--存储器宏模块 RAM宏模块 宏模块名称   功能描述 csdpram    参数化循环共享双端口RAM lpm_ram_dp   参数化双端口RAM lpm_ ...

  7. Quartus II开发软件中的宏模块 (转摘)

    Quartus II开发软件中的宏模块 (转摘) RAM宏模块 宏模块名称   功能描述 csdpram    参数化循环共享双端口RAM lpm_ram_dp   参数化双端口RAM lpm_ram ...

  8. 搞一下CP AUTOSAR 入门 | 02 CP AUTOSAR 基础模块功能描述

    前言 本系列请点击:<搞一下CP AUTOSAR入门> 所有系列请点击:<汽车电子系列分享> 在上一篇介绍了CP AUTOSAR的分层结构,对于多数使用AUTOSAR架构开发汽 ...

  9. 32 --> 详解 OpenWRT系统框架基础软件模块之netifd

    一.简介 OpenWrt路由操作系统的框架基础软件有很多,大部分是通用的软件模块,如 dhcp .dnsmasq.iproute.cmwp.vpn.ipsec等等:OpenWrt还集成部分具有专属特征 ...

  10. OpenWrt 基础软件模块之netifd

    OpenWrt 基础软件模块之netifd Openwrt 支持模块化编程,增加新功能非常简单.但是一些通用的基础模块必须包含,他们是OpenWrt核心. 如:实用基础库libubox.系统总线ubu ...

最新文章

  1. 水系影像分析_“天眼”助力 甘肃运用卫星影像精准研判灾情
  2. Leetcode 279. 完全平方数 解题思路及C++实现
  3. Kindeditor放置两个调用readonly错误
  4. 常用的数学计算工具类
  5. linux1.0内核下载,LINUX1.0 内核是系统的心脏 - 下载 - 搜珍网
  6. 如何在Delphi 中调用C#生成的DLL类库
  7. 13、图解Elasticsearch容错机制:master选举,replica容错,数据恢复
  8. Android开发:Handler Runnable和Thread之间的区别和联系 应用--------------------看完本篇,从此一览无余!...
  9. JQuery 技巧大方送
  10. 例4.1 特殊乘法 - 九度教程第39题(数位拆解)
  11. Vue中使用Echarts构建3D地球
  12. 阿里云服务器是否限制流量?阿里云固定宽带和按使用流量计费2种方式解读
  13. 中国甜奶油粉市场趋势报告、技术动态创新及市场预测
  14. 计算相关系数 皮尔逊相关系数 Pearson、Spearman
  15. Mac应用程序无法打开提示不明开发者或文件损坏的处理方法
  16. 样本不平衡的常用处理方法
  17. 卖铲子也是一种赚钱方式
  18. python汉明距离检索_【LeetCode 461】汉明距离(Python)
  19. 登录滑块验证表单_如何构建双滑块登录和注册表单
  20. php九九乘法表隔行换色,JavaScript实现99乘法表及隔行变色实例代码_javascript技巧...

热门文章

  1. excel文件服务器未响应,excel打不开文件未响应怎么处理-处理excel无法打开文件未响应的方法 - 河东软件园...
  2. vue项目中引入外部字体(超详细)
  3. 使用ensp搭建简单校园网拓扑
  4. 微软drive服务器,OneDrive:微软云存储服务
  5. 详细“企业库”编写流程
  6. 利用kali Linux破解WiFi密码
  7. Android开发环境的安装与配置(两种方法)
  8. 索尼Z2 ROOT教程
  9. 开始使用Mac OS X——写给Mac新人
  10. win7系统如何卸载漏洞补丁--win10专业版