本应用笔记讨论了几种不同类型的门禁控制系统:机械式、磁卡式、接触式、RFID。文章讨论了质询-响应认证(质询、加密以及消息认证码或MAC)以及SHA-1算法的重要性。最后,本文还阐述了质询-响应认证机制更安全的原因。
基于信息技术(IT)的锁控装置
严格意义上讲,任何钥匙内都会像ROM (只读存储器)一样存储相关信息。锁具“读取”钥匙端的数据,如果与锁具规则匹配,则通行。机械钥匙的整体物理尺寸、最小尺寸(例如,单位增量)限制了其可选择的代码空间。对于一个给定类型的钥匙,可以在不重复的前提下制造出数百或数千把钥匙,确切数目取决于钥匙的类型。磁卡钥匙可以在很小的铁磁材料上存储信息。磁卡可以分成多个平行磁轨,每条磁轨可写入500位以上数据。而接触式电子令牌钥匙(例如iButton®器件、芯片卡)则将信息存储于硅片。可以存储的位数从低至64位(DS1990A)到无限容量。非接触式钥匙则以26位模型开始,事实上这种钥匙的容量也没有上限限制。磁卡钥匙在酒店门禁系统非常流行。电子令牌钥匙,无论是接触式还是非接触式,都已普遍用于员工胸卡。
现状和问题
无论是机械锁,还是电子锁,开启方式都是基于静态数据是否能满足锁具自身的规则要求。采用电子锁,其数据可以是一个简单的序列号,也可以是大量存储数据(磁卡或存储芯片卡等)或两者结合。一把钥匙携带的信息越少,则对于给定的锁具而言就可以提供越多的钥匙与之匹配。
机械钥匙具有多种不同的类型和尺寸¹。而锁具“主人”则无法避免钥匙在未经授权的情况下被复制。此外,还可以使用一些廉价工具恶意打开门锁²。由于“代码”空间有限,这种锁具无法保证钥匙的唯一性。日积月累,钥匙的结构慢慢磨损,使开锁变得更加困难。
虽然代码空间对磁卡钥匙卡不是问题,但它们很容易被复制²或擦除。磁卡同样存在磨损问题。
基于ROM的电子钥匙可以防止克隆或复制,接触式钥匙²和RFID钥匙²即采用了类似原理。除了韦根(Wiegand)协议及其派生(26位或36位)协议外,电子钥匙具有足够的代码空间保证每把钥匙代码的唯一性。
下一代安全产品:质询-响应认证
传统的电子锁依赖于静态数据,这些数据是钥匙获得进入的权限。这种一成不变的原则使克隆钥匙非常简单。事实上,如果钥匙可以从锁具接收一个不确定的数据质询,并根据接收到的数据以特定的数据格式响应,则可以实现更高的加密等级。这一过程包括了公开的可读取数据和只有钥匙及锁具知道的隐藏数据。
由锁具发送给钥匙的这个不确定数据从技术上称为随机质询,隐藏数据称为密钥,而响应通常称作信息认证代码或MAC。信息包含质询、公开可读数据、密钥以及常数(填充数)。为了验证密钥的有效性,锁具会根据同一质询、从钥匙读取的数据、密钥以及常数计算MAC。如果锁具所计算的MAC与钥匙响应的MAC匹配,则锁具认为钥匙是合法的。技术上,这一流程如图1所示,叫做质询-响应认证。如果除了有效性外,钥匙里公开可读的数据与锁具标准相匹配,则打开锁具。
图1. 质询-响应认证数据流
在加密学中,从一串信息码产生固定长度MAC的算法通常称作单向散列算法。“单向”表示该算法通常难以从固定长度MAC输出大量信息。采用加密算法时,加密信息的长度往往与原始信息成正比。
SHA-1是经过完全验证并获得国际认可的单向散列算法,SHA-1算法由美国国家标准技术研究所(NIST)制定,现已成为国际标准ISO/IEC 10118-3:2004。算法所依赖的数学公式已经在NIST网页公开。SHA-1算法与其它算法的差别是:网页链接