机械锁发展至今已经有数千年了,现在每家每户使用的门锁几乎都是机械的弹子锁,从原理上仍然是19 世纪中期的技术。
弹子锁的原理就是用钥匙上各个齿的高度来控制锁芯内弹子的高度,当所有弹子处于正确高度时才能转动锁芯。所以,俗话说的“一把钥匙开一把锁”其实并不完全正确。
(图片来自网络)
假设一把钥匙上只有5 个齿的位置,每个齿上有3 种不同的高度(牙花深度/ 齿花深度),那么最多只能有35=243 种编码。也就是说,你拿上你家的门钥匙,去开244 个以上同样型号的门锁,就一定会打开两把。常见的锁里面,还有一种7 位编码的双面钥匙(2187 种编码),以及一种12 位编码的十字锁(53 万种编码)。
有一个术语叫“互开率”,指的就是一个厂家生产出的钥匙能打开多少他们生产的锁。互开率越高,这个锁的安全性就越差。所以只有5 个齿、每个齿上只有3 种齿花深度的钥匙,互开率想必是奇高无比了……
(图片来自网络)
想当年住在大学的学生公寓里,一栋6 层、每层30 间宿舍的楼,一共就180 个房间。如果用这种只有243 种编码的钥匙,只要试上两间宿舍,就一定会打开别人的房门。实际上,当年我宿舍的钥匙可以打开我们对面宿舍的门……
当你丢了钥匙的时候,要怎么开锁呢?
你有两种选择。
如果你掌握了开锁技能,那么用铁丝或者发夹就能够轻易打开这种弹子锁。1992 年,有一位笔名为Ted the Tool 的Geek,在MIT 读书期间写了一本讲弹子锁的结构以及如何开锁的小册子,并命名为《MIT 开锁指南》(The MIT Lockpicking Guide)1,在世界范围内广为流传。
据这本小册子中所写,之所以用发卡能打开弹子锁,是利用了弹子锁机械结构中的一些不可避免的微小误差。先用螺丝刀之类的东西向弹子锁施加一个扭矩,由于机械误差,并不是所有弹子都能同时卡住,而是只有一个弹子会卡住。然后用发夹来回拨动弹子,一旦这个卡住的弹子被推到了正确的位置上,通过螺丝刀施加的扭矩就会让锁芯旋转一个很小的角度,直到另一个弹子卡住。重复这个步骤,当所有弹子都推到了正确的位置上,你也就开锁成功啦!
(图片来自网络)
不过这种方法需要经过一定的训练才能用于实践。还有一种方法则可以让没受过训练的普通人打开一部分锁,这种方法叫做“撞匙”。一位丹麦锁匠偶然发现,通过轻轻撞击插在锁中的钥匙,会使得所有弹子一起跳开,把握好时机的话就能开门。
图18 弹子锁开锁示意图
德国锁匠根据这个原理制作了一种所有齿花深度都是最深的特殊钥匙,将这种钥匙插入锁中,所有的弹子都会落下。此时如果以合适的力度拍打钥匙,就可能造成所有弹子一起短暂地跳起,应声开门。
2006 年,总部位于荷兰的Toool 开锁协会测试了欧洲市场上的60 款弹子锁,利用撞匙的办法,未经训练的普通人可以打开其中35% 的锁,而有经验的锁匠则能在3min 内打开78% 的锁。所以,如果你想用这种办法开门,那么你还得去弄一把这样的“万能”钥匙来。
(图片来自网络)
实际上,1994 年中国出台过一个锁具标准,把锁的安全等级分为A、B 两级。用这种方法能够打开的锁都是A 级锁,而更加安全的B 级锁的齿花深度更深、位数更多以及采用磁珠代替钢制弹子等,提高了开锁的难度。注意,装修的时候会涉及门的AB 钥匙,这个说的是一旦用B 钥匙(户主钥匙)开过门之后,就无法再用A 钥匙(装修钥匙)开门,和B 级锁完全不是一回事儿。
门卡可以破解吗?
位于写字楼里的公司,门禁的解决方案通常都会是电子锁而不是机械锁,包括门卡、密码、指纹、声音、人脸识别等。其中最普及的电子锁系统就是RFID 门卡。
既然谈到RFID 门卡,就先解释一下什么是RFID。RFID 是射频身份识别(radio frequency identification)的缩写,其核心技术是由飞利浦公司研发的。
(图片来自网络)
拆开RFID 门卡,你会看到一个芯片和它周围的很多圈线圈。这个芯片存储了卡片的身份信息,比如“我是的门卡”。
当RFID 门卡靠近读卡器的时候,读卡器发出的电磁波被线圈接收到,给芯片提供能量。然后芯片通过调整负载电阻,有规律地改变门卡线圈两端的电压,从而引起读卡器线圈两端电压的同步变化,把芯片中的信息传回到读卡器中。
然后,读卡器将这个信息与数据库中预存的信息进行对比,如果这条信息是数据库中预先登记过的,那么这个人就是公司的职员,就可以打开门放行。通常来说,每张门卡中存储的信息是互不相同的,而且由于在芯片中增加一位数字的信息比在机械锁中增加一个弹子位置容易得多,所以门卡的信息通常是十几位十进制数,够几百个地球上的所有人一起用了,也就从理论上杜绝了“互开”的现象。
(图片来自网络)
那么,RFID 的门禁可以被复制或者破解么?是可以的。在某些条件下,芯片中的信息可以被改写;根据卡种类的不同,破解的难度也不同。常见的RFID 卡有两种频率,低频的125kHz(就是中国最常见、最普及的门卡系统)和高频的13.56MHz(公交卡/ 地铁卡)。通常来说,高频卡的破解难度要远远大于125kHz 的低频,因为高频卡通常使用了加密技术,在空中通过电磁波传播的信息是密文,就算你用自己的读卡器读取了这个密文信息,在把它解密之前也没有任何用处。
而低频门卡则通常非常容易复制,因为它们通常没有加密。
(图片来自网络)
当一张低频门卡从读卡器获得能量以后,它就一直不停地在喊“我的编号是1234567”。所以,如果你有一张小区的低频RFID 门卡,并想复制一张给室友的话,你只需要一个读卡器和一张空白的低频RFID 门卡,然后将小区门卡的信息读取出来,重新写入空白的低频门卡即可。
如果你手上没有能用的低频门卡,想要破解这个系统从理论上说也不算困难,只要用一个能够不断改变自己的输出信号的特殊低频卡,在读卡器上一直试下去就好了。不过这在实际中几乎不可能,因为假设每次读卡需要0.1s,那么,想通过试验的方式取得权限的话,一天一夜就只够试86 万个号码,十几位的号码恐怕试到地球停转之日都试不完。
(图片来自网络)
这种明文的RFID 门禁系统由于安全系数较低,在欧洲和美国已经几乎完全淘汰了,可是由于价格便宜,在中国仍在广泛使用。这应该……
算是一种悲哀吧。
为啥你家还没换门卡?
你是否注意到,RFID 的门禁只是在写字楼中或者小区大门中应用,很少有人在自己家里使用RFID 取代机械锁。除了机械锁比RFID 电子锁更便宜这个最主要的原因之外,还有以下
原因:
1. 电子锁需要供电。不论是用蓄电池还是用市电,总是无法避免停电出现的问题。一停电就进不去家的门锁……应该不会有人要用吧。
(图片来自网络)
2. 跟机械锁相比,电子锁通常更加复杂,所以可靠性通常更差,对工作环境的要求也更苛刻。结果就是,电子锁的故障率会高于机械锁。
3. 写字楼或公司使用门禁系统的一个主要原因是便于管理,而住宅通常没有这个需求。
使用RFID 门卡的门禁系统,比机械锁更安全,破解的难度更高,而写字楼里的门禁系统又有专人维护,出了问题能够得到及时修复,所以写字楼通常会选择门禁系统。如果是住宅用锁,那么对门锁的可靠性要求就会高于安全性,毕竟谁也不想动不动就被锁在自己家门外吧。