一、信息安全背景
信息安全需求来源
信息安全的相关场景
在车里面,有哪些场景会和信息安全有关?以往我们用的多的是诊断,它是一个接入车上电子ECU的一个通道,是诊断入口。
还有自动驾驶保险,比如说保险以后跟车上面是不是有一个非常健全的信息安全系统,有很大关联;比如说可以根据车辆倾向性等级,制定不同保险的策略;
还有OTA可以远程去更新车上的一些固件;还有远程驾驶员协助;这些都是可能和信息安全可能会有些关系的应用场景。
信息安全的风险点
在这种场景下,有哪些手段可能会成为车辆信息安全被攻击的途径呢?从下图里面可以看到,如Head Unit或者一个导航系统,它是最主要的一些被攻击者去攻击的一个途径,因为它上面有存储设备的接入,又有网络互联的功能。
OTA也是通过下载。所以它上面可以有很多手段黑客可以攻击。有些手段在互联网时代是比较多见的。比如通过以太网的一些协议来攻击和侵入我们的系统。
上面的系统也是Linux或者安卓的,这些也是在消费电子领域经常使用的,有很多手段和恶意的方式来攻击我们的系统。包括去获取系统上的一些用户数据什么的。除了这个,还有我们车上的ECU,ECU跟安全用车有非常大的关系。
除了通过CAN的OBD或者直接去更改固件、应用,现在有OTA以后,也可以远程去更新车上大部分ECU固件,这些都成为信息安全需要去考虑怎么去做保护的一些点。如:
1. 一些非法接入设备,有非法OBD的设备,非法USB的一些磁盘的设备去做访问 。
2. DOS类似的攻击手段,大多数也是基于以太网上面去做一些基于DOS的攻击,像TCP 、SYN 、ACK、办公攻击,都是黑客经常会使用这种手段。
3. 为了触发一些非标准的畸形的报文,去系统进入瘫痪或者进入一个无法工作的状态。
4. 通常会被黑客使用的手段之一就是端口扫描,去提前获取我们车上设备的一些基本信息,根据这些基本信息再去有针对性的去制定一些破解的方案。这些都是信息安全的技术手段。
二、信息安全措施
中央计算架构下的数据通信安全
针对刚才提到的这些有可能信息安全的一些点。我们有什么考虑呢?我们就当前比较火的中央计算区域控制器下的架构来分析一下。
我们可以看出,中央计算这个组上面需要考虑的一些经济安全的技术,比如说它们之间最基本的还是用以太网做一个骨干网。如果是这样一个设计,这个以太网上的数据通信的安全通信就显得非常重要。
比如现在使用的TLS/DTLS就是这样一个通信的安全机制。它基于公钥加密进行会话、密钥协商和加密通信这样一个手段来保证,这样一个中央计算单元上面,我们通常会布置一个可信的执行环境。上面会运行一些可信的应用,可专门做一些密钥的管理,做一些加密算法的运行。
在这样一个中央计算单上面,我们会布置一个入侵检测系统和一个防护系统,也叫IDPS。
为了做内网和外网的一个隔离,我们经常会设计一个安全网关。将对外的一些流量和车内使用流量做一个划分,将有可能会被攻击的这样的网络,相对来说比较安全,属于车辆内部的网络作为一个隔离,就是中央网关的架构下做的。
中央网关通常是需要有一个比较强的处理器,因为它可能需要做一些深度的包的一个检测;还要运行一个IDPS的引擎;有些固件需要做它的一个转发;需要一些固件实现类似于黑白名单、过滤器这样的一个功能。
除了在中央计算单元上去做这样一些信息安全的设计外,对于区域控制器这样的节点,实际上也要布置类似的信息安全策略,如果它是一个接入的以太网,TLS这种安全通信机制也需要去实施的。
另外类似,还有一个HSM,用来做一些信息安全模块密钥的管理、安全算法。像这种区域控制器也要有这样的设计,另外区域控制上会接入CAN的ECU通信。
以往对于CAN上面的保护,我们考虑的经常是,有没有设定CAN ID的发送,虽然它能实现过滤一些非法ID,实际上如果比较了解车上CAN总线设计的一些专业人员来讲,它是有办法做一些模仿CAN总线消息的发送,去做一些能攻破系统的一些攻击手段;或者操作车上的一些开关什么的都是可以通过模仿一些CAN消息发送来实现。
因此,需要在传统的CAN总线上也布置一个IDS系统,去针对CAN报文的一些异常行为做一个检测,然后去做上报,并且做一些保护的措施,达到从CAN通讯层面的信息安全的一个策略。
在MCU上的IDPS,实现相对来说是轻量级的,因为它需要部署在一个MCU的环境下面。这样的一个区控制器它有以太网通信能力,所以用VLAN做一些虚拟网段的划分;做一些数据流量的隔离,让它运行在一个比较安全的环境下面。
我们现在基本上也用上了SecOC通信,因为CAN或者是以太网在ECU层面,它们都是通过PDU去通信的,我们可以对PDU做一个信息安全层面的校验,这就是secOC做的一个方法。
对于使用了SecOC的情况,攻击者就不能轻易破坏掉了,因为secOC有一些加密机制来保证它通信的信号的完整性和真实性。
从软件的设计上来讲,SecOC可以保证每个电路与执行的链路都是安全可信的。比如获取密钥到运行密钥的一个模块到最终应用层去得到它,经过的每一个软件模块,它都是在一个很严密的一个框架下面去实现。
所以,即使有黑客通过一些手段进入你的软件系统,它也很难从一个可信的链路当中获取一部分的数据,截取出来。这就是可信软件链路的一个要求。
零部件信息安全架构
接下来看一下零部件提的信息安全的一个架构,在中央计算单元模块里面我们通常会做会引入一些概念,比如说可信执行、运行时环境RTE、安全核、安全启动等。
另外就是做一个功能的隔离,笔者认为比较重要的一些应用统一放在一个单独的分区上面。这样的话跟一些比较容易被受攻击的一些娱乐功能做一个物理软件层面的隔离或者是硬件上的隔离。
如果是硬件上隔离,通常效果会更好。软件上隔离成本会低一点,会降低一定的运行效率,但是从一定程度上也能起到信息安全的一些隔离的作用。对于可信执行谋害,通常会叫TEE的概念,就是可信应用。
可信应用完全是依照信息安全的标准去设计模块,它的可靠性和鲁棒性是非常强的,不会轻易出现一些被攻破的bug什么的。
TEE上一般会做一些密钥的管理去读取的一些策略,还有一些安全算法,比如说加密算法一般会实现在TEE的核心核上面。
那么,每个域APP怎么去使用一些信息安全呢。比如说密钥信息它怎么去获取它,怎么样去调用一个加密库?这就需要在每个分区上面有自己的信息安全的一些组件去实现。也可以认为它们是一些类似中间件的东西,它就保证说让上层更容易的去调用一些TEE上面的一些功能。
像现在AP上面提到的一些跟信息安全有关的组件,类似于IAM还有Crypto,这些都是去提供一些标准的Crypto接口去让应用或者是一些Functional去调用一些密钥的信息或者是加密函数。
还有类似于IDS的软件组件去做一些部署,IDS会去做一些数据的收集,这些数据都是跟信息安全有关,因为这些信息就表现出来当前系统运行是不是在合理的情况下;
数据传输安全
信息安全在笔者看来有一大部分说的是安全通信协议,下图里面显示了一些我们通常会用的一些数据传输安全的一些机制。
对于防火墙或者是IDPS,它的层级是跨的比较深的。它从VLAN到第一层第二层,再到往上的数据包和应用层包,其实都可以做一些分析。如果要做到第四层以上,我们就认为它是一个深度的包检测了,可以从协议层和应用层的再去帮你分析这个包是否是合理的?是不是非法的一个数据包?
IDPS概念是什么?
经过解码以后做一些处理,然后去分析一些协议层面或者数据层面的一些解析,用一些规则来判断它是否是正常的一个数据库。
所以这边与规则匹配,当然一些比较有特点的攻击或者是那种对于标识不合规的一些,我们可以自动做一个检测过滤。基于这种规则匹配以后就形成了一个报警和日志,这就是一个IDPS的功能。
在当前车载中,protect的动作设计,基本上是不太会引入的,因为你平时比较担心的是立即执行这个保护行为会不会影响车的功能,所以现在大部分做的是IDS。对于规则的更新和发放,实际上是比较谨慎的。
这张图进一步解释了对于车载IDPS它是怎样一个部署的系统?像我们用的PC这种,它就是一个电脑,就是直接一个以太网。就是说你电脑上装IDS的一个程序就可以做这个系统。
一些入侵行为需要去收集车上所有ECU的一些报文,无论是CLAN还是以太网,这些都是你去判断是否有入侵行为的一个数据源头,所以你要从域控制器上把一些数据包给收集过来上面,但不能把所有包直接全部传过来,需要有一定规则的,有IDPS的话,有一些slave的谋害会按一定的规则去一些数据的异常行为,然后更新给中央网关,中央网关再去统一去做筛选和规则匹配。
三、AUTOSAR信息安全架构
AUTOSAR提供的安全模块
今天我们讲AUTOSAR里面信息安全架构有哪些?前面也提到了一些概念,就是实际上就是AUTOSAR里面就在使用的。像Crypto Stack提供一些软件加密和密码服务,这是一个基本的模块和CSM 提供可信软件的模块链路。
还有就是一些通信的安全协议像SecOC 、TLS、IPsec每个层级都有一些安全的协议。还有就是AP里面的IDS专门是用来做一个权限的管理,对于本地的资源做访问,做统一的安全诊断,安全诊断除了UDS里面的R7服务,现在多了一个R9,专门用来做一些信息安全产品的验证,对UDS做了一个这方面的扩展。
下图左边是AUTOSAR里面跟信息安全有关的一些组件模块,主要Crypto Driver、Crypto Interface以及CSM模块。
右边是AP下面和信息安全有关的。AP那边不能直接说这几个模块是信息安全有关的,应该说它是哪些模块信息安全会影响它?它的设计里面体现出来信息安全的一些理念,
像刚说到的通信链路,主要是Communication Management,在这个层面它有很多信息安全的协议的设计,如 IAM、Crypto Stack都是一些与上层应用和Functional Clusters去使用密钥和加密程序的一个必要的模块。
SecOC
Identity and Access Management
Secure Communication-Motivation
接下来分享一下AP中的安全通信。主要从以下三个方面考虑:
1. 完整性,安全通信的目的就是要保证数据的完整性。
2. 真实性是不是合法的一个来源。
3. 机密性,在未授权的情况下不能被访问到。
支持的SOME/IP Binding协议
IPsec-Internet Protocol Security
IPsec Security通常是以软件的模式体现,首先有一个IKE的模块是Exchange这样的模块,下面IPsec里面有相应的IPsec模块,还有一些Framework的一些模块,像这样一些Database的Security策略也是通过一些配置可以去产生,这是AUTOSAR对于信息安全有一些设计,有它一定的便捷性。
配置Secure Communication
如果进行配置,我们可以在SWC Port端口上面相应去设计绑定你的安全策略。比如说SOME/IP Binding、secOS/TLS/DTLS,在一个系统级的设计层面都可以去部署这些安全策略。
Crypto Stack
Crypto Stack刚才也说了,它主要包含的功能是密钥管理的一些加密算法执行。一般使用Crypto时,还需要一些Crypto Internet,然后再通过一些返回取得解密以后的一些消息。
下图的例子就是原始未解密的信息,然后我们去调用Crypto的一些模块,然后得到一个解密的一些消息的过程。
Use Cases
在Crypto的一个标准文档里面,它分了几种类型:Crypto Key管理和键值管理这样几个接口类型。整个Crypto的设计,实际上还是充分考虑信息安全的一些使用场景对它做了一些加密的分类,最后它可以访问你硬件上的TEE或者HSM,通信链路的都是安全可靠,这是AUTOSAR Crypto的一个设计。
已完成
数据加载中