首页
社区
课程
招聘
[原创]零成本入门车联网安全研究
发表于: 2021-11-12 16:26 21090

[原创]零成本入门车联网安全研究

2021-11-12 16:26
21090

对车联网安全感兴趣,但却没有实车拿来练手,是一件很可惜的事情。为了解决这个问题,笔者结合自己的车联网安全实践经验,为大家搭建一个高度接近真实车辆的实验环境。这个环境使用了目前流行的多域架构,实现了包括VLAN、防火墙等真实的安全功能,供大家学习和参考。


域架构

对域架构的解释:

1)本实验环境实现了两个经典的通信域VCU和HU,VCU可以理解为整车控制域,而HU则是信息娱乐域,两个域通过以太网进行通信;

2)VCU域实现了车身CAN(BDCAN)和自动驾驶CAN(ASCAN),这两路CAN通过网关相连,用来模拟车身CAN报文发送至自动驾驶模块;

3)HU域实现了仪表CAN(ICCAN)与摄像头CAN(CAMCAN),它们分别与BDCAN、ASCAN通过以太网相连,第一路连接(BDCAN -> ICCAN)模拟车身数据在仪表盘上显示,第二路连接(CAMCAN -> ASCAN)模拟摄像头采集的数据传送给自动驾驶模块;

4)第一路连接与第二路连接通过VLAN进行隔离。


车辆功能

通过ICSim[1]模拟车辆功能,ICSim是一个开源的车辆仪表模拟器,该模拟器包含controls和ICSim两个模块,其中controls负责生成模拟的车辆数据,以CAN报文的方式发送给虚拟的CAN接口,ICSim从虚拟CAN接口读取CAN报文,并在仪表上更新对应零件的状态,如车速、车门状态等等。

(ICSim仪表和操作界面)

在我们这个架构中,ICSim和controls分别连接到两路不同的CAN上,其中ICSim连接到HU域的ICCAN,代表真实的仪表盘;controls连接到VCU域的BDCAN,代表真实的车身部件。VCU域与HU域通过以太网进行连接,controls产生的CAN报文通过以太网传送给ICSim。这种实现与真实的整车域架构及其接近,因为有些车型的仪表确实被划分到了HU域,以太网作为VCU与HU的通信协议也是当下比较流行的域架构。

通过如下方式创建vcanic和vcanbd:


接下来将ICSim与HU域的vcanic绑定,controls与VCU域的vcanbd绑定:


此时,代表车身零部件的controls产生的报文还不能顺利达到ICSim,因为vcanic与vcanbd两路CAN总线目前还未联通,我们将通过以太网的方式将这两路CAN连接起来,同时也将意味着VCU与HU的联通。


CAN-ETH通信

以太网的实现使用开源项目cannelloni[2],cannelloni的核心原理是通过UDP协议传送CAN报文,如下图所示:



(图片来自论文《Mapping CAN-to-ethernet communication channels within virtualized embedded environments》)

因为我们这个实验是在一台机器上进行的,所以我们将通过不同的端口区分VCU和HU这两个独立的通信域,结合划分广播域的需求,我们将通过vconfig创建带有vlan id的虚拟网卡。


VLAN划分广播域

考虑到通过以太网传输的报文类型包含了安全性要求比较高的ADAS(自动驾驶)报文,我们的想法是根据报文的不同安全等级来划分广播域,将普通控制报文和自动驾驶报文通过VLAN划分到不同的网络,相互之间不能访问。


首先需要在真实的网卡上创建带有vlan id的虚拟网卡:


创建结果如下:


给网卡添加ip地址并启动网卡:


启动成功之后的效果如下:


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 6
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//