郝永放+王彬+王飛+狄輝
摘 要:NFC近場通信技術(shù)日漸普及,為防止NFC標簽與服務(wù)器通信過程受到攻擊導(dǎo)致信息泄露,提出采用基于橢圓曲線密鑰協(xié)商算法和AES對稱加密算法來實現(xiàn)NFC標簽和服務(wù)器之間雙向認證的方案。文中分析了當前技術(shù),列出了算法選擇依據(jù),描述了認證方案的具體實現(xiàn)流程。
關(guān)鍵詞:NFC標簽;服務(wù)器;AES;橢圓曲線密鑰協(xié)商算法
中圖分類號:TP393 文獻標識碼:A 文章編號:2095-1302(2018)02-00-03
0 引 言
NFC近場通信技術(shù)自2002年被提出以來發(fā)展迅速,并廣泛應(yīng)用于生活中的各個領(lǐng)域,如防偽、巡檢、移動支付、門禁等方面。這些應(yīng)用大都離不開NFC標簽與服務(wù)器之間的數(shù)據(jù)傳輸(此處的服務(wù)器是讀卡器和后臺處理程序的統(tǒng)稱)。以NFC標簽在防偽系統(tǒng)中的應(yīng)用為例,防偽系統(tǒng)的主要目的是驗證標簽綁定商品的真?zhèn)?,NFC標簽和服務(wù)器都有可能成為攻擊者攻擊或仿造的對象,因此系統(tǒng)面臨的第一個問題是NFC標簽和服務(wù)器的身份認證。本文針對該問題提出了解決方案,描述了認證流程。該方案主要包括NFC標簽和服務(wù)器的密鑰協(xié)商,數(shù)據(jù)加密傳輸和解密驗證三部分。
1 相關(guān)知識介紹
1.1 NFC技術(shù)介紹
近場通信技術(shù)(Near Filed Communction,NFC)的工作頻率為13.56 MHz,是Philips公司和SONY公司于2002年聯(lián)合開發(fā)的新一代無線通信技術(shù),也是非接觸式射頻識別技術(shù)(RFID)的一種擴展[1]。NFC技術(shù)與RFID技術(shù)的不同之處在于NFC技術(shù)在單一芯片上結(jié)合了感應(yīng)式讀卡器,感應(yīng)式卡片具有雙向連接和識別的特點,擁有點對點功能,允許在多個設(shè)備間實現(xiàn)安全的雙向交互。
同時NFC技術(shù)還定義了主動工作模式和被動工作模式,其主要區(qū)別在于設(shè)備之間通信的射頻場是否由本設(shè)備發(fā)出。在主動工作模式下,NFC設(shè)備自身產(chǎn)生射頻場,當一臺NFC設(shè)備向另一臺NFC設(shè)備發(fā)送數(shù)據(jù)時,通信雙方都需要發(fā)出RF射頻場,并通過該射頻場通信。在被動模式下,射頻場由其他設(shè)備發(fā)出,工作在該模式下的目標設(shè)備利用感應(yīng)的電動勢提供自身工作所需的電源,并利用負載調(diào)制技術(shù)進行數(shù)據(jù)收發(fā)。
主動模式的設(shè)備通常具有自己的供電單元,如NFC讀卡器和具有NFC功能模塊的手機等。而被動模式無需供電單元,如NFC卡片和標簽等[2]。
1.2 NFC標簽介紹
NFC標簽主要由NFC芯片、線圈組成,經(jīng)過封裝和加工后形成標簽。目前NFC標簽基本種類有4種,各有不同的格式和容量[3]。
(1)第一類標簽基于ISO14443A協(xié)議,標簽內(nèi)存最小為96 B,通信速率為106 kb/s,可存儲少量數(shù)據(jù)。
(2)第二類標簽同樣基于ISO14443A 協(xié)議,其內(nèi)存大小為48 B,可擴充到2 kB,通信速率為106 kb/s。
(3)第三類標簽內(nèi)存為2 kB,通信速率為212 kb/s。此類標簽適合較為復(fù)雜的應(yīng)用場景,但成本較高。
(4)第四類標簽同時兼容ISO14443A和ISO14443B兩種協(xié)議,相較于其他三種標簽類型,擁有更大的存儲空間并集成了安全加密認證模塊,能完成更為復(fù)雜的操作。
在不同領(lǐng)域的應(yīng)用中,應(yīng)根據(jù)具體情況來選擇最適合的標簽。以NFC標簽在防偽領(lǐng)域的應(yīng)用為例,此時標簽不僅需要存儲與企業(yè)和產(chǎn)品相關(guān)的信息,還要進行加密和解密計算,因此選擇第四類標簽更為合適。
2 雙向認證方案的分析與設(shè)計
2.1 雙向認證方案分析
在認證過程中雙方需要加密傳輸需相互認證的信息,因此雙方應(yīng)事先約定加密算法和協(xié)商密鑰。
加密算法主要包括對稱加密算法和非對稱加密算法,常見的對稱加密算法有DES,3DES和AES,非對稱算法有RSA,其中DES算法隨著計算機計算能力的提升已經(jīng)能夠被輕易破解。3DES算法是DES算法的變形,相對來說更為安全,它以DES為基本模塊,通過組合分組方法設(shè)計出加密算法[4]。相比較DES和3DES算法,AES算法屬于下一代加密算法,具有速度更快、安全級別更高等優(yōu)點,其主要目的是取代3DES算法。RSA算法屬于非對稱加密算法,但加解密速度緩慢,只適合解密數(shù)據(jù)量較小的數(shù)據(jù),通常還需要配合其他加密速度較快的算法一起使用[5]。
密鑰協(xié)商方式眾多,比如事先讓雙方保存相同的密鑰,但在這種情況下,密鑰是靜態(tài)的,無法抵抗攻擊者的重放攻擊。本設(shè)計采用ECDH密鑰協(xié)商算法來約定認證雙方的密鑰,其安全性建立在橢圓曲線的離線對數(shù)問題上,每次通信都根據(jù)雙方產(chǎn)生的隨機數(shù)來生成動態(tài)密鑰,安全性較高,能有效防止攻擊者的重放式攻擊。
結(jié)合以上分析,采用EDCH算法進行密鑰協(xié)商,并通過AES對稱加密算法進行加密傳輸和解密驗證。
2.2 關(guān)鍵模塊設(shè)計
2.2.1 密鑰協(xié)商設(shè)計
密鑰協(xié)商的目的在于在不共享任何秘密的情況下協(xié)商出密鑰,本設(shè)計采用基于橢圓曲線密碼體制(Elliptic Curve Cryptosystems,ECC)的Diffie-Hellman密鑰交換算法EDCH進行計算[6]。ECC是建立在基于橢圓曲線離散對數(shù)問題上的密碼體制,對橢圓曲線離散對數(shù)問題可以作以下描述:
給定橢圓曲線上一個點P,一個整數(shù)k,求解Q=k×p很容易;給定點P,Q,已知Q=k×P,求整數(shù)k是一個難題[7]。ECDH算法的安全性便建立在此數(shù)學(xué)難題之上。密鑰協(xié)商過程如圖1所示。
假如標簽Tag和服務(wù)器Server共享一條橢圓曲線E,且基點為G,那么存在以下狀況:
(1)標簽Tag產(chǎn)生隨機數(shù)t,計算會話密鑰T=t×G;
(2)Server產(chǎn)生隨機數(shù)s,計算會話密鑰S=s×G;endprint
(3)Tag將T傳給Server,同時Server將S傳給Tag;
(4)Tag收到Server傳遞的S,計算出協(xié)商密鑰P=t×S;
(5)Server收到Tag傳遞的T,計算出協(xié)商密鑰P1=s×T。
P=t×(s×G) (1)
P1=s×(t×G) (2)
由交換律和結(jié)合律可知:P=P1。
此時標簽Tag與客戶端Server完成了密鑰協(xié)商,且協(xié)商過程中有可能公開的參數(shù)包括基點G、傳遞的會話密鑰T和S。由于橢圓曲線離線對數(shù)問題難度較大,至今仍沒有有效的解決方法[8],攻擊者若想通過G,T,S三個參數(shù)計算出t和s非常困難,同時根據(jù)動態(tài)隨機數(shù)生成密鑰可有效防止重放攻擊,使R和R1的安全性得到有力保障。
2.2.2 信息加密設(shè)計
當密鑰協(xié)商完成后會涉及數(shù)據(jù)的加密傳輸,本設(shè)計采用AES對稱加密算法來進行數(shù)據(jù)傳輸。AES 算法又稱Rijndael加密法,是美國國家標準與技術(shù)研究所用于加密電子數(shù)據(jù)的規(guī)范,代替了原先的DES算法。與DES不同的是,AES使用的是代換-置換網(wǎng)絡(luò),而非Feistel架構(gòu),在軟件和硬件上都能快速加解密,只需很少的存儲器就可實現(xiàn),相對來說更適用于實際情況[9]。
AES在一個4×4的字節(jié)矩陣上進行加密,該矩陣又稱為state,其初始值是一個明文數(shù)據(jù)塊(即需要加密的數(shù)據(jù)),該數(shù)據(jù)塊長度規(guī)定為128 B,密鑰長度可設(shè)置為128 B,192 B,256 B(如果數(shù)據(jù)塊及密鑰長度不足時,會補齊)[10]。
加密過程大致分為密鑰擴展、初始輪、重復(fù)輪、最終輪4個步驟,其中第三步重復(fù)輪中具體重復(fù)的次數(shù)與密鑰長度有關(guān)。當密鑰長度為128 B時,N為10,進行10輪重復(fù)計算;當密鑰長度為192 B時,N為12;當密鑰長度為256 B時,N為14。本次方案設(shè)計采用長為128 B的密鑰進行加密和解密計算。
2.2.3 解密驗證設(shè)計
解密過程與加密過程類似,是加密過程的逆過程,即輸入128 B密文后,經(jīng)運算可得到128 B明文。
2.3 認證方案具體流程
該方案主要包括密鑰協(xié)商、信息加密、解密驗證三部分。認證流程如圖2所示。
式(3)代表以P為密鑰對明文S進行AES加密計算,得到密文R。
R=E(P,S) (3)
式(4)代表以P為密鑰對密文S進行AES解密計算,得到明文R。
R=D(P,S) (4)
雙向認證過程如下:
(1) 當讀卡設(shè)備靠近標簽時,發(fā)送認證請求。
(2) NFC標簽收到認證請求后,進行密鑰協(xié)商。
(3) 雙方完成密鑰協(xié)商后,標簽得到密鑰P1,服務(wù)器端得到密鑰P2(服務(wù)器包括讀卡器和后臺處理程序),P1與P2的值相等。
(4) 服務(wù)器端讀取標簽生成的隨機數(shù)Rt1,使用密鑰P對Rt1進行加密得到Rt′。
(5) 服務(wù)器生成隨機數(shù)Rs1,通過讀卡器將Rt′和Rs1寫入標簽。
(6) 標簽收到Rt′,使用P進行解密得到Rt2,判斷Rt1和Rt2的值,若相等則通過對服務(wù)器的驗證,否則驗證不予通過。
(7) 若服務(wù)器通過驗證,標簽使用P1對Rs1加密得到Rs′,服務(wù)器端讀取到Rs′后,通過P2解密得到Rs2,判斷Rs1和Rs2的值是否相等,相等則通過對標簽的驗證,否則,驗證失敗。
3 結(jié) 語
基于NFC技術(shù)的通信系統(tǒng)在實際應(yīng)用中,首要工作是認證NFC標簽和服務(wù)器的合法性,本文針對該問題以ECDH密鑰協(xié)商算法和AES對稱加密算法為基礎(chǔ),設(shè)計出了NFC標簽和服務(wù)器之間進行雙向認證的方案,羅列了密鑰協(xié)商、加密傳輸以及解密驗證的具體實現(xiàn)流程。
參考文獻
[1]焦建軍.基于NFC技術(shù)下的近場通信WiFi傳輸連接方案[J].電子技術(shù)與軟件工程, 2017(18):39.
[2]蘇婕,王忠.基于NFC技術(shù)的巡更巡檢管理系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計, 2015(4):1068-1072.
[3]陳志鵬,王彬.基于NFC技術(shù)的智能巡檢系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù), 2017,7(2):24-26.
[4]隋濤.DES與AES數(shù)據(jù)加密算法探討[J].湖北第二師范學(xué)院學(xué)報, 2013,30(8):66-68.
[5]肖振久,胡馳,姜正濤,等.AES與RSA算法優(yōu)化及其混合加密體制[J].計算機應(yīng)用研究, 2014,31(4):1189-1194.
[6]李冠朋,田振川,朱貴良.基于ECDH與Rijndael的數(shù)據(jù)庫加密系統(tǒng)[J].計算機工程, 2013,39(4):173-176.
[7]吳學(xué)慧,牛志華,王潮.基于橢圓曲線密碼的RFID安全協(xié)議[J].計算機工程與設(shè)計, 2010,31(24):5165-5167.
[8]陳義濤.基于橢圓曲線的認證密鑰協(xié)商協(xié)議的研究及應(yīng)用[D].武漢:武漢大學(xué), 2014.
[9]程桂花,羅永龍,齊學(xué)梅,等.AES算法中基于流水線的可逆S盒設(shè)計與實現(xiàn)[J].小型微型計算機系統(tǒng), 2012,33(3):576-581.
[10]王小偉. AES加密算法的研究與IP核設(shè)計實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.endprint