APP下载

基于商用密码的射频标签安全管理

2022-10-14王森

网络安全技术与应用 2022年9期
关键词:标识符读写器密钥

◆王森

(国家信息中心信息与网络安全部 北京 100045)

射频标签(RFID)在物联网、智能制造、车联网、穿戴设备中广泛应用,其安全性也被越来越重视[1]。射频标签通过接收读写器的电磁场调制信号并返回信号,实现信息交互,用于人员身份识别、物品物体识别等场景。由于射频标签不是固定设备,因此存在被恶意攻击人员获取的风险,因此面临信息克隆、读写器读取数据通信信息被截获、逆向工程破解射频标签存储数据等安全威胁[2]。

射频标签面临伪造、窃听、非法访问、数据篡改等恶意攻击。伪造是指相对于合法的读写器和射频标签,存在仿冒的射频标签欺骗读写器,或仿冒的读写器欺骗射频标签。窃听是指恶意的用户窃听射频标签和读写器之间的数据通信,用以获取数据或构造重放攻击。非法访问是指非当前应用的读写器,访问了当前应用的数据。数据篡改是指读写器对无权限的射频标签数据进行了修改操作。针对以上安全问题,在射频标签应用中应采用身份鉴别、访问控制、数据机密性和完整性保护等。

本文深入研究了基于密码技术实现射频标签应用的保护,包括基于对称钥分散算法的身份鉴别、基于分组对称加密的数据加密保护、基于摘要算法的完整性保护等。在选择密码算法时,使用了我国自主知识产权的商用密码中SM4、SM1、SM7 等对称加密算法,以及SM3哈希算法。本文技术方案符合国家标准中有关密码算法和密钥管理的要求[3-4]。

1 射频标签系统中密码算法需求

在使用密码进行,包括密码算法、密码协议和密钥管理[5][6]。选择密码算法方案方面,可选对称算法和非对称算法。对称加密算法需要的计算量较小,数据加密基于字节或比特的置换、移位等混淆变换,而非对称密钥算法的运算是在较大数域中进行对数求解等操作[7],对比来看对称密钥算法那更容易在硬件中实现,因此更适合射频标签。在身份鉴别过程中,对称密码算法需给鉴别者和被鉴别者分发相同的对称密钥,基于密钥分散的方式可以实现高效的对称密钥分发。

在射频标签系统中,读写器端只需要保留根密钥,不需要保存分散结果密钥。鉴别过程中通过密钥分散算法,读写器基于射频标签UID,使用相应的应用根密钥进行加密,计算结果即是与射频标签相同的密钥。

基于对称加密算法,射频标签实现了身份鉴别、访问控制鉴别等安全管理,以及数据存储机密性保护和通信机密性保护。

2 射频标签中的身份鉴别技术

射频标签身份鉴别可以采用唯一标识符和密钥分散两种方式,唯一标识符基于摘要算法,密钥分散基于对称密码算法。

2.1 基于唯一标识符的身份鉴别

唯一标识符(UID,Unique Indentifier)是射频标签在生产时,制造厂商写入到射频标签相应存储空间,包含厂商信息、序列号等信息,并由厂商按照规则确保电子标签的唯一性。只有生产厂商具有标识符数据区写入权限,射频标签出厂后唯一标识符不能修改,只能读取,可以看做生产厂商将UID 固化到射频标签中。

基于UID 特性,发放系统写入用于证明使用者身份的数字签名,或使用者身份鉴别的唯一标识符相关信息。以用户Alice 为例,发卡时将用户名Alice 和UID 进行绑定,通过国密杂凑算法SM3 计算文本消息摘要:

发卡系统使用国密签名算法SM2[8]计算H1的数字签名e1,并将e1写入射频标签。在身份鉴别时,为了验证Alice 和UID 的合法性,电子标签需要向读写器发送电子签名e1,读写器根据Alice 和UID 计算哈希值H1`,并用签名公钥对数字签名e1进行解密获得H1``。

对比H1``和H1`,如果结果为相等,则证明射频识别卡片确实是经发卡系统颁发给Alice 的。相反,匿名用户没有经过读写器进行签发,验证签名的过程会失败。唯一标识符进行身份鉴别过程如图1所示。

图1 基于唯一标识符的射频标签识别

2.2 基于密钥分散的身份鉴别

密钥分散实现了对称密钥的有效分发,采用对称加密算法实现身份鉴别。对称加密算能够在计算、存储资源有限条件下运行,相对于公钥算法,对称加密算法更适用于射频标签系统。

在初始化阶段,由密钥管理中心为应用APP 生成对应的应用根密钥APPKey,并将APPKey 采用“密钥注入”的方式,存储到读写器安全密码模块中。安全密码模块保证APPKey 不会被明文导出,在密码模块内部参与加解密运算。

另一方面采用SM4 对称加密算法计算分散密钥idKey,其中加密密钥为APPKey,明文为Alice|UID。

标签发行系统将分散密钥idKey 通过“密钥注入”方式安全写入射频标签中,密钥分发过程如图2 所示。

图2 基于密钥分散的身份密钥分发示意图

由于每个射频标签具有唯一的UID,为此每个射频标签的idKey不同,并且只有APPKey 才能制作idKey,因此其他射频标签或攻击者无法伪造idKey。因此,基于以上条件,保证idKey 是可用于身份鉴别的秘密信息。

读写器对射频标签的身份鉴别可采用挑战响应式。由读写器向射频标签发起身份鉴别过程,首先向射频标签发送一个用于挑战的随机数rand,射频标签用密钥idKey 对rand 进行加密,生成CRand。读写器用密钥根据射频标签相关数据,按照分散密钥生成算法计算idKey,解密CRand 得到rand`,比较rand 和rand`,若相等则证明射频标签的身份。

在身份鉴别过程,恶意的攻击者针对唯一标识符可以进行截获,并进行重放攻击,实现恶意仿冒。分散密钥方式在身份鉴别的过程中使用随机数挑战,提高了抗重放攻击的能力。因此,基于唯一标识符身份的身份鉴别只适用于安全级别较低的场合,例如普通门禁。在高安全级别应用中,应支持读写器对电子标签的挑战响应鉴别[9]。

3 电子标签的访问控制和机密性完整性保护

3.1 数据的访问控制

在射频标签应用中,应对密钥区和数据区的读写进行访问控制,可以采用密钥鉴别的方式实现。访问控制是一种安全措施,原理是基于安全策略,实现对主体访问客体操作合法性的判断,并对非法操作予以阻拦。

以存储空间为512 字节为例,被划分为32 个数据块,每块16个字节,如图3 所示。存储块用2 位地址编码。其中0x00 为制造商地址块,0x01~0x03 为权限控制区,0x02~0x07 为密钥区,0x08~0x1f为数据区。由于SM4 采用128 位分组,密钥和密文都是16 字节,因此密钥区和数据存储区的读写粒度为1 个区块。

图3 射频芯片存储空间及权限控制区设置示例图

权限控制区的长度为48 字节(3*16 字节),每2 个字节标识一个区块的操作权限,共有24 个区块,对应存储块0~23 的操作权限。权限控制区的2 字节,代表密钥选择,b4、b3 决定对应数据块读密钥,b2、b1 决定对应数据块写密钥,b0 是密钥区选择位。

图3中,以权限控制区第一个字节为例,代表区块0的读写权限,读写鉴权密钥为KEY2。

key0 为主密钥,在电子标签发行时根据APPKey 分散生成的,即idKey 为key0。存储区域操作权限key 的注入必须经过key0 的鉴别过程。

通过读写key 的鉴别过程,执行读写操作,实现基于对称密钥的访问控制。

3.2 数据机密性和完整性保护

射频标签数据区域保存应用有关信息,例如饭卡存储金额、电子门禁卡存储用户信息、电子门票存储票据信息等。考虑射频标签的计算能力和存储空间限制,为满足安全性,数据应使用加密技术进行存储。加密算法可以选择分组加密算法SM4,相应的密钥由射频标签产生生成随机数。随机数的生产应符合相关国家密码标准,保证随机数的可靠性。

射频标签将生产的对称加密密钥必须存储在密钥存储区,按照密钥管理要求不能以明文方式读取。

存储数据时,射频标签调用加密密钥对数据进行加密。当与读写器进行数据交互时,电子标签读取密文,解密成明文后发送给读写器。

为防止恶意攻击者采用篡改密文方式进行攻击,数据应采用计算摘要的方式进行完整性保护。存储数据时计算明文的摘要hash,应联接明文和摘要,共同加密后保存。读取数据时,解密数据,首先验证计算结果前半部分明文hash 和后半部分是否相等,当相等时证明数据没有被篡改。

此外,通信时应采用加密和完整性技术进行防护。通信加密采用密钥交换协议,以及分散的通信密钥。在标签发行时,使用通信应用根和标签UID 分散生成通信密钥,基于挑战响应算法进行身份认证,挑战过程中的随机数参与生产通信加密密钥。为保证通信数据不可篡改,通信协议应采用哈希算法进行完整性保护。

4 密钥存储

在整个射频标签系统中,密钥通过分层模式进行管理,最顶层密钥为主根密钥,通过主根密钥生成身份鉴别应用根、访问控制应用根等密钥。密钥的安全存储及全生命周期管理应符合密码应用安全性相关要求。密钥分发系统、读写器、和射频标签中,密钥通过安全密码模块进行管理。主根密钥采用Shamir 秘密分割门限算法[10]进行保护。

在该算法中,为了构建(k,n)门限方案,即密钥成为n 个分量,其中k 个分量可以还原密钥。要保护的密钥S,为了构造多项式,随机选择k-1个正整数a1,a2…ak-1,令a0=S,由此构建多项式,

设i=1…n,分别计算f(i),并分配给n个持有人(i,f(i)),此时多项式中a0,a1,a2…ak-1为未知参数,因此无法通过k-1计算得到a0。

当还原密钥时,k个密钥分量的保存者提供(i,f(i)),并代入到多项式中,此时可以构建a0,a1,a2…ak-1为变量的k个k元方程组。通过解方程租的方式可以得到a0,a1,a2…ak-1。其中a0即为根密钥S。

通过门限分割方式,实现了根密钥有效防护。

5 结束语

射频标签在电子门禁、电子凭证等方面广泛应用。在很多场合,采用电子门禁进行重要部门部位的管理是安全防护的重要措施。与业务应用系统的安全防护不同,射频标签应用通常不基于公钥算法和PKI 体系[11],同时为了有效进行身份鉴别,通常基于唯一标识符分散密钥和对称密码鉴别的方式。该方案解决了对称密钥管理中密钥分发的难题,读写器不需要保存每个射频标签的密钥,只需要保存相应根密钥。身份鉴别时,基于用户的标识进行加密计算,加密的结果作为标签身份密钥。由于根密钥是秘密的,即使生成算法公开,用户唯一标识也公开,生成的用户分散密钥也是秘密的。除了对称加密技术产生身份标识的密钥,公钥算法也可以用于生成身份标识密钥,密钥算法SM9就具有这种特性[12],未来将会出现使用SM9 算法的射频标签,将会在车联网、穿戴设备、工业互联网、智能制造等应用中发挥重大作用。

猜你喜欢

标识符读写器密钥
基于底层虚拟机的标识符混淆方法
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
基于区块链的持久标识符系统①
TPM 2.0密钥迁移协议研究
一种对称密钥的密钥管理方法及系统
科研人员唯一标识符的理论研究现状剖析
数字图书馆推广工程唯一标识符体系构建研究*
基于视频抓拍读写器的高速公路防倒卡研究
基于随机时隙的RFID读写器防冲突方法