硬件安全模块如何启用AUTOSAR
硬件安全模块如何启用AUTOSAR
How hardware security modules enable AUTOSAR
越来越复杂的软件和车内连接需要越来越多的加密保护。这种保护也必须由经典的实时AUTOSAR系统来实现。硬件安全模块(HSM)具有合适的固件,即使在资源不足的情况下,也能保证系统的加密。
汽车电子控制单元(ecu)的连通度多年来一直在提高,控制单元之间相互连接,也与外界相连。然而,随着越来越复杂的软件面临新的需求,对通信的需求也在不断增加。从安全角度来看,这意味着从孤立的单一系统到高度连接的节点的转变。因此,安全和防范外部威胁的重要性日益增加。除其外,这种保护可以通过增加强加密技术的使用来实现,乍一看,这在经典的实时系统中并不容易。过去,只有在特殊操作模式下,如维修车间的ECU软件更新,才需要加密。
现在,即使在常规运行时,也必须有效地可用:例如,验证通信伙伴和通信内容并防止截获。适当的实现必须允许实时需求。乍一看,这与密码方法的计算时间要求相矛盾。硬件安全模块(HSM)用于解决此问题。允许在单独的处理器上计算密码。然而,需要一个优化的实现来充分发挥潜力。
Automotive real time
对车内实时性的要求通常来自于所谓的效应链。分析了在处理从传感器输入脉冲到相关执行器期望输出脉冲的过程中,涉及的硬件或软件组件以及顺序。整个链条的最长可接受运行时间可由传感器和执行器的物理条件得出。然后可以将其分解为单个组件的允许最大运行时间。根据使用情况,范围从10µs到100 ms。如果超过了允许的最大运行时间,这可能会降低便利性并导致噪音等。对于需要实时功能的安全相关功能,这甚至可能导致生命和肢体受伤的风险。
为了满足和实现软件的实时性要求,AUTOSAR操作系统将相关软件功能划分为子步骤,即所谓的任务。任务由外部事件激活,即标记为可运行,然后根据优先级进行处理。对于大多数应用,使用带有循环激活表的计时器来激活任务,因为相关的控制功能将持续处理新的信号生成。这将导致默认的时间响应,该响应在几十毫秒的周期内重复。需要几个步骤来确保满足实时性要求。一方面,在实施信号处理步骤时,适当的措施当然必须确保能够提供所需的时间响应。另一方面,ECU中与时间相关的任务激活必须能够实现时间要求。为此,必须分析所有任务的运行时行为,以找到适当的优先级排序和保证时间的按时间顺序的激活顺序。
AUTOSAR basic software
AUTOSAR基本软件
ECU的功能不再仅仅涉及信号处理。处理通信和管理的基本软件是这些功能的重要组成部分。这个基本软件也必须划分为任务,根据其运行时需求进行分析,并在整个系统中加以考虑。简言之,有两种不同的功能集:一部分基本软件,例如用于传输信号值,是实现实时信号处理所必需的。这一部分必须给予适当的高度优先考虑。另一部分的实时性要求明显较低:该部分必须在后台定期运行;但是,可能会被具有更高实时性要求的函数暂时抢占。因此,一种常见的实现模式是将这些非关键功能转移到低优先级的后台任务。在这种情况下,问题是各职能之间的优先次序:一般来说,有多个后台活动,其中任何一个都不能在较长时间内失败。这种优先级排序的解决方案是循环调度,其中每个低优先级函数计算一个短时间,然后是下一个函数。在AUTOSAR术语中,涉及的每个模块都提供了一个所谓的“MainFunction”,运行时间有限。在后台任务中,这些函数按顺序调用。
Security
安全
这种经典的“背景函数”的一个例子是密码算法。自4.0版以来,AUTOSAR包含了加密基础软件的规范—在以后的版本中,对相应的规范进行了修订和微调。在这种情况下,所谓的加密服务管理器(CSM)为应用程序提供加密服务:

Figure 1 Security modules in an AUTOSAR 4.3 system
图1 AUTOSAR 4.3系统中的安全模块
例如,被安全板载通信(SecOC)使用,以加密方式验证所传输数据包中的信号值。顾名思义,CSM管理加密服务。实际实现位于特定于制造商的加密库中。为了支持集成到具有实时需求的AUTOSAR系统中,CSM异步地处理请求:最初,只被保存,然后在CSM MainFunction的调用中逐个处理。为此,CSM MainFunction将调用所有底层加密原语的mainformations,每个原语随后都要计算几个步骤。
典型密码原语的计算时间比信号处理函数的计算时间高出一个数量级。这在划分MainFunction调用时带来了一个两难的问题:允许计算的确切范围是多少?过多的计算步骤会使整个系统的实时性受到质疑,从而使加密变得毫无用处。太少的步骤会延迟计算较长的加密操作,以至于利益受到限制。
此外,还必须考虑另一个影响:特定的主函数负责管理其内部计算状态,以便允许逐步执行计算。就其本身而言,这种状态管理意味着开销。单个调用实际计算的次数越少,开销就越大。
软件供应商应该找到解决这个问题的标准解决方案。在经典的场景中,例如,运行时的加密用于通过对称加密方法对较小的数据块进行身份验证。一种解决方案可能是为每个MainFunction调用计算一个对称块。然而,当使用更复杂的方法时,很难找到合理的折衷方案。
示例包括验证/加密大量数据或生成非对称签名。例如,假设100µs的每毫秒计算一次是可以接受的,这是一个非常乐观的假设,在大多数实时场景中很难维持。
与纯计算时间相比,这样的除法意味着在得到结果之前的时间增加了10倍。对于纯计算时间已经造成困难的密码函数,这种划分大大限制了其实际应用。
Hardware security modules
硬件安全模块
显然,加密方法在实时性和开销方面的矛盾要求不能仅靠软件来解决。因此,一个明显的解决方案是使用专门的硬件,可以计算适当的算法-或其中的大部分-与主处理器并行。然后AUTOSAR CSM和相关的加密库只将请求传递给这个硬件,并且在main函数中,周期性地检查结果是否可用。这些硬件协处理器中的第一个已经在过去十年被制造商软件计划(HIS)指定为“安全硬件扩展”。关于密码算法,本规范仍然限于AES-128在不同模式下的实现。因此,最近的发展往往是由于硬件的大量发展或不太理想,所以才有可能出现更多的纯硬件。
其结果是向所谓的硬件安全模块(HSM)发展。HSMs是独立的微控制器,通过防火墙连接到主机系统的总线上。HSM通常有自己的受保护RAM,一个用于程序代码和数据的专用闪存区,以及自己的外围设备,如定时器、某些密码算法的硬件加速器或真随机数发生器。能够访问主机的完整硬件。这允许在运行时实现系统或主机监视的安全、经过身份验证的启动。专用数据闪存可用于存储机密,使主机系统无法访问这些机密。这意味着主机可以请求由HSM执行的加密操作,而不需要密钥离开HMS。然而,在这方面,HSM的特殊优点是可以自由编程。作为一个独立的微控制器,HSM能够运行针对当前用例优化的任何程序代码。这使得能够实现比简单协处理器多得多的安全需求。
Implementation of HSM firmware
HSM固件的实现
简单地在HSM上实现成熟的AUTOSAR标准软件并使用标准AUTOSAR方法将其连接到环境中,这似乎很诱人。这将允许重用熟悉的AUTOSAR实现模式。然而,事实并非如此:具有实时信号处理的典型AUTOSAR系统和关注安全性的HSM的用例有很大不同。显然,如果HSM的固件能够更自由地实现这一目的,那么可以更自由地实现这一目的。此外,目前的HSM硬件只有有限的资源可用,这也是在HSM上使用AUTOSAR软件困难的另一个因素。
硬件安全模块如何启用AUTOSAR的更多相关文章
- VS无法启动调试:“生成下面的模块时,启用了优化或没有调试信息“
调试项目遇到错误提示,Visual Studio 2010(或VS2008或VS2005)启动调试的时候,弹出提示信息: 生成下面的模块时,启用了优化或没有调试信息: C:\WINDOWS\Micro ...
- (转)VS无法启动调试:“生成下面的模块时,启用了优化或没有调试信息“
中调试项目遇到错误提示,Visual Studio 2010(或VS2008或VS2005)启动调试的时候,弹出提示信息: 生成下面的模块时,启用了优化或没有调试信息: C:\WINDOWS\Micr ...
- 安装mod_deflate模块启用apache的GZIP压缩
安装mod_deflate模块启用apache的GZIP压缩 操作系统:Linux Cent OS 5 / Max OS X 10.6 snow leopard相关环境:Apache httpd 2. ...
- Qt Pro文件与Qt模块启用
看qt论坛中经常有人忘记 QT+=network 等语句.随便写写吧,或许对他人有帮助. 一.从哪开始呢 不妨先看个例子吧: #include <QtCore/QCoreApplication& ...
- 如何免费的让网站启用https
本文源自酷壳:如何免费的让网站启用HTTPS 今天,我把CoolShell变成https的安全访问了.我承认这件事有点晚了,因为之前的HTTP的问题也有网友告诉我,被国内的电信运营商在访问我的网站时加 ...
- Ansible 模块命令介绍
copy模块: 目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上 命令:ansible 10.1.1.113 -m copy -a 'src=/root/a.sh dest=/tmp/' ...
- nginx安装配置+清缓存模块安装
经过一段时间的使用,发现nginx在并发与负载能力方面确实优于apache,现在已经将大部分站点从apache转到了nginx了.以下是nginx的一些简单的安装配置. 环境 操作系统:CentOS. ...
- magento启用SSL改http成https
Magento是电子商务网站,对于网站的用户信息安全来说,让Magento使用SSL连接是一个很好的解决方案.如果在页面的边栏或者底部放上些表明本站使用安全连接的图片,显得更专业,让客户有安全感,对于 ...
- nginx 编译模块说明
--prefix= <path> - Nginx安装路径.如果没有指定,默认为 /usr/local/nginx. --sbin-path= <path> - Nginx可执行 ...
随机推荐
- 缓冲区溢出分析第08课:MS06-040漏洞研究——动态调试
前言 经过上次的分析,我们已经知道了MS06-040漏洞的本质,那么这次我们就通过编程实现漏洞的利用. 编写漏洞利用程序的框架 这里我使用的是VC++6.0进行编写,需要将包含有漏洞的netapi32 ...
- 编译libdvm.so: makefile,mm
操作系统:Ubuntu14.4 android版本:4.4 设备:nexus 5 android系统的编译使用make来操作,那make呢是执行对应的makefile即android的编译系统看mak ...
- hdu5033 最大仰望角
题意: 给你n个楼房排成一条直线,楼房可以看成是宽度为1的线段,然后给你m组询问,每组询问给你一个坐标,输出在当前坐标仰望天空的可视角度. 思路: n比较大,O(n*m)肯定跪 ...
- WindowsPE 第七章 资源表
资源表 在程序设计中,总会设计一些数据.这些数据可能是源代码内部需要用到的常量,菜单选项.界面描述等:也可能是源代码外部的,比如程序的图标文件.北京音乐文件.配置文件等,以上这些数据统称为资源.按照程 ...
- springmvcdemo
项目点击属性 2.3 转换成2.5 已经变成一个网站项目了 报错消失 pom.xml <project xmlns="http://maven.apache.or ...
- Jmeter和Postman做接口测试的区别,孰优孰劣?
区别1:用例组织方式 不同的目录结构与组织方式代表不同工具的测试思想,学习一个测试工具应该首先了解其组织方式. Jmeter的组织方式相对比较扁平,它首先没有WorkSpace(工作空间)的概念,直接 ...
- Win10安装MySQL5和MySQL8
1. 下载数据库,配置环境变量 因为是安装两个MySQL数据库,端口号要不一样,MySQL默认端口号是3306,建议先配置非默认端口号,以免出现问题 1.1 官网下载5.7和8.0的压缩包 我下载的是 ...
- SpringBoot系列——Activiti7工作流引擎
前言 工作流程是我们日常开发项目中常见的功能,本文记录springboot整合activiti7. Activiti介绍 官网:https://www.activiti.org 数据库表 act_hi ...
- mybatis新手快速搭建成功详细操作
1.数据库建表 在数据库中新建一个名为mybatis的数据库,在mybatis数据库中新建一张 t_user 表,表中有3个字段,id,name,password,代码如下: 新建一个mybatis数 ...
- Beta设计和计划 —— NameNotFound
需求再分析 1. 用户群体 经过用户(大多数是同学)的反馈,我们发现大家其实并不是十分明确我们要做的到底是什么.具体要怎么用.而实际上我们的典型用户也并不是学生群体,因此出现这些偏差也是很正常的,毕竟 ...