通过质询和响应身份验证实现安全访问控制

描述

本应用笔记从信息技术(IT)这一新角度探讨了物理访问控制的关键。它比较了各种类型的关键技术(机械、磁性、接触、RFID),并评估了这些密钥的优势和劣势。具有质询和响应身份验证的密钥克服了传统静态数据密钥的局限性。讨论了挑战和响应概念;提供并比较合适的键。本文档最后解释了为什么质询和响应身份验证比依赖静态数据的概念更安全。

几千年来,人们一直使用锁和钥匙来控制对他们的住所和宝藏的访问。随着技术的变化,锁也随之变化。今天,机械锁仍然统治着世界。但是,仔细观察您的车钥匙或员工徽章很可能会发现,电子产品已经进入了访问控制领域。

本应用笔记回顾了门禁控制的关键:机械、磁性、接触式、RFID。它描述了质询和响应身份验证(质询、机密和消息身份验证代码或 MAC)以及 SHA-1 算法的重要作用。最后,本文解释了为什么质询和响应身份验证更安全。

作为信息技术 (IT) 设备的密钥

从严格的逻辑角度来看,任何密钥都像ROM(只读存储器)一样存储信息。锁“读取”他们键的数据,如果它符合锁的标准,则提供访问权限。机械钥匙的物理尺寸和最小尺寸细节(即增量)限制了可用的代码空间。对于给定的键样式,可以制造数百或数千个键而不会重复;确切的数字取决于样式。磁条钥匙卡存储带有微小铁基磁性颗粒的信息。磁条可以写入多个并行磁道,每个磁道超过 500 位。基于接触的电子令牌密钥(例如,iButton®设备、芯片卡)将信息存储在硅芯片中。可用位数可低至64 (DS1990A)或几乎不受限制。非接触式按键从只有 26 位的型号开始(参见韦根公共格式,PDF),几乎没有上限。磁条钥匙卡在酒店房间访问中很受欢迎。电子令牌密钥,有接触和没有接触,在员工徽章中很受欢迎。

现状及其问题

锁的实际打开,无论是机械的还是电子的,完全基于满足锁内置标准的静态数据的存在。对于电子锁,这些数据可以是一个简单的识别号,数百或数千个存储位(例如,磁条或存储芯片卡),或两者的组合。钥匙携带的信息越少,给定的锁可以记住的钥匙就越多。

机械钥匙有多种样式和尺寸可供选择。 锁的“所有者”无法防止未经授权的钥匙复制。此外,便宜的工具可以在没有正确钥匙的情况下打开锁。 此外,由于代码空间有限,因此无法保证钥匙的唯一性。随着时间的流逝,钥匙的精细结构会磨损,使打开锁变得越来越困难。

虽然代码空间不是磁条钥匙卡的问题,但它们很容易被复制²或擦除。它们会因磨损而变质。

基于 ROM 的电子钥匙需要仿真(重放)和复制。对于联系人密钥²和RFID密钥²也是如此 除了基于韦根格式和衍生产品(26位或36位)的应用外,电子密钥具有足够的代码空间来保证每个密钥的唯一代码。

下一级安全:质询和响应身份验证

传统的电子锁依赖于钥匙需要产生的静态数据来获得访问权限。这个不变的标准使得克隆密钥很容易成功。如果密钥可以从锁接收不可预测的数据查询并使用依赖于接收的数据的数据模式进行响应,则可以实现更高的安全性。该过程涉及公开可读的数据和只有钥匙和锁知道的隐藏数据。

锁发送到钥匙的不可预测数据的技术术语是随机挑战。隐藏的数据称为机密,响应通常称为消息身份验证代码或 MAC。该消息由质询、可公开读取的数据、机密和常量(填充)组成。为了验证密钥的真实性,锁使用相同的质询、从密钥读取的数据、密钥和常量来计算 MAC。如果锁计算的 MAC 与密钥响应中的 MAC 匹配,则锁知道密钥是真实的。如图 1 所示,此过程的技术术语是质询和响应身份验证。如果除了真实性之外,钥匙中的可公开可读数据也符合锁的标准,则锁允许访问。

ROM


图1.质询和响应身份验证数据流。

在密码学中,从消息生成固定长度 MAC 的算法称为单向哈希函数。“单向”表示从固定长度的MAC输出中得出通常较大的消息是极其困难的。相反,使用加密时,加密邮件的大小与原始邮件成正比。

经过全面审查和国际认证的单向哈希算法是SHA-1,它由美国国家标准与技术研究院(NIST)开发。SHA-1已发展成为国际标准ISO/IEC 10118-3:2004。该算法背后的数学原理可通过NIST网站公开获得。SHA-1算法的显著特点是:

不可逆性确定与 MAC 对应的输入在计算上是不可行的。

抗碰撞性找到多个生成给定 MAC 的输入消息是不切实际的。

高雪崩效果输入的任何变化都会使 MAC 结果发生重大变化。

出于这些原因,以及国际上对该算法的审查,Maxim选择了SHA-1进行质询和响应认证。

质询和响应身份验证密钥

电子钥匙锁,有接触和无接触,已经由全球多家公司开发并大量部署。它们的主要组件是具有内置固件(即软件程序)和存储器的微控制器,该存储器存储锁接受的钥匙标准(例如,标识号或文本字符串)。根据设计,锁具有使用质询键和响应键的所有资源。所有锁需要的是固件升级。

DS1961S挑战和响应i按钮与SHA-1引擎于2002年推出。2010年推出一款非接触式器件,符合ISO 15693标准的安全存储器遥控卡。尽管它们的通信接口和外形尺寸非常不同,但这两种设备有很多共同点。表 1 显示了详细信息。它们都支持使用 64 位密钥的 SHA-1 身份验证,并具有 1024 位用户可编程 EEPROM。可以加载或计算密钥(此步骤不需要身份验证)和写保护。写入存储器需要身份验证,即只有在设备中存储的密钥已知时才能写入。作为较新的开发产品,MAX66140使用5字节质询,而DS1961S则使用3字节质询。MAX66140还具有存储器写入周期计数器,使篡改检测变得容易,并将器件的应用从访问控制扩展到闭环货币系统。

表 1.DS1961S与MAX66140的比较

 

特征 DS1961S MAX66140*
外形尺寸 我按钮,F3 和 F5 尺寸 塑料钥匙扣
通信接口 基于接触的1-Wire®协议 无线,13.56MHz ISO15693 和 ISO18000-3 模式 1
数据速率 标准速度:高达 15.3kbps;过载速度:高达 125kbps 慢速:1.6kbps下降,6.6kbps上升;快速:上下 26kbps
身份证# 64位1线ROM ID 64 位 UID,符合 ISO 标准
身份验证方法 160 位 SHA-1 MAC 160 位 SHA-1 MAC
机密大小 64 位(读保护) 64 位(读保护)
密钥生成 加载、计算;通过单独的寄存器写访问提供可选的写保护 加载、计算、可选自动写保护
用户内存 1024 位组织为四页,每页 32 字节;8字节块中的写入访问权限;用户可编程写保护,仅针对第 0 页或同时针对所有四个页面;用户可编程 EPROM 仿真模式仅适用于第 1 页 1024 位组织为 16 个 8 字节块;四个块形成一个 32 字节的页面;8字节块中的写入访问权限;单个块写入周期计数器;用户为每个单独的块提供可编程的写保护;用户可编程的EPROM仿真模式,适用于每个单独的页面;用户可编程第 3 页读保护
写入身份验证 MAC 涉及 ID#、页面 #、页面数据、新数据、机密、常量 涉及 ID#、页 #、页数据、新数据、机密、写入周期计数器、常量
读取身份验证 MAC 涉及 ID#、页 #、页数据、3 字节质询、机密、常量 涉及 ID#、页面 #、页面数据、5 字节质询、机密、常量

 

*与ISO/IEC 14443 B型接口的等效密钥

MAX66040

正在准备中。

为什么质询和响应身份验证更安全

要建立和维护质询和响应认证系统,需要一个密钥程序员(即电子设备),并且根据系统概念,需要一个主密钥。关键程序员必须了解特定于供应商的数据约定和生成机密的算法。如果系统支持此功能,则主密钥将用于更新存储在锁中的已知密钥 ID# 列表。与任何安全系统一样,必须严格控制对这些工具的物理访问,以防止未经授权的使用。

创建新密钥或密钥复制

使用密钥编程器,授权锁匠在空白密钥中安装有效密钥,然后使用有效数据对内存进行编程。(如果重复:数据是从另一个键复制的。新密钥现已准备就绪,可供使用。根据锁固件,可能需要指示使用主密钥的锁将新密钥的 ID# 添加到已知密钥列表中。黑客可以将任意密钥加载到空白密钥中,然后使用有效数据对可公开读取的内存进行编程。但是,此密钥无法通过质询和响应身份验证,因为它的密钥在系统中无效。

更改有效密钥的访问权限

授权锁匠使用钥匙编程器更新钥匙内存中的数据以进行更改。在不知道密钥的秘密或无法访问合适设备的情况下,黑客无法生成写入密钥内存所需的写入身份验证 MAC。

使密钥停止服务

使用钥匙编程器,授权的锁匠将钥匙的内存内容更改为“出厂默认”或任何其他容易识别为无效的模式。密钥的秘密可以保持原样。如果锁维护已知密钥的列表,则建议同时从锁中删除无效密钥的 ID#。该密钥可以重新编程以供以后使用。黑客的选择是使用蛮力删除密钥。

击败密钥仿真

请考虑此方案。有了窃听和录音设备,黑客会反复向锁出示有效的钥匙。接下来,黑客分析记录的数据,以查看锁发送的挑战以及密钥生成的读取身份验证MAC。如果固件设计正确,质询是随机的,因此无法记录质询和响应的所有组合。这迫使黑客放弃。

设计不佳的锁固件使用持续的挑战或从一小部分模式中随机选择挑战 - 这正是黑客正在寻找的弱点。在这种情况下,黑客可以使用有效密钥的 ID# 和内存数据、锁发送的质询以及相应的读取身份验证 MAC 对密钥模拟器进行编程。如果锁维护已知密钥的列表,最简单的对策是从锁的列表中删除该密钥。但是,不使用此类列表的系统并非毫无防御能力。要检测密钥模拟器,可以让锁将随机数据写入密钥中原本未使用的内存部分。模拟器将接受写入访问权限,因为它无法检查写入访问 MAC 的有效性。接下来,锁将读回刚刚写入的数据以及该页面的读取身份验证 MAC。由于它没有为此活动做好准备,因此模拟器被揭开,因为它无法生成有效的 MAC。

击败泄露的秘密

可以加载或计算用作质询和响应身份验证密钥的 64 位数据。人们可以做的最糟糕的操作是将相同的秘密放入系统的所有密钥中。一旦此机密泄露或通过反复试验发现,系统安全性就会被破坏。因此,质询和响应身份验证的密钥可以从初始(即当前或加载的)密钥、部分密钥、来自其中一个内存页的数据以及特定于设备(即已知)的常量中计算密钥。这样,秘密永远不会暴露。还可以通过使用密钥的 64 位 ID# 作为部分机密,使机密特定于设备。如果单个密钥的秘密被泄露,它将危及该特定密钥,但不会危及整个系统。

结论

在已经安装了电子锁或电子门禁的地方,通过质询和响应身份验证可以显着提高安全性。质询键和响应键可通过接触式接口或无线遥控钥匙提供。质询和响应密钥中的数据受到保护,防止未经授权的更改。内存写入周期计数器可能会暴露篡改。克隆的质询和响应密钥未通过身份验证测试,即使公开可读的内存数据有效也是如此。将现有安装升级为质询和响应密钥可以像发出新密钥并在锁或读卡器中安装新固件一样简单。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分