目前,全球范围内已经有众多公司可以大规模生产电子锁,无论是接触式还是非接触式。其主要元件是内置固件(例如软件程序)和存储器的微控制器,存储器用于存储可以被锁具接受的密钥(例如序列号或文本串)。基于设计,门锁应具备配合质询、响应钥匙工作的所有资源。所有锁具均需要固件更新。
DS1961S质询-响应iButton内置SHA-1引擎,于2002年推向市场。而非接触式器件MAX66140 ISO 15693兼容安全存储器扣则于2010年面世。虽然通信接口和外形尺寸大有区别,但两个器件具有许多共同点,如表1所示。二者均支持SHA-1认证,具有64位密钥和1024位用户可编程EEPROM。可以装载密钥并进行计算(这一步不需要认证)、写保护。对存储器的写操作需要认证,即只有在确认器件密钥正确的前提下才能进行写操作。作为新产品,MAX66140采用5字节质询,与DS1961S所采用的3字节质询不同。MAX66140还提供存储器写次数计数器,使篡改检测更容易实现,并且可以使器件应用从门禁控制扩展到闭环电子支付系统。
表1. DS1961S与MAX66140对比*MAX66040计划提供具有ISO/IEC 14443 B型接口同等密钥的产品。
高度安全的质询-响应认证
建立并保持一个质询-响应认证系统需要钥匙编程器(即一套电子装置),根据系统要求,可能还需要一个钥匙主机。钥匙编程器必须清楚供应商规定的数据转换和加密算法,以产生所需要的密钥。如果系统支持这一功能,可以按照门锁存储的列表,利用钥匙主机更新已知钥匙的ID号。对于任何安全系统,都要严格控制这些物理层工具,以防非法使用。
创建新钥匙或复制钥匙
经过授权的管理人员可以使用钥匙编程器在一把空钥匙内安装一个有效的密钥,并在存储器写入有效数据(复制钥匙时,数据从另一把钥匙直接拷贝)。由此,即可获得一把新钥匙。根据具体门锁的固件,可能需要使用钥匙主机在锁内已知的密钥列表中加入新的钥匙ID。黑客可以在一把空钥内加入任何密钥,然后在开放可读存储器中存入有效数据。然而,这样得到的钥匙几乎不可能通过质询、响应认证,因为它的密钥是无效的。
更改钥匙的接入权限
利用钥匙编程器,经过授权的管理员可以更新存储器数据,以更改钥匙权限。如果不知道密钥或没有接入适当设备,黑客就无法得到MAC写入权限,因而也就不能对钥匙存储器进行写操作。
报废一把钥匙
利用钥匙编程器,管理员可以更改钥匙存储器的内容,将其设置在“出厂默认设置”或其它任何无效状态,但密钥将保留不变。如果锁内保留了已知密钥列表,建议将无效密钥的ID从锁内删除。可以在以后使用时重新恢复钥匙密钥。黑客的做法是通过强制措施建立密钥。
防克隆保护
可以考虑这样一种情况,黑客借助窃听或记录装置获得有效的密钥,然后将其重复发送到门锁,并对记录数据进行分析,获得门锁发出的质询以及钥匙生成MAC。如果固件设计合理,质询应该是随机数,使得黑客不可能得到所有质询响应的组合,最终放弃这一盗窃渠道。
如果固件设计不合理,采用固定质询,或者从一个很小的模板中随机产生质询,这会给黑客可乘之机。黑客可以利用有效的钥匙ID、存储器数据以及门锁发送的质询和读取的相应认证MAC,配置钥匙仿真器。如果黑客保存了已知密钥列表,最简单的对策就是删除门锁中的列表。对于没有使用这样列表的系统也不是没有防备。为了侦测钥匙仿真器,可以让门锁在钥匙内部没使用的存储单元写入一个随机数。仿真器也将接受这些写操作,因为它不能识别哪些MAC写操作有效。随后,门锁将刚写入的数据和读取页的验证MAC一起读回。由于不能进行此项操作,仿真器无法产生有效MAC,因而操作失效。
密钥泄露保护
可以装载或计算作为质询、响应认证密钥的64位数据,最糟糕的设计是把同一密钥写入系统的所有钥匙。一旦密钥泄露或通过反复试验被发现,系统的安全防线将被摧毁。因此,进行质询、响应认证的钥匙可以根据初始(当前或装载的)密钥、部分密钥、存储器页数据以及器件指定常数,计算新的密钥。采用这种方式,密钥不会暴露在外部。将钥匙的64位ID作为部分密钥,可以产生器件的专用密钥。如果该钥匙的密钥泄露,只需要修复这把钥匙,而不需要更新整个系统。
结论
在一些安装了电子锁或电子门禁的场所,通过质询-响应认证系统可以明显改善系统的安全性。质询-响应钥匙可以采用接触式接口或无线接口。受保护的质询-响应钥匙中的数据可以防止非法修改。存储器的写次数计数器监测篡改操作。克隆的质询-响应钥匙无法通过认证测试,即使公开可读存储器的数据是有效的。对质询-响应钥匙进行升级非常简单,只需在锁内或读取装置内设置新的密钥或安装新的固件。
评论
查看更多