应用笔记 4784

通过质询-响应认证实现安全门禁控制


摘要 : 本应用笔记从信息技术(IT)这一全新视角阐述了物理门禁控制系统。本文对各种不同类型的锁控技术(机械、磁卡、接触式、RFID)进行对比,并对这些锁控装置的优缺点进行了评估。采用质询-响应认证的锁控装置克服了传统静态数据门锁的局限性。本文介绍了质询-响应工作原理,列举了相应的锁控装置并对其进行比较。本文还阐述了质询-响应认证相比静态数据更安全的原因。

本文曾发表于2011年3月15日的Embedded.com。

概述

人类使用门锁的历史已经非常悠久,通过门锁的防护作用来保护个人财产。随着技术的进步,锁具也在不断推陈出新。当然,机械锁仍然在今天占据主要地位;但是,如果您仔细观察汽车钥匙或者是员工胸卡,就会发现电子锁已悄然进入门禁控制领域。

本应用笔记讨论了几种不同类型的门禁控制系统:机械式、磁卡式、接触式、RFID。文章讨论了质询-响应认证(质询、加密以及消息认证码或MAC)以及SHA-1算法的重要性。最后,本文还阐述了质询-响应认证机制更安全的原因。

基于信息技术(IT)的锁控装置

严格意义上讲,任何钥匙内都会像ROM (只读存储器)一样存储相关信息。锁具“读取”钥匙端的数据,如果与锁具规则匹配,则通行。机械钥匙的整体物理尺寸、最小尺寸(例如,单位增量)限制了其可选择的代码空间。对于一个给定类型的钥匙,可以在不重复的前提下制造出数百或数千把钥匙,确切数目取决于钥匙的类型。磁卡钥匙可以在很小的铁磁材料上存储信息。磁卡可以分成多个平行磁轨,每条磁轨可写入500位以上数据。而接触式电子令牌钥匙(例如iButton®器件、芯片卡)则将信息存储于硅片。可以存储的位数从低至64位(DS1990A)到无限容量。非接触式钥匙则以26位模型开始(参见Wiegand Public Format,PDF),事实上这种钥匙的容量也没有上限限制。磁卡钥匙在酒店门禁系统非常流行。电子令牌钥匙,无论是接触式还是非接触式,都已普遍用于员工胸卡。

现状和问题

无论是机械锁,还是电子锁,开启方式都是基于静态数据是否能满足锁具自身的规则要求。采用电子锁,其数据可以是一个简单的序列号,也可以是大量存储数据(磁卡或存储芯片卡等)或两者结合。一把钥匙携带的信息越少,则对于给定的锁具而言就可以提供越多的钥匙与之匹配。

机械钥匙具有多种不同的类型和尺寸¹。而锁具“主人”则无法避免钥匙在未经授权的情况下被复制。此外,还可以使用一些廉价工具恶意打开门锁²。由于“代码”空间有限,这种锁具无法保证钥匙的唯一性。日积月累,钥匙的结构慢慢磨损,使开锁变得更加困难。

虽然代码空间对磁卡钥匙卡不是问题,但它们很容易被复制²或擦除。磁卡同样存在磨损问题。

基于ROM的电子钥匙可以防止克隆或复制,接触式钥匙²和RFID钥匙²即采用了类似原理。除了韦根(Wiegand)协议及其派生(26位或36位)协议外,电子钥匙具有足够的代码空间保证每把钥匙代码的唯一性。

下一代安全产品:质询-响应认证

传统的电子锁依赖于静态数据,这些数据是钥匙获得进入的权限。这种一成不变的原则使克隆钥匙非常简单。事实上,如果钥匙可以从锁具接收一个不确定的数据质询,并根据接收到的数据以特定的数据格式响应,则可以实现更高的加密等级。这一过程包括了公开的可读取数据和只有钥匙及锁具知道的隐藏数据。

由锁具发送给钥匙的这个不确定数据从技术上称为随机质询,隐藏数据称为密钥,而响应通常称作信息认证代码或MAC。信息包含质询、公开可读数据、密钥以及常数(填充数)。为了验证密钥的有效性,锁具会根据同一质询、从钥匙读取的数据、密钥以及常数计算MAC。如果锁具所计算的MAC与钥匙响应的MAC匹配,则锁具认为钥匙是合法的。技术上,这一流程如图1所示,叫做质询-响应认证。如果除了有效性外,钥匙里公开可读的数据与锁具标准相匹配,则打开锁具。

图1. 质询-响应认证数据流
图1. 质询-响应认证数据流

在加密学中,从一串信息码产生固定长度MAC的算法通常称作单向散列算法。“单向”表示该算法通常难以从固定长度MAC输出大量信息。采用加密算法时,加密信息的长度往往与原始信息成正比。

SHA-1是经过完全验证并获得国际认可的单向散列算法,SHA-1算法由美国国家标准技术研究所(NIST)制定,现已成为国际标准ISO/IEC 10118-3:2004。算法所依赖的数学公式已经在NIST网页公开。SHA-1算法与其它算法的差别是:
  1. 不可逆性:该算法无法通过相应的MAC逆向计算输入。
  2. 防冲突:该算法不可能找到另外一个可以产生同一MAC的输入信息。
  3. 高雪崩效应:输入的任何变化将引起MAC结果的很大变化。
正是由于上述原因,而且该算法经过全球认证,Maxim选择了SHA-1用于质询-响应认证。

质询-响应认证密钥

目前,全球范围内已经有众多公司可以大规模生产电子锁,无论是接触式还是非接触式。其主要元件是内置固件(例如软件程序)和存储器的微控制器,存储器用于存储可以被锁具接受的密钥(例如序列号或文本串)。基于设计,门锁应具备配合质询、响应钥匙工作的所有资源。所有锁具均需要固件更新。

DS1961S质询-响应iButton内置SHA-1引擎,于2002年推向市场。而非接触式器件MAX66140 ISO 15693兼容安全存储器扣则于2010年面世。虽然通信接口和外形尺寸大有区别,但两个器件具有许多共同点,如表1所示。二者均支持SHA-1认证,具有64位密钥和1024位用户可编程EEPROM。可以装载密钥并进行计算(这一步不需要认证)、写保护。对存储器的写操作需要认证,即只有在确认器件密钥正确的前提下才能进行写操作。作为新产品,MAX66140采用5字节质询,与DS1961S所采用的3字节质询不同。MAX66140还提供存储器写次数计数器,使篡改检测更容易实现,并且可以使器件应用从门禁控制扩展到闭环电子支付系统。

表1. DS1961S与MAX66140对比
Feature DS1961S MAX66140*
Form factor iButton, F3 and F5 size Plastic key fob
Communication interface Contact-based, 1-Wire® protocol Wireless, 13.56MHz ISO15693 and ISO18000-3 Mode 1
Data rate Standard speed: up to 15.3kbps; overdrive speed: up to 125kbps Slow speed: 1.6kbps down, 6.6kbps up; fast speed: 26kbps down and up
ID# 64-bit 1-Wire ROM ID 64-bit UID, ISO compliant
Authentication method 160-bit SHA-1 MAC 160-bit SHA-1 MAC
Secret size 64-bit (read protected) 64-bit (read protected)
Secret generation Load, compute; optional write protection through separate register write access Load, compute, optional automatic write protection
User memory 1024 bits organized as four pages of 32 bytes; write access in 8-byte blocks; user-programmable write protection for page 0 only or for all four pages together; user-programmable EPROM emulation mode for page 1 only 1024 bits organized as 16 blocks of 8 bytes; four blocks form a 32-byte page; write access in 8-byte blocks; individual block write cycle counter; user-programmable write protection for each individual block; user-programmable EPROM emulation mode for each individual page; user-programmable read protection for page 3
Write authentication MAC Involves ID#, page #, page data, new data, secret, constants Involves ID#, page #, page data, new data, secret, write cycle counter, constants
Read authentication MAC Involves ID#, page #, page data, 3-byte challenge, secret, constants Involves ID#, page #, page data, 5-byte challenge, secret, constants
*MAX66040计划提供具有ISO/IEC 14443 B型接口同等密钥的产品。

高度安全的质询-响应认证

建立并保持一个质询-响应认证系统需要钥匙编程器(即一套电子装置),根据系统要求,可能还需要一个钥匙主机。钥匙编程器必须清楚供应商规定的数据转换和加密算法,以产生所需要的密钥。如果系统支持这一功能,可以按照门锁存储的列表,利用钥匙主机更新已知钥匙的ID号。对于任何安全系统,都要严格控制这些物理层工具,以防非法使用。

创建新钥匙或复制钥匙

经过授权的管理人员可以使用钥匙编程器在一把空钥匙内安装一个有效的密钥,并在存储器写入有效数据(复制钥匙时,数据从另一把钥匙直接拷贝)。由此,即可获得一把新钥匙。根据具体门锁的固件,可能需要使用钥匙主机在锁内已知的密钥列表中加入新的钥匙ID。黑客可以在一把空钥内加入任何密钥,然后在开放可读存储器中存入有效数据。然而,这样得到的钥匙几乎不可能通过质询、响应认证,因为它的密钥是无效的。

更改钥匙的接入权限

利用钥匙编程器,经过授权的管理员可以更新存储器数据,以更改钥匙权限。如果不知道密钥或没有接入适当设备,黑客就无法得到MAC写入权限,因而也就不能对钥匙存储器进行写操作。

报废一把钥匙

利用钥匙编程器,管理员可以更改钥匙存储器的内容,将其设置在“出厂默认设置”或其它任何无效状态,但密钥将保留不变。如果锁内保留了已知密钥列表,建议将无效密钥的ID从锁内删除。可以在以后使用时重新恢复钥匙密钥。黑客的做法是通过强制措施建立密钥。

防克隆保护

可以考虑这样一种情况,黑客借助窃听或记录装置获得有效的密钥,然后将其重复发送到门锁,并对记录数据进行分析,获得门锁发出的质询以及钥匙生成MAC。如果固件设计合理,质询应该是随机数,使得黑客不可能得到所有质询响应的组合,最终放弃这一盗窃渠道。

如果固件设计不合理,采用固定质询,或者从一个很小的模板中随机产生质询,这会给黑客可乘之机。黑客可以利用有效的钥匙ID、存储器数据以及门锁发送的质询和读取的相应认证MAC,配置钥匙仿真器。如果黑客保存了已知密钥列表,最简单的对策就是删除门锁中的列表。对于没有使用这样列表的系统也不是没有防备。为了侦测钥匙仿真器,可以让门锁在钥匙内部没使用的存储单元写入一个随机数。仿真器也将接受这些写操作,因为它不能识别哪些MAC写操作有效。随后,门锁将刚写入的数据和读取页的验证MAC一起读回。由于不能进行此项操作,仿真器无法产生有效MAC,因而操作失效。

密钥泄露保护

可以装载或计算作为质询、响应认证密钥的64位数据,最糟糕的设计是把同一密钥写入系统的所有钥匙。一旦密钥泄露或通过反复试验被发现,系统的安全防线将被摧毁。因此,进行质询、响应认证的钥匙可以根据初始(当前或装载的)密钥、部分密钥、存储器页数据以及器件指定常数,计算新的密钥。采用这种方式,密钥不会暴露在外部。将钥匙的64位ID作为部分密钥,可以产生器件的专用密钥。如果该钥匙的密钥泄露,只需要修复这把钥匙,而不需要更新整个系统。

结论

在一些安装了电子锁或电子门禁的场所,通过质询-响应认证系统可以明显改善系统的安全性。质询-响应钥匙可以采用接触式接口或无线接口。受保护的质询-响应钥匙中的数据可以防止非法修改。存储器的写次数计数器监测篡改操作。克隆的质询-响应钥匙无法通过认证测试,即使公开可读存储器的数据是有效的。对质询-响应钥匙进行升级非常简单,只需在锁内或读取装置内设置新的密钥或安装新的固件。



参考文献
¹钥匙(锁具):http://en.wikipedia.org/wiki/Key_(lock)
²通过互联网搜索会列出成百甚至上千条可能的原因,这里只阐述了没有质询-响应安全机制的电子锁可能出现的问题。
下一步
EE-Mail 订阅EE-Mail,接收关于您感兴趣的新文档的自动通知。
© , Maxim Integrated Products, Inc.
The content on this webpage is protected by copyright laws of the United States and of foreign countries. For requests to copy this content, contact us.
APP 4784:
应用笔记 4784,AN4784, AN 4784, APP4784, Appnote4784, Appnote 4784