TA的每日心情 | 开心 2022-8-10 16:37 |
---|
签到天数: 1067 天 [LV.10]大乘
|
5#

楼主 |
发表于 2012-4-6 12:48:34
|
只看该作者
本帖最后由 code_abc 于 2012-4-6 12:49 编辑 , `9 Z6 l: t; S( U+ x
Z( L" E. E8 s2 N' I汽车遥控防盗器安全吗 (续篇)
( B! z& M$ Z1 H! q/ s m# R0 r! X" S+ H
《汽车遥控防盗器安全吗》写的有点粗糙,里面介绍的东西总的来说有点过时了。在IT、电子技术日新月异的今天,四、五年前的报道差不多可以进博物馆了。何况里面还有更老的技术。另外,作为职业IT人士居然在文章中强调自己的无线电专业学历,而对精彩的破解算法的过程一笔带过,真是一种背叛。所以下面我在来说一些新一点的,有些IT味道的内容。+ V& V. u, t4 Y( Z" ?+ D
+ o2 R5 U3 `$ Q
目前大多数车主还在使用类似遥控器的钥匙,也就是那种按一下按钮才能开门锁车的钥匙,这种安全系统英文称之为Remote Keyless Entry(RKE,我翻译为遥控无钥门证,搞汽车的同学麻烦给我一个权威的说法……)。新一代的钥匙系统叫Passive Keyless Entry(PKE,我翻译成被动无钥门证),这个系统估计有人已经在用了,通常一些高档车,新车都会提供这一选项。和RKE不同的地方在于,这个PKE系统不需要用户掏出钥匙,只要身上带着钥匙走近自己的车就可以开门,进去之后也不用把钥匙掏出来插进点火器。至需要按一下车上的“开始”按钮(这一定是微软的工程师干的)就可以把车开走了。相应的你下车关门走人之后,车子会自动把们窗锁好。和微软一样,非常贴心的设计。
: x. P4 A6 i% c% ^
, a! G/ `, {$ k9 I. N! `1 ? 在介绍PKE工作原理前跑一下题,前一篇写出来之后有人对钥匙系统的加密能力提出疑问——为何这么弱,为何不使用已经证明是安全的密码协议。我的回复过于轻率,在这里展开一下,顺便为后面的介绍打个基础。
I6 J, @0 F' p- t# o
8 C8 U7 x3 n$ b C1 [$ d 首先,钥匙系统要解决的问题是身份验证问题,不是信息保密传输问题。加密和身份验证有关系但又有本质的区别。身份验证通常的方式是让被验证者证明自己知道什么东西,或拥有什么东西。举个例子,在猜猜我是谁的诈骗游戏中,诈骗方通过语言技巧窃取“我应该知道什么”的信息,而你在后续交谈中则使用“你应该知道什么”来验证对方自称的身份。这就是一种身份认证,如果对方通过别的渠道获取了你的同学、朋友的经历,那么你就容易上当受骗,这种通过事先获取验证信息,再告诉你让你相信诈骗者身份的攻击方法,在信息安全领域里称之为回放攻击。
/ ?* z) B& k! c# C- |, E! Y- B
* Q0 \6 h' |" z$ r2 p' @+ b+ _ 为了防止回放攻击,我们需要在验证过程中加入随机效应。比如你和朋友共同知道100件事情,而骗子如果只知道其中几件就只有很小的概率在电话中让你上当。当然了,骗子可以和你多玩几次或者找多个人来玩这个游戏,小概率事件多次重复中奖的概率就大大提高了。所以,你看我们人工验证的方式是多么地不靠谱啊。不过计算机就不同,计算机产生随机数的结果可以很多,即使可以快速重试很多次,在极小的概率面前中奖的可能性还是非常渺茫的。所以这里的身份验证主要是依赖随机数生成而不是加密。有人也许会说,通过密钥交换协议每次生成一条随机密钥来加密身份信息不也可以吗?确实可以,不过我们先不考虑实现协议的硬件开销、功耗问题。只看协议本身,这个协议也要使用随机数。攻击者有两条路来进行攻击,通过破解随机数算法来破解密钥从而得到身份信息。或者通过分析每次加密的身份信息来获取密钥或者反推身份信息,因为每次加密的信息都是相同的,只是密钥不同,分析起来可能有快捷的方法。由于密钥交换协议本身不能用来验证身份,所以这种方法并不见得比仅靠随机数生成来得严密。; s5 H) ~( K& O& H$ F/ |% F
, S2 L. q: B: ] 计算机产生的随机数其实不是真随机,事实上是一组有随机特性的可预测数列——是伪随机数。通常的伪随机算法包含一个种子和一个密钥。在钥匙系统里,钥匙和汽车都有一组相同的种子和密钥,因此双方生成的为随机数是可以匹配的。钥匙系统的身份验证归根到底就是验证对方是否知道种子和密钥。
8 I3 w& [2 \4 B0 C# b, ?) p; L' n! ~0 c$ B+ Z5 G! |% K
事实上,这种依靠随机数生成来验证身份的方法也是有标准的。在我们平时使用的非接触式门禁系统或其他射频身份识别系统中有不少用的也是这种技术。$ f, D$ N) v9 p; l
+ _% G, _- ] }7 A 回过头来继续讲汽车防盗系统PKE——被动无钥门证。这个其实是在传统遥控的基础上进行改进的。主要区别是这种系统中汽车会定期发送一个150KHz(不同系统频率不同,不过都是低频信号),这个信号里面包含汽车本身的身份码。当钥匙进入这个低频信号范围的时候就会发出回应信息。这时候车子就知道主人来到自己身边了,因此会准备好开锁。当主人坐进车子的时候,点火开关也马上准备好等着主人按下。在这个过程中,汽车和钥匙一般是采用挑战回应模式相互验证的。这样要比上一篇所描述的钥匙单向提供验证信息更为复杂。而且汽车发出的低频信号影响范围很小,大致只有不到20厘米的距离。天线一般安放在车门把手和车内的驾驶台上,这样是为了确认钥匙就在附近。然而这个看起来还不错的系统还是有一定缺陷的。
0 q2 i2 O, {0 ^
( k- \" _; o. T: {& m! z 去年(2011年)有人声称使用中继攻击方法可以破解这种系统,在8个厂家的10台车上做了验证[1]。其方法是把汽车发射的低频信号,通过一个接收天线收下来,再通过馈线连接到另一个天线上。这样把汽车的检测信号传送到远离汽车的钥匙旁边,触发钥匙回应和开锁。由于钥匙回应信号是通过UHF发射理论上可以传输100米以上,这样仅仅中继汽车的检测信号就能让远离钥匙的人在车旁开门,当把天线放在驾驶台的时候,甚至可以启动汽车。# [1 p$ K. ]3 f7 H. q
$ m1 }+ T7 V1 w
图片来自参考文章' k. k7 Y2 p/ b' z: `# k! g. o
. r7 K& r0 u, v7 X& Y' f5 T
![]()
( @0 e! P$ {$ N" U+ u+ \' ~+ e( P 虽然拖着一条电缆的贼比较猥琐,但是这个方案稍作改进就非常时尚了。实际操作中可以将汽车的低频信号调制到一个射频载波上,这样就可以省去那条笨重的馈线,采用无线转发的方式进行中继。同样的钥匙信号也可以用相同的方法进行无线中继。所以当你在餐厅大快朵颐的时候,旁桌的人也许就能帮助车库的贼把的车子开走!# k) P7 Y3 j: `2 ~, `% U' ]
& A# [( a" j3 p) v 这种采用物理信号直接中继的攻击方式,也算是一种旁路攻击。在这里算法和加密什么的都不起作用。因为这个系统的一个弱点在于钥匙位置检测依赖于简单的低频检测信号,系统假设只有在很短的距离内钥匙才能收到检测信号。一旦这个假设被电磁中继破坏整个系统就不再安全了。因此良好的PKE系统必须有安全有效的距离检测手段。
1 v# c! R! Y- n7 M5 i+ Z- P8 _/ I8 z! Q4 X' Q
从上面描述我们可以看到一个教训,安全系统只要有一个漏洞,攻击者就可以把一辆卡车开过去。
' j: `" d* L! W
) _0 G5 m$ ?$ ?9 Y# n; Q% h
$ n4 D( h+ {1 M
9 `* m E$ M) j( V[1] Relay Attacks on Passive Keyless Entry and Start Systems in Modern Cars
4 c6 e0 \. {! Q& g
& y, N3 P: d( A- k7 z) ~Aur´elien Francillon, Boris Danev, Srdjan Capkun+ ^3 s7 D' w, r! q" L+ x' x
+ g4 l6 G. `6 @8 m
Department of Computer Science, v1 b4 x$ }4 {$ ^- e
+ `: `$ x; ^2 vETH Zurich
- x* j7 c! A7 g- R* q2 j: W& e0 ~/ k3 k4 R: k
8092 Zurich, Switzerland/ |+ ^* Q4 d8 s/ j
$ q5 d5 x, ?: T7 x4 D
faurelien.francillon, boris.danev, srdjan.capkung@inf.ethz.ch |
评分
-
查看全部评分
|