当前位置:首页 > 最新资讯 > 新闻动态

苏小清聊技术|汽车钥匙数字化时代,如何防范虚拟世界的盗窃?

时间:2020-09-27

  苏小清聊技术,

  1分钟get最新汽车热点技术知识。

  本文摘要:

  聚焦汽车数字钥匙,描述如何分析数字钥匙的安全性以及如何避免,为安全和风险管理专业人员提供参考。

1.jpg

01:汽车钥匙进入数字化时代

  2019年8月,一则“窃贼30秒偷走一辆特斯拉汽车”的消息在网上迅速传播。据YouTube上的一个视频显示,两个小偷只用了数十秒的时间就成功解锁了一辆Model S,并将其开走。视频中一名盗贼拿着一根电线,用来进行钥匙破解,随后车辆被成功解锁,这名盗贼的同伙将车开走。

  这只是众多不法分子通过PKES(Passive Keyless Entry and Start,汽车无钥匙进入与启动)技术设计的遥控无钥匙系统(RKS,Remote Keyless System)对汽车进行盗窃的案例中的一个。

  据相关统计数据显示,2019年欧洲和美国相继爆出多起通过中继攻击的方式对高端品牌车辆实施盗窃的事件。

  尤其是在英国,仅2019年前10个月就有超过14000多起针对RKS系统的盗窃事件,且小偷的作案时间通常不到 30 秒,作案工具中继设备和攻击教程甚至在网络上也可以购买,这对车主的人身和财产安全造成极大的伤害。

2.jpg

  因此,RKS系统为用户创建的全场景数字钥匙生态环境,可以让用户彻底抛开传统车钥匙,但无疑,也带来了新的安全风险挑战。

02:关于遥控无钥匙系统(RKS)

  遥控无钥匙系统(RKS)-也称为无钥匙进入系统(RKE)或遥控中控锁(RCL)-利用短距离无线通讯技术将密码从钥匙发送汽车,汽车收到密码后,获得授权控制汽车解锁车门或启动发动机。

  手机上没有遥控汽车的射频天线装置,所以移动应用App没有办法用传统方式遥控汽车。这意味着在转向数字汽车钥匙时,通信技术发生了变化。

  手机包含的两个合适的通讯天线是近场通信(NFC)和低功耗蓝牙(BLE)。NFC的传输距离非常短(通常只有2-4厘米),并且在Apple设备上的使用受到严格控制;因此,大多数数字汽车钥匙实施选择了低功耗蓝牙(BLE)。

3.jpg

  另外,驾驶员无论身在何处都必须能够解锁并启动车辆。这就要求即使手机没有信号,也能解锁。这意味着一旦数字钥匙完成了应用的在线初始化和设置,它就需要具备生成授权遥控密码所需的所有信息。当涉及到应用程序的安全并延展到汽车安全时,这一点尤其重要。

03:安全风险何在?

  对于物理的遥控无钥匙系统(RKS),最大的威胁是重放攻击 。

  重放攻击是指攻击者侦听无线电传输,捕获由钥匙发送到汽车的数据。然后,他们可以通过“重放”捕获的相同密码来解锁车辆。由于传统的RKS是单向通信,因此通过始不断发送不同的密码——使用称为滚动密码的技术来防御重放攻击。

  对于攻击者来说,每个代码似乎都是随机的,而实际上,遥控钥匙生成了一个非常复杂但具有一定逻辑的序列。只有与钥匙配对的车辆才能知道这个序列。

  BLE是一种双向通信方式。这允许使用更安全的加密方法来验证命令是否来自合法的移动应用程序。我们已经看到开发人员采用了不同的实现方式,总的原则一直围绕着询问-应答机制(challenge-response)即手机App应用程序与汽车连接。

  汽车端产生“challenge”,并将其发送到手机App应用程序,然后,手机App对Challege进行加密签名,并将response发送回汽车。

4.jpg

  接下来,汽车将验证只有合法的手机应用程序App才能正确签署Challenge。

.  处理challenge-response最常见方法是使用非对称密码学。从历史上看,RSA一直是首选算法,但最近椭圆曲线(ECC)算法已变得流行。

  ECC提供了比RSA更高的效率——相同的加密强度,较小的密钥大小和较小的处理能力要求。同时,随着密码法及国密算法的普及,具有更轻量实现的SM2算法也将被越来越多的使用。

  使用这些非对称密码技术,当首次安装和配置手机应用程序App时,会在应用程序实例的上下文中生成并存储一个私钥,而等效的公钥则存储在汽车系统中。然后,可以使用私钥来签名任何Challenge。而公钥则允许汽车验证签名。

  与所有非对称加密一样,要使这种方法具有安全性,必须将私钥安全保存。

  显然移动应用App不是存储数据的安全所在,但为了使手机在即使没有信号时也要满足钥匙运行的要求,需要在App内部存储和执行私钥及其相关的密码操作。

  这样一来,攻击者可以轻易地借助工具对程序进行逆向工程,从而确定私钥的存储位置和使用方式。这样,再从App中查找并提取到私钥就只需要一小步了。

  一旦攻击者能够窃取加密私钥,他们就可以窃取或控制车辆。车主手机中的GPS甚至可以告诉攻击者该车辆停在哪里。

  随着越来越多远程控制功能的场景增加,车辆安全将受到更多直接的威胁。

04:如何分析一款数字车钥匙的安全性?

  要分析一款数字车钥匙的安全性,主要包括基本安全性测试,风险评估,功能测试及渗透测试。

  测试依据可参照由CCC(全球车联联盟)组织发布的数字车钥匙标准化规范2.0,2019年IFAA(互联网金融身份认证联盟标准)数字车钥匙系统技术规范1.0,GB/T 22239-2019网络安全等级保护基本要求,以及RCAR发布的虚拟车辆钥匙安全要求等相关技术要求。

  我们首先从系统架构分析开始理解其工作流及原理,从中找出脆弱点,并逐一进行检测。一个典型的数字车钥匙系统架构包括三个部分,即数字车钥匙云端服务器,汽车端以及数字钥匙移动终端(手机或智能手表等移动设备端)。

5.jpg

  在整体架构中,在静态情况下,钥匙在硬件设施中得到了很好的保护,但在使用过程中,手机app被用来获取和处理密钥,因此整体来看薄弱环境已经传递到了手机app中。

  进而我们可进行一系列针对手机app的测试:

  1) 蓝牙空口中间人攻击

  2) 脱壳

  3) 白盒加密密钥破解还原(软件侧信道或错误注入)

  4) APP 应用层级、操作系统层级和底层接口测试;

  5) 车端控制器与手机端 APP 进行渗透测试,主要分析是否可以通过篡改、恶意欺骗等方式反向控制车端控制系统;

  6) 车端控制器权限管理的安全性,未授权或未绑定的用户不能连接车端控制器控制车辆;手机端 APP 控制权限溢出攻击测试;

  7) 手机端 APP 客户端漏洞、操作系统服务漏洞、应用系统服务漏洞、溢出漏洞、策略配置漏洞及身份验证突破等进行全面测试。若有安全缺陷,提供整改加固方案;

  8) 手机端 APP 与服务器端渗透测试确保数据传输的完整性、保密性;

  9) 手机端 APP 被入侵的风险;

  10) 应对网络攻击的安全评估,防止诸如重放攻击、中间人攻击、拒绝服务等网络攻击手段;

  测试中,我们曾发现代码中的加密密钥,私钥存储地址,加密算法执行及引用的密钥等,可见要降低安全风险,应对手机APP采取必要的保护措施。

6.jpg

05:三项操作降低安全风险

  移动APP开发人员可以采取三项操作降低安全风险,将移动应用程序转换为安全的环境,以存储和使用私钥。

  1)防逆向工程

  采用代码保护工具的保护技术可阻止对移动App进行逆向工程的尝试。这使攻击者无法轻易掌握机密并提取数据。可以建立三个安全层:

  *混淆-使代码难以阅读和理解,从而保护App应用免受静态分析。

  *环境检查–确保应用程序App仅在受信任的设备上运行,而不是在攻击者可以观察和控制应用程序的环境中运行-比如仿真环境中了解程序代码是如何工作的。

  *防篡改技术–防止攻击者更改或修改应用程序。这禁止他们恶意使用应用程序代码或创建应用程序的“克隆”版本。

  2)将数据绑定到手机

  设备绑定是一种将数据锁定到特定手机的技术。这可以阻止攻击者简单地复制应用程序数据库的内容并在不同手机上运行的同一应用程序的另一个实例中使用它们。

  3)在安全的环境中执行加密操作

  除此之外重要的是确保密码操作的完整性和私密性。这意味着永远都不应公开加密密钥。这排除了一半软件方式实现实现加密算法的做法,因为普通的做法是将密钥以明文数据的形式当作输入参数传递给算法模块的。

  可作为安全密码环境的还包括专用硬件,例如安全单元(SE)或受信任的执行环境(TEE)。但是,在满足安全性要求的同时,这些硬件的方案也带来了部署方面的挑战——移动App的开发人员需要设计集成不同的SE以及TEE环境,并承担其中的开发成本;而且通常SE或TEE的集成没有统一的标准,不同手机供应商也存在着不同。 

  所以可以尝试使用纯软件的解决方案,比如满足金融级的白盒White box保护技术(如下图所示),这种技术的正确实施可以达到与上述SE或TEE同等的安全性。它能在移动APP中创建一个安全的加密环境。由于它是一种软件解决方案,因此它是移动APP的一部分,而无需向应用程序添加任何新的外部依赖关系,对于开发人员和用户而言都更为方便。

7.jpg

小结

  汽车功能与驾驶员个人手机的高度集成,可以带来更多的便利,但是,它确实打开了一个新的攻击平台。

  采取已证明的有效测试评估方法及预防措施,可以大大降低这些新风险,从而让开发者创造更多的便捷应用,让使用者畅享智慧生活。

双节连璧,举国欢庆

同享同乐,安全第一

苏小清预祝大家双节愉快!

1.gif