汽车E/E架构网络安全设计(二):实现过程和加密算法
上一篇我们介绍了智能汽车的电子电气架构和网络拓扑,本篇主要是介绍汽车电电子电气架构的信息安全问题。数字通信的安全不是一个新话题了。在消费电子网络和互联网上,安全问题一直以来都非常重要。为了解决安全问题,相关人员已经开发、使用和改进许多标准。让我们一起来看下这些安全机制的基本原则。
信息安全具体表现为三个基本属性或目标:保密性(Confidentiality)、完整性(Integrity)和可用性(Availability),(见图1.2)。有些研究者还认为应加上责任和匿名性,但这些在汽车领域并不需要,因此在此不作讨论。
图1.2
为了能够实现上文提到的信息安全三个目标(CIA),我们需要采取不同的过程。下文将对这些过程进行解释。
密码算法通常分为对称密钥算法和公钥密码算法。下文将对这两类算法进行解释,并在图1.3中加以说明。
图1.3
在了解了加密法和安全的基础知识后,本小节对实现和确保这些概念的现有算法进行概述。下文中对算法的优缺点进行了概述。从古至今,已经开发了无数的算法。由于算法的种类太多,本文无法一一列举。因此,只对使用最广泛的算法简要概述。
—数据保护标准(DES)
DES是20世纪70年代为美国(USA)情报机构开发的一种对称密钥算法。目前,该标准已广泛存在于密码软件库和密码加速器的硬件中。DES使用的密钥长度为56 Bits。这个密钥大小存在不安全因素。因为,攻击者可像对待现代计算机系统密码一样,通过蛮力分析(即测试每一个可能的密钥)来确定一个密钥。
—三重DES(3DES)
1998年开发的三重DES重用了DES的组成部分。是以DES为基础,在其主要运行方式上,是将DES算法的三个运行链起来,每个运行链都有一个独立的56 Bits的密钥,从而将密钥大小增加到了168 Bits。目前认为它是安全的。由于DES是为支持硬件而设计的,因此DES和三层DES(3DES)的软件实现通常比同类算法要慢。
—高级加密标准(AES)
高级加密标准(AES)是美国国家标准与技术研究所(NIST)的标准,来源于NIST举办的密码算法竞赛,并于2001年发布。这种加密方法是一种对称密钥算法,可谓是DES的继承者。AES可以使用大小为128 Bits、192 Bits和256 Bits的密钥。虽然除了蛮力之外,对这种加密方法的攻击已经出现,但这些攻击无法在合理的时间内完成,以目前的计算机的运算能力来看,该算法还算是安全的。当前,AES在许多软件库中都有,使用非常普遍,它还能作为专用和集成的硬件加速器使用。
—RSA
RSA是一种在世界范围内的许多领域广泛使用的公钥算法。最早于1977年提出。这种技术是利用将一个大数分解成两个质数时的多种可能性来实现公钥和私钥之间的安全关系。RSA通常用于2048-4096 Bits之间的密钥。低于1024 Bits的密钥,一般认为是不安全的。虽然在实际使用中,1024 Bits的密钥还没有被破解,但我们也不鼓励使用这种密匙。RSA的计算复杂度较高,这也导致了其加密和解密时间较长(见第四章)。可使用硬件加速器,但加速器与微控制器的集成不如AES的应用范围那么广。
—椭圆曲线加密法(ECC)
随着安全算法和相关协议的不断推出,解决协议之间的可比性问题迫在眉睫。想要对算法和协议的安全性进行评估,使其具有可比性,并非易事。在下文中,我们将对算法和全性评估进行简要概述。
—对称算法
安全算法的特点是元素繁多且内部结构也有很大的不同,这个在比较对称算法和公钥算法时尤其明显。这些算法的共同点是都需要一个秘密参数,即加密密钥。然而,密匙的结构和功能也会有很大的不同。因此,通常仅将相同类型的算法进行比较(例如,对称算法与公钥算法)。对于对称算法,密钥长度是算法强度的一个指标。此外,在对称算法中,由于输入通常是以分块方式处理的,所以块长度是可以比较的元素。接下来,我们基于参数密匙长度和块大小的可比性进行简要讨论。
1)加密长度
在比较(已建立的)密码算法时,一般假设算法本身是安全的。因此,加密消息的安全性取决于给定的参数,这些参数可以是密钥(及其长度),也可以是要加密的明文。因此,对于安全性来说比较的重点是密钥,特别是其长度。以DES算法为例,56位的密钥长度在系统安全中是最为脆弱的,因此加密消息就容易受到暴力攻击。虽然56位的密钥长度在进行算法开发时仍然足够,但现在的计算机处理数据的速度更快,因此只需要通过对各种组合的反复试验(暴力)就可以找到密钥。为了减轻这种攻击并重新使用已开发的算法,开发了3DES,分别在三个阶段使用DES和三个不同的密钥,从而增加安全性。虽然这简化了过程,但3DES实际上并没有提高三倍的安全性,仅仅提高了安全性。对密钥长度的讨论也清楚地表明了安全性的变化性质。按照摩尔定律,随着计算能力的提高,需要更大的密钥或新的算法来维持安全性。在计算机技术不断提高的当下,曾经被认为是安全的EDS,现在也不那么安全了,计算机能够做到在短时间内暴力破解相对较短的密钥。
2)块大小
比较算法时的另一个问题是底层块大小和对块的处理。块是算法运行的输入。较长的明文输入需要剪切到块大小,较短的输入需要进行填充。需要注意的是,块大小决定了唯一密码块的数量。我们需要注意避免块的重复,因为它们可能使攻击者对密钥进行反向工程。因此,块大小决定了可以进行安全加密的最大数据量。3DES使用64位的块大小,将具有相同密钥的可安全加密数据量限制在32 GB左右。AES则使用128位,将可安全加密的数据量提高了232。
当使用这种基于块的密码加密数据时,需要注意的是,当简单地将明文分为块时,相同的明文会产生相同的密文。这种操作模式被称为电子代码块(ECB),极其不提倡此操作模式,因为它会使输入中的模式易于识别。为避免这种情况,应将块进行组合或添加随机因素。其他模式,例如密码块链(CBC)或密码反馈(CFB)执行这种级联,并且需要一个安全的初始化向量(IV)作为附加输入。基于这些因素,在本操作中,仅使用CBC模式中的AES。
—非对称算法
由于算法本身的工作原理,在比较非对称算法时,单独比较密钥大小是不合理的。例如,RSA算法利用大数分解的困难作为安全性的基础。ECC则以椭圆曲线离散对数问题(ECDLP)为基础。由于这些数学问题在本质上不同,所以比较参数(如键长)不成立。在加密长度相同的情况下,ECC比RSA更安全。然而,需要注意的是,这种更高的安全性在很大程度上取决于为ECC选择的曲线,因为ECDLP可以有效地求解一些曲线。
—协议
在安全领域,可以用协议来完成不同的任务。这些任务包括密钥交换、身份验证和授权。与算法类似,协议安全性的比较也不简单。虽然可以证明一个协议可以执行所设想的标准,但协议的安全性是基于协议核心的算法的,所以协议和非对称算法面临着相同的挑战。除此之外,协议的概念,就像算法一样,可以检查缺陷。当然,有工具可以自动进行此类分析,例如 Scyther 。
—执行
虽然算法和协议的比较并非易事,但是可以评估它们总体上是否提供了项目所需的安全级别,并选择了合适的候选者。然而,每周全世界的新闻都在报道安全问题。这是因为概念可能是安全的,但它们的实现可能并不安全。虽然具有正确密钥长度的AES是一种优秀的加密算法,但执行AES的库可能存在后门,将密钥发送给库的开发人员。在这种情况下,虽然AES是安全的,但是库本身并不安全。除了配置问题,这也是互联网最常见的安全漏洞。
如果您有建议或希望发表您的文章,欢迎联系:conni.luo@i-newcar.com。
1. 引言
1.1汽车电子/电气(E/E)架构
1.1.1要求
1.1.2 计算
1.1.3 当前和未来的网络
1.2 网络安全
1.2.1 原理
1.2.2 过程
1.2.3 密码学的类型
1.2.4 算法
1.2.5 安全性评估
1.3 汽车网络安全
1.3.1 外部网络安全
1.3.2 内部网络安全
1.3.3 设备网络安全
1.3.4 标准化
1.3.5 法律情况
1.3.6 攻击案例
1.3.7 概述
1.4 面临的挑战
1.4.1 设计时间
1.4.2 运行时间
1.5 贡献
1.6 相关工作
1.6.1 汽车的威胁
1.6.2 入侵检测、网络分析与验证
1.6.3 加密和硬件支持
1.6.4 网络安全集成
1.6.5 其他领域
1.6.6 概述
1.7 组织架构和书目说明
2 设计体验
2.1 引言和概述
2.1.1概述
2.2 架构
2.3 实施
2.3.1 中央服务器
2.3.2 中央信息屏(CIS)
2.3.3 仪表盘(IC)
2.3.4 智能电话
2.4 评估
2.4.1 性能
2.4.2 网络安全
2.5 结束语
3 汽车架构的概率安全分析
3.1 问题描述和概述
3.2 相关工作
3.3 框架
3.3.1 问题描述
3.3.2 分析流程
3.4 问题解决方法
3.4.1 模型转换
3.4.2 部件评估
3.4.3 属性定义
3.5 模型合成
3.6 属性定义
3.7 模型检查
3.8 实验结果
3.8.1 架构评估
3.8.2 参数探究
3.8.3 可扩展性
3.9 结束语和今后的工作
4 轻量级认证框架
4.1 问题描述和概述
4.1.1 挑战和机遇
4.1.2 贡献
4.2 相关工作
4.3 认证和授权
4.3.1 专业术语
4.3.2 电子控制单元(ECU)认证
4.3.3 流授权
4.4 集成
4.4.1 证书验证
4.4.2 系统生命周期场景
4.4.3 系统设置
4.4.4 车辆服务
4.4.5 固件更新
4.5 验证
4.6 模拟
4.6.1模型
4.6.2 实施方案
4.7评估
4.7.1 模拟器
4.7.2 LASAN
4.7.3 安全性比较
4.7.4 延时比较
4.8 结束语和今后的工作
5 FlexRay中灵活耐用的消息调度功能
5.1 问题描述和概述
5.2相关工作
5.3架构
5.3.1 运行时间调度算法
5.3.2 多模式应用
5.3.3 封装式PDU
5.4 设计时间调度
5.4.1 启发式方法
5.4.2 整数线性程序(ILP)
5.5 实验结果
5.5.1 尺寸变化
5.5.2 延时
5.5.3 周期变化
5.5.4 计算性能
5.6 结束语和今后的工作
6. 结束语
6.1今后的工作