NFC标签与服务器双向认证方案的设计
2018-03-03郝永放王彬王飞狄辉
郝永放+王彬+王飞+狄辉
摘 要:NFC近场通信技术日渐普及,为防止NFC标签与服务器通信过程受到攻击导致信息泄露,提出采用基于椭圆曲线密钥协商算法和AES对称加密算法来实现NFC标签和服务器之间双向认证的方案。文中分析了当前技术,列出了算法选择依据,描述了认证方案的具体实现流程。
关键词:NFC标签;服务器;AES;椭圆曲线密钥协商算法
中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2018)02-00-03
0 引 言
NFC近场通信技术自2002年被提出以来发展迅速,并广泛应用于生活中的各个领域,如防伪、巡检、移动支付、门禁等方面。这些应用大都离不开NFC标签与服务器之间的数据传输(此处的服务器是读卡器和后台处理程序的统称)。以NFC标签在防伪系统中的应用为例,防伪系统的主要目的是验证标签绑定商品的真伪,NFC标签和服务器都有可能成为攻击者攻击或仿造的对象,因此系统面临的第一个问题是NFC标签和服务器的身份认证。本文針对该问题提出了解决方案,描述了认证流程。该方案主要包括NFC标签和服务器的密钥协商,数据加密传输和解密验证三部分。
1 相关知识介绍
1.1 NFC技术介绍
近场通信技术(Near Filed Communction,NFC)的工作频率为13.56 MHz,是Philips公司和SONY公司于2002年联合开发的新一代无线通信技术,也是非接触式射频识别技术(RFID)的一种扩展[1]。NFC技术与RFID技术的不同之处在于NFC技术在单一芯片上结合了感应式读卡器,感应式卡片具有双向连接和识别的特点,拥有点对点功能,允许在多个设备间实现安全的双向交互。
同时NFC技术还定义了主动工作模式和被动工作模式,其主要区别在于设备之间通信的射频场是否由本设备发出。在主动工作模式下,NFC设备自身产生射频场,当一台NFC设备向另一台NFC设备发送数据时,通信双方都需要发出RF射频场,并通过该射频场通信。在被动模式下,射频场由其他设备发出,工作在该模式下的目标设备利用感应的电动势提供自身工作所需的电源,并利用负载调制技术进行数据收发。
主动模式的设备通常具有自己的供电单元,如NFC读卡器和具有NFC功能模块的手机等。而被动模式无需供电单元,如NFC卡片和标签等[2]。
1.2 NFC标签介绍
NFC标签主要由NFC芯片、线圈组成,经过封装和加工后形成标签。目前NFC标签基本种类有4种,各有不同的格式和容量[3]。
(1)第一类标签基于ISO14443A协议,标签内存最小为96 B,通信速率为106 kb/s,可存储少量数据。
(2)第二类标签同样基于ISO14443A 协议,其内存大小为48 B,可扩充到2 kB,通信速率为106 kb/s。
(3)第三类标签内存为2 kB,通信速率为212 kb/s。此类标签适合较为复杂的应用场景,但成本较高。
(4)第四类标签同时兼容ISO14443A和ISO14443B两种协议,相较于其他三种标签类型,拥有更大的存储空间并集成了安全加密认证模块,能完成更为复杂的操作。
在不同领域的应用中,应根据具体情况来选择最适合的标签。以NFC标签在防伪领域的应用为例,此时标签不仅需要存储与企业和产品相关的信息,还要进行加密和解密计算,因此选择第四类标签更为合适。
2 双向认证方案的分析与设计
2.1 双向认证方案分析
在认证过程中双方需要加密传输需相互认证的信息,因此双方应事先约定加密算法和协商密钥。
加密算法主要包括对称加密算法和非对称加密算法,常见的对称加密算法有DES,3DES和AES,非对称算法有RSA,其中DES算法随着计算机计算能力的提升已经能够被轻易破解。3DES算法是DES算法的变形,相对来说更为安全,它以DES为基本模块,通过组合分组方法设计出加密算法[4]。相比较DES和3DES算法,AES算法属于下一代加密算法,具有速度更快、安全级别更高等优点,其主要目的是取代3DES算法。RSA算法属于非对称加密算法,但加解密速度缓慢,只适合解密数据量较小的数据,通常还需要配合其他加密速度较快的算法一起使用[5]。
密钥协商方式众多,比如事先让双方保存相同的密钥,但在这种情况下,密钥是静态的,无法抵抗攻击者的重放攻击。本设计采用ECDH密钥协商算法来约定认证双方的密钥,其安全性建立在椭圆曲线的离线对数问题上,每次通信都根据双方产生的随机数来生成动态密钥,安全性较高,能有效防止攻击者的重放式攻击。
结合以上分析,采用EDCH算法进行密钥协商,并通过AES对称加密算法进行加密传输和解密验证。
2.2 关键模块设计
2.2.1 密钥协商设计
密钥协商的目的在于在不共享任何秘密的情况下协商出密钥,本设计采用基于椭圆曲线密码体制(Elliptic Curve Cryptosystems,ECC)的Diffie-Hellman密钥交换算法EDCH进行计算[6]。ECC是建立在基于椭圆曲线离散对数问题上的密码体制,对椭圆曲线离散对数问题可以作以下描述:
给定椭圆曲线上一个点P,一个整数k,求解Q=k×p很容易;给定点P,Q,已知Q=k×P,求整数k是一个难题[7]。ECDH算法的安全性便建立在此数学难题之上。密钥协商过程如图1所示。
假如标签Tag和服务器Server共享一条椭圆曲线E,且基点为G,那么存在以下状况:
(1)标签Tag产生随机数t,计算会话密钥T=t×G;
(2)Server产生随机数s,计算会话密钥S=s×G;endprint
(3)Tag将T传给Server,同时Server将S传给Tag;
(4)Tag收到Server传递的S,计算出协商密钥P=t×S;
(5)Server收到Tag传递的T,计算出协商密钥P1=s×T。
P=t×(s×G) (1)
P1=s×(t×G) (2)
由交换律和结合律可知:P=P1。
此时标签Tag与客户端Server完成了密钥协商,且协商过程中有可能公开的参数包括基点G、传递的会话密钥T和S。由于椭圆曲线离线对数问题难度较大,至今仍没有有效的解决方法[8],攻击者若想通过G,T,S三个参数计算出t和s非常困难,同时根据动态随机数生成密钥可有效防止重放攻击,使R和R1的安全性得到有力保障。
2.2.2 信息加密设计
当密钥协商完成后会涉及数据的加密传输,本设计采用AES对称加密算法来进行数据传输。AES 算法又称Rijndael加密法,是美国国家标准与技术研究所用于加密电子数据的规范,代替了原先的DES算法。与DES不同的是,AES使用的是代换-置换网络,而非Feistel架构,在软件和硬件上都能快速加解密,只需很少的存储器就可实现,相对来说更适用于实际情况[9]。
AES在一个4×4的字节矩阵上进行加密,该矩阵又称为state,其初始值是一个明文数据块(即需要加密的数据),该数据块长度规定为128 B,密钥长度可设置为128 B,192 B,256 B(如果数据块及密钥长度不足时,会补齐)[10]。
加密过程大致分为密钥扩展、初始轮、重复轮、最终轮4个步骤,其中第三步重复轮中具体重复的次数与密钥长度有关。当密钥长度为128 B时,N为10,进行10轮重复计算;当密钥长度为192 B时,N为12;当密钥长度为256 B时,N为14。本次方案设计采用长为128 B的密钥进行加密和解密计算。
2.2.3 解密验证设计
解密过程与加密过程类似,是加密过程的逆过程,即输入128 B密文后,经运算可得到128 B明文。
2.3 认证方案具体流程
该方案主要包括密钥协商、信息加密、解密验证三部分。认证流程如图2所示。
式(3)代表以P为密钥对明文S进行AES加密计算,得到密文R。
R=E(P,S) (3)
式(4)代表以P为密钥对密文S进行AES解密计算,得到明文R。
R=D(P,S) (4)
双向认证过程如下:
(1) 当读卡设备靠近标签时,发送认证请求。
(2) NFC标签收到认证请求后,进行密钥协商。
(3) 双方完成密钥协商后,标签得到密钥P1,服务器端得到密钥P2(服务器包括读卡器和后台处理程序),P1与P2的值相等。
(4) 服务器端读取標签生成的随机数Rt1,使用密钥P对Rt1进行加密得到Rt′。
(5) 服务器生成随机数Rs1,通过读卡器将Rt′和Rs1写入标签。
(6) 标签收到Rt′,使用P进行解密得到Rt2,判断Rt1和Rt2的值,若相等则通过对服务器的验证,否则验证不予通过。
(7) 若服务器通过验证,标签使用P1对Rs1加密得到Rs′,服务器端读取到Rs′后,通过P2解密得到Rs2,判断Rs1和Rs2的值是否相等,相等则通过对标签的验证,否则,验证失败。
3 结 语
基于NFC技术的通信系统在实际应用中,首要工作是认证NFC标签和服务器的合法性,本文针对该问题以ECDH密钥协商算法和AES对称加密算法为基础,设计出了NFC标签和服务器之间进行双向认证的方案,罗列了密钥协商、加密传输以及解密验证的具体实现流程。
参考文献
[1]焦建军.基于NFC技术下的近场通信WiFi传输连接方案[J].电子技术与软件工程, 2017(18):39.
[2]苏婕,王忠.基于NFC技术的巡更巡检管理系统的设计与实现[J].计算机工程与设计, 2015(4):1068-1072.
[3]陈志鹏,王彬.基于NFC技术的智能巡检系统设计[J].物联网技术, 2017,7(2):24-26.
[4]隋涛.DES与AES数据加密算法探讨[J].湖北第二师范学院学报, 2013,30(8):66-68.
[5]肖振久,胡驰,姜正涛,等.AES与RSA算法优化及其混合加密体制[J].计算机应用研究, 2014,31(4):1189-1194.
[6]李冠朋,田振川,朱贵良.基于ECDH与Rijndael的数据库加密系统[J].计算机工程, 2013,39(4):173-176.
[7]吴学慧,牛志华,王潮.基于椭圆曲线密码的RFID安全协议[J].计算机工程与设计, 2010,31(24):5165-5167.
[8]陈义涛.基于椭圆曲线的认证密钥协商协议的研究及应用[D].武汉:武汉大学, 2014.
[9]程桂花,罗永龙,齐学梅,等.AES算法中基于流水线的可逆S盒设计与实现[J].小型微型计算机系统, 2012,33(3):576-581.
[10]王小伟. AES加密算法的研究与IP核设计实现[D].哈尔滨:哈尔滨工业大学,2013.endprint