热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

can总线rollingcounter_[翻译]识别CAN总线上的攻击

现存的汽车ControllerAreaNetwork(CAN)非常容易受到攻击。缺少对发送者的验证,意味着攻击者可以伪装成作为网络上的一个合法节点,进行

现存的汽车Controller Area Network(CAN)非常容易受到攻击。缺少对发送者的验证,意味着攻击者可以伪装成作为网络上的一个合法节点,进行发送和接收消息。这篇论文提出了一个可以使用CAN识别合法和不合法消息的系统。此外,重防攻击可以阻塞注重安全的实时网络,这一系统还提供了防御重防攻击的功能。

关键词:Controller Area Network(CAN),汽车安全,安全机制,网络安全

1. 介绍

在过去的20年里,Controller Area Network(CAN)以其在车载式通信中优越的鲁棒性,容错率和高效而出名。除了它的一些安全特征,CAN在设计时并没有考虑到安全性,因为汽车被假定处于一个孤立的系统中。然后,现今的车载网络正在受到威胁,因为攻击者试图盗取,篡改或伪造信息,这可能会使得汽车的购买者和他们所处的环境变得不安全。

我们提出了一个系统,使用这个系统,CAN可以检测外部威胁,并区分消息是来源于合法的ECUs(电子控制单元)还是未被授权的源。我们也能试图创造一个能够防御重放攻击的系统,以此降低实时网络资源的消耗。

2. 背景

2.1 CAN行为

CAN在现代汽车通信协议中被大量的使用。它在1980年代中期由BOSCH设计出来,并运行在广播网络中。某一节点创建的包会被发送给网络中所有的节点,接收节点自己决定是接收还是抛弃这个包。这一行为的原理是为了保持网络中信息的一致性(Texas Instrments-2008)。标准CAN包的结构如图1所示:

图1标准CAN包(Texas Instrments-2008)

除了标准长度,还有一个拥有一个29-bit的标志域的扩展版本,这个标志域使包中柷包含更多种类的优先顺序。

个体节点决定是否使用能够标志消息类型的标志符(CAN ID)来处理包。

2.2 CAN漏洞

几个潜在的漏洞存在于CAN的实现中。接收节点决定是否根据CAN ID来处理包,网络中其他的节点也可以这样做。因此,个体节点不能识别某一个包是不是专门发送给它的,也不知道这个包来自于哪个节点。这就导致另一种漏洞,也就是CAN不能识别节点是否是合法的。CAN没有任何的对节点授权的方式。因此,攻击者可以轻易地在中继节点上伪造消息。这些方面导致了CAN不仅不安全,还不能对威胁进行识别。

2.3 CAN攻击概况

攻击者如果要渗透汽车的网络有非常多的方法。最直接的就是通过On-Board Diagnostics (OBD-II)端口。它提供了对CAN总线的直接访问,并被用于对包进行诊断(Checkoway-2011)。然而,如果攻击者连接到了这个端口,他们就会被当作这个网络中的一个节点。这使得他们可以收集和传输消息。一种替代方法是在端口上安装某些远程设备,远程对汽车进行攻击。

最近汽车生产的趋势转向了汽车的无线通信。像GM’OnStar, Toyota’s SafetyConnect, 和BMW’s BMW Assist (Checkoway-2011)这些系统让车辆能够通过宽带服务进行通信。这些系统提供了新的路径供攻击者与车辆进行交互。

3. 目标

我们研究的目的是针对CAN安全机制的缺乏,生成一些功能性的解决方案。CAN漏洞的关键点是协议不能识别消息的来源。

为了研究解决方案,我们提出了一个能够兼容现在CAN模型的方法。我们设计了一种机制,使CAN能识别ECUs是本地车辆硬件的一部分(合法的ECUs)还是外部攻击者的(恶意的ECUs)。此外,我们打算创造一个系统,这个系统通过创建一个能够区分某一帧和下一帧,以此使CAN能够防御重放攻击。

为了实现这一目标,我们创建了一个系统,通过在现有的CAN帧后面添加一个域,使CAN能够识别入侵者,并防御重放攻击。这一机制会在这一域中产生新的值。这些值中的其中一个就是根据帧中数据以及一个秘密值产生的hash值。这个hash值可以作为一个授权值,用来识别消息是来源于,在车辆生产过程中的哪些组件。另一个值作为一个时间戳,使系统能够识别重放攻击。

目前使用的CAN帧不能兼容我们提出的额外的域。因此,我们决定使用新CAN FD (CAN with Flexible Data-Rate)。这一协议对CAN协议进行了一系列改进,包括更灵活的数据传输率和一个扩展数据域。鉴于传统的CAN格式只允许8字节的最大数据长度,CAN FD协议可以支持长达64字节的消息(Hartwich-2012)。此外,CAN FD协议有更灵活的数据传输率(从CAN的1 mbps到高达15 mbps),这使得这个系统可以兼容增长的消息长度。

4.系统描述

这一系统的核心概念就是使用一个小的加密哈希函数。加密哈希函数是一种单向散列的函数,因为它不能根据hash值还原出原始的数据。此外,加密哈希函数还可以避免冲突,也就是说,两个不同的消息不可能产生相同的hash值。

hash函数在消息的保护授权和发送者的验证方面都有应用。因为从hash值还原出原文是非常困难的,用于产生hash值的原文内容不会受到修改,因为随后它们就会被验证。

4.1 CAN标识号

这一系统的第一步源于车辆的生产。在汽车的生产过程中,每辆车都会有一个指定的值。这个值是唯一的,并被用于车辆的识别(与车辆识别码(VIN)相似)。汽车中的每一个ECU将会有一个CAN标识号(CIN),这个CIN会被硬编码进他们的系统中。这个值作为一个索引用于对ECU进行访问。在维修的时候,通过从生产商那获取原始CIN,这个CIN可以被改变。

4.2 受保护的帧的结构

这一机制会产生一个被称之为CAN消息认证器(CAN Message Authenticator (CMA))新的域,它包含hash值和用于产生哈希值的时间信息。在一个合法的ECU收到一个帧的时候,CMA将被用于验证消息的合法性。这一新的帧位于当前数据帧的末尾。

4.3 准备消息帧

在车辆运行的时候,ECU在发送消息的时候会执行一个hash算法。我们设计了两种不同的方法来获取这一hash值,如图2所示,随着最后一帧被发送,这一hash值会被包含在新域中。

使用通用时钟

第一个版本的运行是基于这一假设,CAN系统访问了通用时钟,这一通用时钟可以被系统中的所有元素监控。这一时钟机制本身就像一个单调递增的计数值一样简单,并且可以被所有ECU访问。起始消息( initial message (IM))会和时间值(timing value (TV))以及CIN连接(II)在一起,然后被传给hash函数(H),这一hash函数会根据这三个元素生成一个值。然后将这一值与TV连接产生CMA。通过在消息发送时将当前时间包含进去,接收ECU能够访问CIN的前提下,能够重新产生hash值(验证授权)。加密哈希函数中的可以避免冲突,保证只有拥有CIN访问权的ECU能够产生这一哈希值。

图2 哈希模型

使用hash分割

第二个版本假设在没有通用时钟的前提下,每个ECU维持一个计数值(counter value (CV)),用于hash块的选择。消息和CIN首先被连接(II)到一块,并产生一个hash值(H)。然后将产生的hash值划分为更小的部分,根据CV选中这块小块中的一个。接着将简化的哈值和计数值连接到一起产生CMA。这个方法让我们能使用更小的值进行授权,提高空间利用率。

这两种方法中,帧都被广播到网络中的每个ECU中。为了避免不必要的hash值检查,ECU会首先检查CAN ID来决定这个消息是否与自己相关。如果一个ECU能够处理帧,它会首先从受保护的域中提取身份验证信息。通过使用消息,时间值,和车辆生产时硬编码进去的CIN,消息能够被验证。如果hash值匹配上了,消息就被认为是合法的,并处理消息。如果没匹配上,就抛弃这个消息。

5. 系统的优点

正如前面所提及的,目前的CAN系统没有提供机制来保障通信的安全。在分析完CAN的弱点后,我们总结认为系统最基本的弱点是不能识别入侵者。新系统提供的保护是最重要的目的,但不是这个系统唯一的优点。

5.1 防御入侵

在这个系统中,通过单向hash函数和每辆车唯一的CIN的使用,CAN可以识别入侵者。为了使消息被接收,传过去的hash值必须和接收时验证的hash值相同。因为hash函数强大的雪崩效应,在没有CIN的前提下,难以通过计算产生这个hash值。此外,CIN不能被轻易地从产生的hash值中提取出来。这使得恶意ECU难以伪装成一个合法ECU。

5.2 防御重放攻击

在两个版本的hash函数中,发送的单个帧包含一个值代表那个帧的时间戳。这个值也被包含在hash值中,也就意味着,帧的身份验证直接依赖于这个值。除此之外,这个值也可以被临时的保留起来,用于验证对应ID下一个到达的包。如果多次收到相同的哈希值,也就表示相同的时间值被多次的发送,也就表示这有可能是一个重放攻击。

6. 局限/要求

尽管这一方法能够实现使得不安全的CAN协议变得安全,但它也不是没有局限。为了使这一方案可行,需要在当前的系统中添加额外的部分。当然,它的使用也会给这个系统施加一些限制,可能使其难以在实时系统中应用。使系统使用的第一个附加要求是CIN。当前车辆的生产过程中没有添加这一个值。因为太多的安全机制都要使用到这个值,需要保证它的唯一性。这一值的唯一性也需要由生产商来保证。除了CIN的产生之外,ECU也需要在没有额外的资源的前提下执行hash函数。

也许最本质的额外要求是两个版本中的hash函数都需要的时间戳的值。版本1中的hash函数要求ECU能够访问一些通用时间结构。目前CAN中没有通用的同步时钟值。因此,要采用版本1需要把这个硬件添加进车辆中。此外,当前时间也需要能被所有ECU在任意时间访问。依靠实现这一任务的方法,因为额外的通信量,网络总线的负担也许会过重。

如果采用版本2,ECU会需要有一个方法来维持计算值,同时也要保证与之相关的最近的hash值能被收到(比较到来的帧以识别重放攻击)。这一附加功能也会进一步加重当前有限的ECU硬件的资源负担,致使这一方法不可行。

7. 总结

考虑到将CAN作为注重安全的实时系统来使用,利用CAN的漏洞来入侵和攻击是不可接受的。我们论文中提出的这个系统是专为改善这一不安全的系统的安全性而设计的。这一方法使CAN能够区分帧是来自于自己的系统中还是入侵者。它也包含时间方面的机制使它能防御重放攻击。

我们相信这个系统将会是当前的CAN模型之外一个可行方案。它使得系统可以识别威胁,消息是来自内部还是外部,防御攻击。我们希望这样一个系统会在将来的车辆中实现,以使漏洞最终被修补。

致谢

这篇论文是在Grant No. DUE-1241675下国家自然科学基金的一部分。

参考文献

略(译者注:请参看原论文)

原文链接:http://ewic.bcs.org/upload/pdf/ewic_icscsr2015_paper15.pdf

本文由 看雪翻译小组 梦野间 翻译



推荐阅读
  • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • Swoole加密机制的安全性分析与破解可能性探讨
    本文深入分析了Swoole框架的加密机制,探讨了其在实际应用中的安全性,并评估了潜在的破解可能性。研究结果表明,尽管Swoole的加密算法在大多数情况下能够提供有效的安全保护,但在特定场景下仍存在被攻击的风险。文章还提出了一些改进措施,以增强系统的整体安全性。 ... [详细]
  • 深入解析 OpenSSL 生成 SM2 证书:非对称加密技术与数字证书、数字签名的关联分析
    本文深入探讨了 OpenSSL 在生成 SM2 证书过程中的技术细节,重点分析了非对称加密技术在数字证书和数字签名中的应用。非对称加密通过使用公钥和私钥对数据进行加解密,确保了信息传输的安全性。公钥可以公开分发,用于加密数据或验证签名,而私钥则需严格保密,用于解密数据或生成签名。文章详细介绍了 OpenSSL 如何利用这些原理生成 SM2 证书,并讨论了其在实际应用中的安全性和有效性。 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 深入解析国内AEB应用:摄像头和毫米波雷达融合技术的现状与前景
    本文作者程建伟,武汉极目智能技术有限公司CEO,入选武汉市“光谷3551人才计划”。文章详细探讨了国内自动紧急制动(AEB)系统中摄像头与毫米波雷达融合技术的现状及未来前景。通过分析当前技术的应用情况、存在的挑战以及潜在的解决方案,作者指出,随着传感器技术的不断进步和算法优化,AEB系统的性能将大幅提升,为交通安全带来显著改善。 ... [详细]
  • 本文通过思维导图的形式,深入解析了大型网站技术架构的核心原理与实际案例。首先,探讨了大型网站架构的演化过程,从单体应用到分布式系统的转变,以及各阶段的关键技术和挑战。接着,详细分析了常见的大型网站架构模式,包括负载均衡、缓存机制、数据库设计等,并结合具体案例进行说明。这些内容不仅有助于理解大型网站的技术实现,还能为实际项目提供宝贵的参考。 ... [详细]
  • 本文对SQL Server系统进行了基本概述,并深入解析了其核心功能。SQL Server不仅提供了强大的数据存储和管理能力,还支持复杂的查询操作和事务处理。通过MyEclipse、SQL Server和Tomcat的集成开发环境,可以高效地构建银行转账系统。在实现过程中,需要确保表单参数与后台代码中的属性值一致,同时在Servlet中处理用户登录验证,以确保系统的安全性和可靠性。 ... [详细]
  • NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮?
    NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮? ... [详细]
  • 你可能还记得,在《真实谎言》、《偷天陷阱》、《查理的天使》、《少数派报告》等好莱坞科幻电影中,经常出现一个类似的场景:角色将眼睛靠近某个识别设备,以完成身份验证。这种基于眼睛的生物识别技术,即指静脉识别,曾在过去近二十年间逐渐淡出公众视野。然而,随着技术的不断进步和多模态生物识别系统的兴起,指静脉识别技术正迎来新的发展机遇。该技术通过检测手指内部的静脉图案,具有高安全性、难以伪造的特点,有望在未来成为生物识别领域的重要组成部分。 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 在当前的软件开发领域,Lua 作为一种轻量级脚本语言,在 .NET 生态系统中的应用逐渐受到关注。本文探讨了 Lua 在 .NET 环境下的集成方法及其面临的挑战,包括性能优化、互操作性和生态支持等方面。尽管存在一定的技术障碍,但通过不断的学习和实践,开发者能够克服这些困难,拓展 Lua 在 .NET 中的应用场景。 ... [详细]
author-avatar
真个田_707
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有