李云 陳龐森 孫山林
摘要:針對(duì)基于近場(chǎng)通信(NFC)認(rèn)證的無(wú)線局域網(wǎng)(WLAN)無(wú)線接入?yún)f(xié)議點(diǎn)對(duì)點(diǎn)通信模式存在的問題,如明文傳輸、用戶接入匿名性、數(shù)據(jù)易于被竊聽、易于被篡改等,提出基于NFC認(rèn)證的WLAN無(wú)線接入?yún)f(xié)議安全性的設(shè)計(jì)。該協(xié)議采用DiffieHellman 密鑰交換算法與第二代安全散列算法(SHA)建立安全隧道來完成隨機(jī)信息的交換;采用橢圓曲線數(shù)字簽名算法來消除用戶的匿名性。從協(xié)議需求分析、架構(gòu)設(shè)計(jì)與協(xié)議時(shí)序步驟三個(gè)方面入手,給出了一個(gè)計(jì)算機(jī)上的原型實(shí)現(xiàn)。通過有色Petri網(wǎng)(CPN)建模,實(shí)驗(yàn)仿真結(jié)果表明:基于NFC認(rèn)證的WLAN接入?yún)f(xié)議對(duì)于無(wú)線局域網(wǎng)的非法接入攻擊與竊聽攻擊有著良好的抵抗效果。
關(guān)鍵詞:
近場(chǎng)通信;無(wú)線局域網(wǎng);有色Petri網(wǎng);橢圓曲線數(shù)字簽名算法
中圖分類號(hào):TP393.08 文獻(xiàn)標(biāo)志碼:A
Abstract:Aiming at the problems existing in pointtopoint communication model of Wireless Local Area Network (WLAN) protocol via Near Field Communication (NFC) authentication, such as plaintext transferring, users anonymous access, data being easily tapped and tampered, a security design of WLAN protocol via NFC was put forward. The security tunnel was built using DiffieHellman key exchange algorithm and second generation Secure Hash Algorithm (SHA) to transfer the random information, and the users anonymity was eliminated using Elliptic Curve Digital Signature Algorithm (ECDSA). A prototype implementation on computer was given from requirement analysis, architecture design and sequence steps of the protocol. The experimental results by using Colored Petri Net (CPN) modeling show that the proposed protocol can execute stably and deal with the unauthorized access and eavesdropping problems of WLAN.
Key words:Near Field Communication (NFC); Wireless Local Area Network (WLAN); Colored Petri Net (CPN); Elliptic Curve Digital Signature Algorithm (ECDSA)
0 引言
無(wú)線局域網(wǎng)(Wireless Local Area Network, WLAN)具有傳輸速率高、使用靈活等特性。目前,WLAN在大學(xué)校園、公共場(chǎng)所和企業(yè)等得到了一定應(yīng)用。未來具有多跳功能的WLAN將會(huì)在一些特定的應(yīng)用領(lǐng)域變得越來越普及,如無(wú)線城市、無(wú)線校園等。然而,無(wú)線傳輸介質(zhì)的開放接入特性,使WLAN的安全性成為一個(gè)亟待解決的問題,特別是在重要的國(guó)家安全機(jī)構(gòu),解決無(wú)線局域網(wǎng)的安全問題迫在眉睫[1-3]。WLAN的認(rèn)證協(xié)議主要有有線等效保密協(xié)議(Wired Equivalent Privacy, WEP)、WiFi網(wǎng)絡(luò)安全接入(WiFi Protected Access/ WiFi Protected Access2PreShared Key, WPA/WPA2PSK)、WiFi保護(hù)設(shè)置(WiFi Protected Setup, WPS)三種[4-6]。然而,WLAN中的三種認(rèn)證協(xié)議都有自身的缺陷。例如:在WEP認(rèn)證過程中,RC4算法常常作為數(shù)據(jù)加密算法。然而,這種加密算法的弱點(diǎn)是當(dāng)收集足夠的初始向量(Initialization Vector,IV)與RC4字節(jié)流的第一個(gè)字節(jié)時(shí),key就可以被獲取[7]。WPA/WPA2PSK認(rèn)證方式使用較為廣泛,目前也較為安全;但是,在預(yù)共享密鑰(PreShared Key, PSK)不是足夠長(zhǎng)的情況下,如果能夠收集用戶在初始認(rèn)證時(shí)的四次握手包,用字典攻擊或暴力猜解等方法就可以在等待的時(shí)間內(nèi)破解PSK[8]。在WPA/WPA2PSK的基礎(chǔ)上,文獻(xiàn)[9]提出WPS認(rèn)證方式;然而,這種認(rèn)證方式無(wú)法用制度或者規(guī)則去判斷獲得PSK的用戶的合法性。
針對(duì)以上的問題,本文提出基于近場(chǎng)通信(Near Field Communication, NFC)認(rèn)證的WLAN無(wú)線接入?yún)f(xié)議。NFC是一種工作頻率為13.56MHz,工作距離只有0~20cm(實(shí)際產(chǎn)品大部分都在10cm以內(nèi))的近距離無(wú)線通信技術(shù),允許電子設(shè)備通過簡(jiǎn)單觸碰的方式完成信息交換及內(nèi)容與服務(wù)的訪問。NFC技術(shù)已經(jīng)應(yīng)用到文件傳輸、移動(dòng)支付、智能海報(bào)等領(lǐng)域[10-11]。NFC由三種工作模式構(gòu)成,分別是卡模式、標(biāo)簽讀寫模式以及用于高級(jí)協(xié)議通信的點(diǎn)對(duì)點(diǎn)模式。本文提出基于NFC認(rèn)證的WLAN無(wú)線接入?yún)f(xié)議是基于點(diǎn)對(duì)點(diǎn)模式上開發(fā)的協(xié)議。然而,NFC的點(diǎn)對(duì)點(diǎn)模式在交互過程中也存在竊聽的問題。文獻(xiàn)[12]闡述在10m距離內(nèi),NFC的點(diǎn)對(duì)點(diǎn)模式的數(shù)據(jù)可以被竊聽。文獻(xiàn)[13]描述了在NFC點(diǎn)對(duì)點(diǎn)的工作模式中,數(shù)據(jù)常常被篡改;雖然采用波特率為106Kb/s的主動(dòng)通信方式有效地避免了數(shù)據(jù)篡改,但是,這種方式非常易于受中間人攻擊。
為提高NFC接入WLAN協(xié)議的安全性,本文采用DiffieHellman密鑰交換算法與第二代安全散列算法(Secure Hash Algorithm,SHA)建立基于NFC協(xié)議棧的安全隧道來完成隨機(jī)信息的交換。由于接入用戶存在匿名性等不安全隱患,本文采用橢圓曲線數(shù)字簽名算法(Elliptic Curve Digital Signature Algorithm, ECDSA)來消除用戶身份的匿名性。最后,采用有色Petri網(wǎng)(Colored Petri Net, CPN)建模,在協(xié)議需求分析與架構(gòu)設(shè)計(jì)的基礎(chǔ)上,給出了一個(gè)計(jì)算機(jī)上的原型實(shí)現(xiàn)。仿真驗(yàn)證表明,基于NFC認(rèn)證的WLAN接入?yún)f(xié)議對(duì)于無(wú)線局域網(wǎng)的非法接入攻擊與竊聽攻擊有著良好的抵抗效果,協(xié)議本身也可以抵抗針對(duì)近場(chǎng)通信的竊聽攻擊、數(shù)據(jù)篡改攻擊、重放攻擊和中間人攻擊。
1 建立安全隧道算法與消除匿名性算法
針對(duì)企業(yè)等人員流動(dòng)相對(duì)緩慢,上網(wǎng)人群相對(duì)固定,但保密意識(shí)較差的應(yīng)用場(chǎng)景,本文提出基于NFC認(rèn)證的WLAN接入?yún)f(xié)議,實(shí)現(xiàn)較好的安全性接入。該協(xié)議利用DiffieHellman密鑰交換算法和第二代SHA建立安全隧道傳遞預(yù)共享密鑰,同時(shí)利用ECDSA消除在DiffieHellman密鑰交換算法中的匿名性問題,并對(duì)每個(gè)用戶進(jìn)行一次上網(wǎng)權(quán)限的初始化。
1.1 DiffieHellman密鑰交換算法與SHA
DiffieHellman密鑰交換算法是Whitefield與Martin Hellman在1976年提出了一個(gè)奇妙的密鑰交換協(xié)議,它可以確保預(yù)共享密鑰安全的穿過不安全的網(wǎng)絡(luò)。SHA主要適用于數(shù)字簽名標(biāo)準(zhǔn)(Digital Signature Standard,DSS)里面定義的數(shù)字簽名算法(Digital Signature Algorithm,DSA)。SHA是美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所發(fā)布的國(guó)家標(biāo)準(zhǔn)FIPS PUB 180,最新的標(biāo)準(zhǔn)已經(jīng)于2008年更新到FIPS PUB 1803。其中規(guī)定了SHA1、SHA224、SHA256、SHA384和SHA512這幾種單向散列算法。本文利用DiffieHellman密鑰交換算法和第二代SHA建立安全隧道完成預(yù)共享密鑰的傳遞。
在基于NFC認(rèn)證的WLAN接入?yún)f(xié)議中,首先本文需要建立安全的通信隧道。本文主要提出了采用DiffieHellman密鑰交換算法和第二代SHA來實(shí)現(xiàn)。步驟如下:
在各自計(jì)算出K之后,Alice作為NFC會(huì)話的Initiator在用戶設(shè)備(Station, STA)中生成一段隨機(jī)的INounce,通過Trans Alice變遷發(fā)送到接入點(diǎn)設(shè)備(Access Device,AP),即NFC會(huì)話中的Target。
AP接收到INounce之后,生成隨機(jī)的TNounce,通過Trans AP變遷發(fā)送至STA;同時(shí),Target的NFCID3在通過近距離碰觸建立NFC會(huì)話時(shí),已經(jīng)由Target傳遞向Initiator。TNounce與NFCID3,經(jīng)由Trans AP變遷完成傳送。
隨后,在CPN模型中的Hash變遷中,Alice與AP各自使用和第二代SHA的SHA256算法利用式(6)計(jì)算生成KEY:
KEY=SHA2(INounce:NFCID3:K:TNounce)(6)
KEY是用于高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES)加解密算法的AES 256位對(duì)稱密鑰。由于雙方都采用了相同的算法,因而雙方計(jì)算出的KEY是相同的,計(jì)算AES 256位對(duì)稱密鑰中的基礎(chǔ)元素K是通過DiffieHellman算法各自計(jì)算生成的,攻擊者(Eve)無(wú)法截獲K。因而盡管Eve能夠及時(shí)截獲INounce、TNounce和NFCID3,也會(huì)因?yàn)槿鄙貹無(wú)法用Hash函數(shù)計(jì)算出正確的AES 256位對(duì)稱密鑰,即CPN模型中的AES KEY。
在得出AES 256位對(duì)稱密鑰之后,基于NFC的安全信道已經(jīng)成功建立。但是,此信道卻是匿名的。對(duì)于接入請(qǐng)求而言,需要使用ECDSA證書對(duì)用戶的身份進(jìn)一步認(rèn)證。
1.2 橢圓曲線數(shù)字簽名算法橢圓曲線
ECDSA是使用橢圓曲線對(duì)數(shù)字簽名算法(DSA)的模擬,它先后成為ANSI(American National Standards Institute)、NIST(National Institute of Standards and Technology)、IEEE和ISO的標(biāo)準(zhǔn)。與普通的離散對(duì)數(shù)問題和因數(shù)分解問題不同,橢圓曲線離散對(duì)數(shù)問題沒有已知的亞指數(shù)算法,所以使用橢圓曲線的算法在密鑰的位強(qiáng)度是足夠高的。
用戶可以通過軟件算法生成用于認(rèn)證的ECDSA公鑰,產(chǎn)生認(rèn)證公鑰的主要目的是消除用戶身份的匿名性。在用戶使用自身的設(shè)備或公司提供的電腦生成ECDSA密鑰對(duì)之后,需要將ECDSA公鑰當(dāng)場(chǎng)提交給WLAN管理員以申請(qǐng)上網(wǎng)權(quán)限,因?yàn)檫@個(gè)過程是由WLAN管理員當(dāng)面認(rèn)證的,因而可以保證ECDSA證書的絕對(duì)可信性。由于協(xié)議采用了公鑰密碼證書體制,合法用戶也可以通過向主管領(lǐng)導(dǎo)申請(qǐng)證書簽名的方式來增強(qiáng)申請(qǐng)者的可信性。這樣,領(lǐng)導(dǎo)對(duì)證書簽署電子簽名即表示上級(jí)同意了該申請(qǐng)者的聯(lián)網(wǎng)申請(qǐng),這與組織機(jī)構(gòu)的權(quán)力控制機(jī)制保持了一致。此時(shí),對(duì)ECDSA證書進(jìn)行簽名的主管領(lǐng)導(dǎo)必須對(duì)申請(qǐng)者的合法性審核負(fù)全責(zé)。
同時(shí)使用ECDSA證書對(duì)AES密鑰進(jìn)行簽名具備四個(gè)好處:一是NFC協(xié)議被設(shè)計(jì)為近距離低速數(shù)據(jù)傳輸協(xié)議,AES是雙方各自計(jì)算得出的,對(duì)AES進(jìn)行簽名可以利用現(xiàn)有的數(shù)據(jù)減少一次協(xié)議數(shù)據(jù)的傳輸,進(jìn)而減少用戶等待時(shí)間。二是前面所述步驟有極低的概率因?yàn)橛?jì)算機(jī)故障導(dǎo)致計(jì)算出不一致的AES 256位對(duì)稱密鑰。通過公鑰簽名進(jìn)行驗(yàn)證可以檢驗(yàn)并確定AES對(duì)稱密鑰的一致性。三是ECDSA公鑰密碼體制足夠安全,即使簽名在E3區(qū)域被Eve竊聽,也不足以通過簽名反向破解出AES對(duì)稱密鑰。四是通過對(duì)AES簽名的驗(yàn)證,可以避免中間人攻擊。這樣就解決了NFC的竊聽、中間人攻擊問題。
2 基于NFC認(rèn)證的WLAN無(wú)線接入?yún)f(xié)議設(shè)計(jì)
基于NFC認(rèn)證的WLAN無(wú)線接入?yún)f(xié)議設(shè)計(jì),本文從協(xié)議需求、架構(gòu)設(shè)計(jì)和協(xié)議具體步驟三個(gè)方面分別進(jìn)行闡述。
2.1 協(xié)議需求
基于NFC認(rèn)證的WLAN接入?yún)f(xié)議,本文采用WAVNAP(WLAN Access Via NFC Authentication Protocol)作為標(biāo)識(shí)。
由于基于NFC認(rèn)證的WLAN接入?yún)f(xié)議涉及了較多的算法,因此本協(xié)議對(duì)其他組件庫(kù)有較多的依賴。必備庫(kù)的依賴關(guān)系如圖1所示。
組件中的libnfc是用于實(shí)現(xiàn)NFC點(diǎn)對(duì)點(diǎn)模式通信的核心庫(kù)。libnfc在點(diǎn)對(duì)點(diǎn)模式中提供了對(duì)近場(chǎng)通信接口和協(xié)議(Near Field Communication Interface and Protocol,NFCIP1)及邏輯鏈路控制協(xié)議(Logical Link Control Protocol, LLCP)的支持,同時(shí)它也支持卡模擬模式和讀寫模式;并且在實(shí)現(xiàn)驅(qū)動(dòng)原型時(shí)所采用的PN532芯片也需要libnfc中的pn532_uart驅(qū)動(dòng)程序支持。本文采用的libnfc版本是1.7.0,該版本需要配置環(huán)境變量以支持對(duì)PN532芯片的自動(dòng)加載。
Wpa_supplicant是GNU/Linux操作系統(tǒng)下的常用于WPA/WPA2連接網(wǎng)絡(luò)的服務(wù)程序,可以通過解析配置文件的方式連接到不同的網(wǎng)絡(luò)。因此,在實(shí)現(xiàn)時(shí)需驅(qū)動(dòng)wpa_supplicant以連接相應(yīng)的網(wǎng)絡(luò)。
hostapd是GNU/Linux操作系統(tǒng)下常用的軟AP驅(qū)動(dòng)程序,它可以支持master模式的網(wǎng)卡充當(dāng)接入點(diǎn),也支持以配置文件的方式進(jìn)行設(shè)置。這為動(dòng)態(tài)地設(shè)置擴(kuò)展服務(wù)集標(biāo)識(shí)(Extended Service Set Identifier,ESSID)與PSK提供了便利,也減少了購(gòu)置專業(yè)可編程AP的資金需求。
libgcrypt是GNU/Linux系統(tǒng)中最常用的密碼學(xué)算法庫(kù)。它提供了AES、ECDSA、ECDH、DSA、RSA、DES等幾乎所有已公開的密碼學(xué)算法的實(shí)現(xiàn)。著名的密鑰管理軟件GNU PG就是依賴于libgcrypt實(shí)現(xiàn)的。這為本文解決ECDSA與AES的計(jì)算需求提供了便捷。
DB是數(shù)據(jù)庫(kù)開發(fā)組件,本文采用的是PostgreSQL數(shù)據(jù)庫(kù),libpq是程序庫(kù),用于連接數(shù)據(jù)庫(kù)并存儲(chǔ)用戶的公鑰信息。
此外,本文還實(shí)現(xiàn)了如下功能:大質(zhì)數(shù)的生成,可以采用從Linux隨機(jī)設(shè)備/dev/urandom中讀取,隨后通過自行實(shí)現(xiàn)的MillerRabin素?cái)?shù)測(cè)試來實(shí)現(xiàn);而DiffieHellman算法,由于沒有現(xiàn)成的算法可以使用,也需要由軟件自行實(shí)現(xiàn),在必要的情況下,也可以選配GNU高精度庫(kù)(GNU MultiPrecision, GMP)來輔助實(shí)現(xiàn)。
在完成上述庫(kù)的編譯與安裝之后,即可對(duì)協(xié)議整體進(jìn)行架構(gòu)設(shè)計(jì)。
2.2 架構(gòu)設(shè)計(jì)
協(xié)議實(shí)現(xiàn)分為兩個(gè)部分,分別是用于STA/Alice/Initiator的WAVNAPSTA和用于AP/Bob/Target的WAVNAPAP。
本協(xié)議屬于空中認(rèn)證協(xié)議,由于WAVNAPSTA與WAVNAPAP扮演的角色不同,并且二者之間的行為存在明顯的差異,因此協(xié)議的整體架構(gòu)需要針對(duì)WAVNAPSTA與WAVNAPAP分別進(jìn)行設(shè)計(jì)。
對(duì)于WAVNAPSTA部分,用類WAVNAP_STA作為對(duì)外接口,如圖2所示。因?yàn)镈iffieHellman加密算法的相關(guān)運(yùn)算需要完全由自己來實(shí)現(xiàn),所以需要構(gòu)建專門用于計(jì)算DiffieHellman數(shù)據(jù)的DH類。DH類的init調(diào)用用于生成式(1)中p與a,并按照式(1)計(jì)算出A;init_p調(diào)用則在已知p的基礎(chǔ)上生成式(2)中的b,并按照式(2)生成B;最后genK調(diào)用則可以由A與b按照式(3)生成K或由B與a按照式(4)生成K。DH類中的類型mpz_t是高精度整數(shù)類型。
DiffieHellman算法需要對(duì)素?cái)?shù)進(jìn)行冪及模運(yùn)算,所以針對(duì)素?cái)?shù)方面的運(yùn)算,本文專門設(shè)計(jì)了Prime類。Prime類主要用于生成素?cái)?shù),進(jìn)行millerrabin素?cái)?shù)測(cè)試等工作。密碼學(xué)的算法多數(shù)基于大素?cái)?shù),因而必須要使用高精度整數(shù)類型mpz_t來存儲(chǔ)這些數(shù)字。
在生成K結(jié)束之后,WAVNAPSTA與WAVNAPAP進(jìn)行了數(shù)據(jù)交互,隨后需要計(jì)算SHA2256以生成AES對(duì)稱密鑰,相關(guān)的算法實(shí)現(xiàn)在SHA2類中。實(shí)際上SHA2類僅是一個(gè)接口,最后真正調(diào)用的是libgcrypt中預(yù)先實(shí)現(xiàn)好的庫(kù)函數(shù)。
此后的鑒權(quán)則需要用到ECDSA簽名算法和驗(yàn)證簽名算法,在版本大于1.5.0的libgcrypt中提供了對(duì)于ECDSA這兩類算法的實(shí)現(xiàn)。ECDSA接口提供了對(duì)libgcrypt的調(diào)用,除此之外也可以采用自行實(shí)現(xiàn)的ECDSA進(jìn)行簽名或者驗(yàn)證簽名。這個(gè)接口需要將文本型的密鑰信息與簽名信息轉(zhuǎn)化為libgcrypt需求的形式,并進(jìn)行調(diào)用。
通過AES進(jìn)行PSK配置信息的傳遞,需要用到AES算法,在WAVNAPSTA中需要用到AES中的decrypt調(diào)用。而decrypt調(diào)用需要用到具體的AES解密算法,這需要調(diào)用libgcrypt庫(kù)中相關(guān)的函數(shù)。
在接收到PSK后,WAVNAPSTA就可以通過STA類設(shè)置essid與psk,并通過connect連接到AP。connect調(diào)用的主要功能是實(shí)現(xiàn)生成wpa_supplicant的配置文件,并通過執(zhí)行wpa_supplicant發(fā)起WPA/WPA2認(rèn)證。私鑰信息在STA上以文件的形式存儲(chǔ)即可。
對(duì)于WAVNAPAP部分的設(shè)計(jì),如圖3所示,類WAVNAP_AP是根類,作為對(duì)外的接口。圖中,DH類、ECDSA類、Prime類AES類、SHA2類都與STA部分的相同,只是針對(duì)WAVNAPAP中的ECDSA類使用的是chksign調(diào)用而非WAVNAPSTA中的mksign調(diào)用。對(duì)于AES而言,WAVNAPAP部分的AES類調(diào)用的是encrypt,用于加密PSK和ESSID等配置信息;而WAVNAPSTA部分調(diào)用的則是decrypt,用于解密PSK和ESSID等配置信息。
WAVNAPAP在完成對(duì)ESSID與PSK等配置信息的生成之后,需要及時(shí)地針對(duì)網(wǎng)卡進(jìn)行相應(yīng)的配置。應(yīng)用AP類生成配置信息與設(shè)置網(wǎng)絡(luò),該類中g(shù)en_psk調(diào)用用于生成隨機(jī)的ESSID與PSK等配置信息,而set_ap調(diào)用則生成hostapd配置文件并對(duì)hostapd服務(wù)進(jìn)行配置,其中的onconnect是STA成功連接后觸發(fā)的回調(diào)函數(shù)指針,該函數(shù)指針主要用于在STA首次連接成功后拒絕對(duì)同一個(gè)網(wǎng)段的其他連接請(qǐng)求。hostapd則用于啟動(dòng)網(wǎng)卡的軟AP模式。
由于WAVNAPAP需要處理多個(gè)用戶的認(rèn)證接入請(qǐng)求,通過數(shù)據(jù)庫(kù)進(jìn)行公鑰的管理是非常有必要的,因此設(shè)計(jì)了數(shù)據(jù)庫(kù)訪問類DB。DB主要用于建立或關(guān)閉數(shù)據(jù)庫(kù)連接并處理查詢,保證數(shù)據(jù)庫(kù)線程安全。
通過這樣的設(shè)計(jì),即可較好地實(shí)現(xiàn)基于NFC認(rèn)證的WLAN接入?yún)f(xié)議。
2.3 協(xié)議具體步驟
圖4是基于NFC認(rèn)證的WLAN接入?yún)f(xié)議的時(shí)序圖,其中STA代表用戶的WLAN設(shè)備和用戶的NFC設(shè)備。因?yàn)樘幱贜FC中的Initiator角色和密碼學(xué)中Alice的地位相同,所以用Initiator/Alice表示。STA與Initiator/Alice在同一設(shè)備上。
相應(yīng)的接受WLAN接入認(rèn)證請(qǐng)求的NFC設(shè)備處于NFC會(huì)話中的Target角色,也就是密碼學(xué)中的Bob角色,這個(gè)設(shè)備一般與AP在一個(gè)設(shè)備上,所以在圖4中命名為Target/AP/Bob。WLAN中接受STA連接的設(shè)備為AP,認(rèn)證部分有時(shí)候會(huì)交由Radius服務(wù)器進(jìn)行,一般情況下,它們是綁定在一起的,因此命名為AP/Radius。Target/AP/Bob與AP/Radius的最低要求是處在同一個(gè)不會(huì)泄密的區(qū)域內(nèi),這樣可以保證支持NFC認(rèn)證的服務(wù)器不會(huì)在與AP通信的過程中發(fā)生信息泄密。
序列圖中的時(shí)間流從上向下進(jìn)行,其中在同一個(gè)大邊框內(nèi)的可以認(rèn)為是共終端的設(shè)備,在沒有人攻破的條件下可以認(rèn)為不會(huì)發(fā)生泄密事件,也無(wú)法被竊聽;而跨越大邊框的箭頭是協(xié)議的空中通信通訊,這種跨越終端的通信通訊可以通過特制的天線因此必須通過協(xié)議加密的方式保障空中通信通訊的安全。
基于NFC認(rèn)證的WLAN接入?yún)f(xié)議從NFC接觸到獲取最終的PTK共有15步協(xié)議操作。這15步協(xié)議操作分別是:
1)用戶持設(shè)備,以Initiator角色與認(rèn)證方Target建立NFC會(huì)話,在此過程中,Target將NFCID3發(fā)送給Initiator。
2)Initiator隨機(jī)生成a、 p,依照式(1)計(jì)算A,并將A、 p發(fā)送至Target。
3)Target隨機(jī)生成b,依照式(2)計(jì)算B,并將B發(fā)送至Initiator。
4)Target與Initiator分別按照式(3)與式(4)計(jì)算各自生成K。
5)Initiator隨機(jī)生成INounce并發(fā)送至Target。
6)Target隨機(jī)生成TNounce并發(fā)送至Initiator。
7)Initiator與Target各自按照式(6)各自生成用于AES加密的256位對(duì)稱密鑰KEY。
8)Initiator用自身的私鑰PrivKey對(duì)KEY進(jìn)行簽名,生成簽名結(jié)果sig。
9)Initiator發(fā)送sig至Target。
10)Target使用用戶事先申請(qǐng)上網(wǎng)時(shí)存儲(chǔ)的公鑰PubKey,驗(yàn)證KEY的簽名sig。如果通過,則生成包含隨機(jī)的PSK與隨機(jī)的ESSID的配置信息,記作MPSK。
11)Target用KEY對(duì)第9)步生成的含配置信息的PSK進(jìn)行AES加密,生成加密數(shù)據(jù)CPSK。
12)Target將CPSK發(fā)送至Initiator,同時(shí)將用PSK所定義的配置信息配置AP/Radius,準(zhǔn)備接受用戶的接入。
13)Initiator將CPSK用KEY進(jìn)行AES解密,將得到的PSK轉(zhuǎn)交至WLAN聯(lián)網(wǎng)模塊STA。同時(shí),AP/Radius完成了配置,并成功發(fā)送出ANounce與AMac至STA。
14)STA承接AP/Radius發(fā)起的WPA/WPA2PSK第一次握手,發(fā)送SNounce與SMac。
15)STA與AP/Radius各自使用SNounce、SMac、ANounce、AMac,以及具有ESSID與PSK的MPSK按照WPA協(xié)議標(biāo)準(zhǔn)生成PTK,并完成后續(xù)的第三次與第四次握手,至此,基于NFC認(rèn)證的WLAN接入?yún)f(xié)議已全部完成。
通過上面的步驟,即可在非明文傳遞PSK的基礎(chǔ)上,實(shí)現(xiàn)WLAN的安全接入;并且PSK在傳遞過程中利用了DiffieHellman算法生成了難以攻破的NFC安全隧道,竊聽者幾乎不可能在有效時(shí)間內(nèi)完成對(duì)PSK的破解。
3 協(xié)議驗(yàn)證
在協(xié)議驗(yàn)證方面,本文從CPN仿真和實(shí)際運(yùn)行兩個(gè)方面進(jìn)行了描述。
3.1 基于NFC認(rèn)證的WLAN接入?yún)f(xié)議的仿真分析
基于NFC認(rèn)證的WLAN接入?yún)f(xié)議的仿真分析中,本文針對(duì)當(dāng)前WLAN用戶容易受到非法接入攻擊和竊聽攻擊的情況分別作了仿真分析。
為了分析基于NFC認(rèn)證的WLAN接入?yún)f(xié)議對(duì)于非法接入攻擊的抵抗能力,本文建立了圖5的CPN仿真模型。圖5中,區(qū)域E4的庫(kù)所Eve中用“0”表示攻擊者Eve的身份,區(qū)域A中的庫(kù)所Alice中用“1”表示合法用戶Alice。Eve在認(rèn)證中的每一個(gè)有可能竊聽的環(huán)節(jié)即CPN模型中的E1、E2、E3、E4區(qū)域都進(jìn)行了竊聽,竊聽發(fā)生在信息空中傳遞的過程中,即模型中的Trans Alice、 Trans AP、 Trans sig、 Trans PSK四個(gè)變遷。為了達(dá)到一次一密的效果并且避免重放攻擊。區(qū)域B中庫(kù)所AP PSK在每一次成功的認(rèn)證之后都將拒絕第二次認(rèn)證,即B區(qū)域中的Auth變遷。認(rèn)證成功的用戶將進(jìn)入Auth Pass庫(kù)所,而認(rèn)證失敗的用戶將進(jìn)入Fail庫(kù)所。
圖6所示的仿真結(jié)果表明:盡管Eve截獲了大量的數(shù)據(jù),但由于缺乏K而無(wú)法推算出AES對(duì)稱密鑰KEY,進(jìn)而無(wú)法對(duì)加密后的CPSK進(jìn)行解密,最終在Auth變遷中由于使用了錯(cuò)誤的配置信息而被拒絕,進(jìn)入了Fail狀態(tài);而合法用戶Alice因?yàn)榭梢哉_地解密出配置信息PSK,因而成功地進(jìn)入了Auth Pass狀態(tài)??梢姡贜FC認(rèn)證的WLAN接入?yún)f(xié)議對(duì)于非法接入攻擊的抵抗是有效的。
為了分析基于NFC認(rèn)證的WLAN接入?yún)f(xié)議對(duì)于竊聽攻擊的抵抗能力,本文建立了圖7的CPN仿真模型。模型中各區(qū)域代表含義與圖5一致,在待發(fā)送的數(shù)據(jù)在區(qū)域A底部的庫(kù)所Data Send中,值為9999,該值將在WLAN連接完成后進(jìn)行發(fā)送以驗(yàn)證協(xié)議對(duì)竊聽攻擊的抵抗能力。
仿真結(jié)果圖8表明,區(qū)域A與區(qū)域B通過NFC安全隧道加密傳輸了隨機(jī)生成的WLAN接入配置信息。在此過程中,Eve在E1、E2、E3區(qū)域竊聽到了NFC交互數(shù)據(jù),但無(wú)法利用這些竊聽到的交互數(shù)據(jù)反推出AES對(duì)稱密鑰,因而在Trans PSK變遷中只能截獲加密后的配置信息,無(wú)法對(duì)配置信息進(jìn)行解密。
在區(qū)域A中Alice PSK庫(kù)所得到解密后配置信息后,A區(qū)域與B區(qū)域各自通過to PTK變遷計(jì)算出一致的PTK。隨后A區(qū)域中Data Send庫(kù)所中的數(shù)據(jù)將采用該P(yáng)TK進(jìn)行加密,而B區(qū)域中也將使用該P(yáng)TK進(jìn)行解密并放入Data Recv庫(kù)所中。二者PTK一致,因而Data Recv中的最終數(shù)據(jù)將與Data Send中的原始數(shù)據(jù)相同。E4區(qū)域中Eve由于缺少PSK,因而盡管通過Trans A和Trans S兩個(gè)變遷從空中截獲了區(qū)域A與區(qū)域B互換的公開信息SNounce、ANounce、SMac、AMac,卻無(wú)法生成正確的PTK。Eve在TD變遷中同樣截獲了區(qū)域A用PTK加密的數(shù)據(jù),但由于區(qū)域E4中的PTK與區(qū)域A中的PTK不同,經(jīng)過區(qū)域E4中Eavesdropping變遷的解密后,Data Eaves庫(kù)所只能得到錯(cuò)誤的解密數(shù)據(jù),從圖8可看出,Data Eaves中的數(shù)據(jù)域Data Recv中的數(shù)據(jù)有所不同。這表明,基于NFC認(rèn)證的WLAN接入?yún)f(xié)議對(duì)于竊聽攻擊的抵抗是有效的。
同時(shí),由于每次認(rèn)證都會(huì)產(chǎn)生隨機(jī)的全新ESSID與PSK進(jìn)行配置,保證了一次一密性。由于不同的用戶間相互不清楚他人的配置信息,因而攻擊者無(wú)法依賴自身的PSK推算其他人的PSK,從而做到了用戶信道的隔離。這與Eve無(wú)法竊聽圖8中區(qū)域A與區(qū)域B的通信的原理是一樣的。因?yàn)椴煌挠脩臬@得的PSK不同,導(dǎo)致他們?cè)谄渌畔⑾嗤臈l件下計(jì)算出的PTK不同,從而抵抗了內(nèi)部人員基于相同PSK進(jìn)行的竊聽攻擊。
3.2 基于NFC認(rèn)證的WLAN接入?yún)f(xié)議的實(shí)際運(yùn)行分析
圖9是基于NFC認(rèn)證的WLAN接入?yún)f(xié)議在AP端的實(shí)現(xiàn)的WAVNAPAP運(yùn)行時(shí)的運(yùn)行效果截圖。
從圖9中可以看到,WAVNAP_AP首先要對(duì)NFC設(shè)備進(jìn)行初始化,隨后檢查了WLAN適配器的存在性,并完成了對(duì)公鑰數(shù)據(jù)庫(kù)authdb的連接,便開始等待STA/Initiator的連接。
圖10是協(xié)議在STA端的實(shí)現(xiàn)的WAVNAPSTA運(yùn)行后的運(yùn)行效果截圖。
此時(shí),WAVNAPSTA已經(jīng)可以啟動(dòng),WAVNAPSTA則需要指定進(jìn)行連接的用戶名和連接WLAN所用的設(shè)備。這些私鑰和設(shè)備的配置信息被寫在了用戶主目錄下的.wavnap.conf中,當(dāng)WAVNAPSTA啟動(dòng)后,這些信息被自動(dòng)加載以用于初始化WLAN適配器和ESDSA私鑰。配置加載完成后,WAVNAPSTA初始化NFC設(shè)備與指定的WLAN設(shè)備ra0,并讀入相應(yīng)的私鑰6524be98。初始化完成后,WAVNAPSTA提示用戶將NFC設(shè)備與AP的NFC認(rèn)證設(shè)備authpad進(jìn)行接觸。
在NFC接觸發(fā)生后,NFC連接被迅速建立,STA獲取到了AP的NFCID3。隨后,Initiator發(fā)送DiffieHellman算法所需的p與A,Target接收后發(fā)送了B。隨后雙方根據(jù)此次交換各自計(jì)算出了DiffieHellman算法的秘密會(huì)話種子K,成功地建立了DiffieHellman安全隧道。
隨后,Initiator發(fā)送了INounce,Target收到后回復(fù)了TNounce。依賴于K、INounce和TNounce,雙方各自計(jì)算出了256位的AES對(duì)稱密鑰KEY。
Initiator使用自己的私鑰對(duì)AES對(duì)稱密鑰進(jìn)行了簽名,并將簽名進(jìn)行了發(fā)送。Target收到了簽名后,依照用戶名(即私鑰指紋)從數(shù)據(jù)庫(kù)authdb中獲取了對(duì)應(yīng)的公鑰信息,并利用該公鑰信息對(duì)簽名進(jìn)行了驗(yàn)證。
驗(yàn)證通過后,WAVNAPAP生成了隨機(jī)的ESSID與PSK并用這兩項(xiàng)信息配置了hostapd.conf,隨后利用該配置文件在wlan0上啟動(dòng)了hostapd。此時(shí),AP已經(jīng)可以接受STA的WLAN連接。
隨后,WAVNAPAP將加密后的ESSID與PSK發(fā)送至WAVNAPSTA。WAVNAPSTA進(jìn)行了相應(yīng)的解密,成功的獲取了ESSID與PSK。此時(shí),基于NFC認(rèn)證的WLAN接入?yún)f(xié)議在NFC設(shè)備上的交互已經(jīng)全部結(jié)束,可以隨時(shí)將用戶的NFC設(shè)備移開,AP端出現(xiàn)了認(rèn)證與授權(quán)結(jié)束的字樣。WAVNAPSTA利用解密出的配置信息并啟動(dòng)了wpa_supplicant工具。
在WAVNAPSTA啟動(dòng)wpa_supplicant之后,WAVNAPAP顯示STA已連接,同時(shí)WAVNAPSTA也顯示用戶已經(jīng)可以將NFC設(shè)備移開了。
在用戶移開NFC設(shè)備之后,雙方顯示NFC會(huì)話中斷,WAVNAPSTA程序結(jié)束,而WAVNAPAP則進(jìn)入了新一輪循環(huán),等待下一個(gè)NFC認(rèn)證請(qǐng)求。
此時(shí),盡管基于NFC認(rèn)證的WLAN接入?yún)f(xié)議已經(jīng)結(jié)束,但基于WPA體制的WLAN連接卻已經(jīng)建立,后續(xù)的網(wǎng)絡(luò)通信不再需要該協(xié)議進(jìn)行維護(hù)。只有在用戶斷開WLAN連接之后,才需要重新刷NFC設(shè)備以再次建立WLAN連接。
4 結(jié)語(yǔ)
針對(duì)基于NFC認(rèn)證的WLAN接入?yún)f(xié)議安全性的分析,本文采用DiffieHellman密鑰交換算法與第二代SHA建立基于NFC協(xié)議棧的安全隧道來完成隨機(jī)信息的交換,采用橢圓曲線數(shù)字簽名算法消除用戶接入匿名性的問題,并從協(xié)議需求分析、架構(gòu)設(shè)計(jì)與協(xié)議時(shí)序步驟三個(gè)方面入手,給出了一個(gè)計(jì)算機(jī)上的原型實(shí)現(xiàn)。通過CPN建模,實(shí)驗(yàn)結(jié)果表明:基于NFC認(rèn)證的WLAN接入?yún)f(xié)議對(duì)于無(wú)線局域網(wǎng)的非法接入攻擊與竊聽攻擊有著良好的抵抗效果;協(xié)議本身也可以抵抗針對(duì)近場(chǎng)通信的竊聽攻擊、數(shù)據(jù)篡改攻擊、重放攻擊和中間人攻擊。
參考文獻(xiàn):
[1]李興華, 尚昭輝, 楊丹, 等.利用無(wú)線物理層密鑰增強(qiáng)802.11i的安全性[J].江蘇大學(xué)學(xué)報(bào)(自然科學(xué)版), 2013, 34(4):416-421.(LI X H, SHANG Z H, YANG D, et al. Security enhancement of 802.11i by wireless physical layer key[J]. Journal of Jiangsu University (Natural Science Edition), 2013, 34(4):416-421.)
[2]陳卓, 金豪, 張正文.一種無(wú)線局域網(wǎng)多安全域間的密鑰共識(shí)協(xié)議[J].計(jì)算機(jī)應(yīng)用, 2006, 26(9): 2121-2123.(CHEN Z, JING H, ZHANG Z W. Multidomain key agreement protocol for WLAN[J]. Journal of Computer Applications, 2006, 26(9): 2121-2123.)
[3]豐江帆, 王倩, 劉兆宏.無(wú)線局域網(wǎng)環(huán)境下的圖書館定位系統(tǒng)研究與實(shí)現(xiàn)[J].現(xiàn)代圖書情報(bào)技術(shù), 2012(4):79-83.(FENG J F, WANG Q, LIU Z H. Research and implement of library positioning system in wireless LAN environment[J]. New Technology of Library and Information Service, 2012(4):79-83.)
[4]李勤, 張浩軍, 楊峰, 等. 無(wú)線局域網(wǎng)安全協(xié)議的研究和實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用, 2005, 25(1): 160-162.(LIN Q, ZHANG H J, YANG F, et al. Study and implementation of security protocols for wireless local network[J]. Journal of Computer Applications, 2005, 25(1): 160-162.)
[5]劉永磊, 金志剛.無(wú)線局域網(wǎng)WPS安全性分析[J].計(jì)算機(jī)工程與應(yīng)用, 2013, 49(21):87-89.(LIU Y L, JIN Z G. Analysis of WPS security in WLAN[J]. Computer Engineering and Applications, 2013, 49(21):87-89.)
[6]劉安, 金志剛, 王穎.MACH:針對(duì)WLAN中WPS認(rèn)證高速攻擊方案[J].計(jì)算機(jī)應(yīng)用研究, 2014, 31(8):2488-2496.(LIU A, JIN Z G, WANG Y. MACH: hightspeed cracking scheme to WPS authentication mechanism if WLAN[J]. Application Research of Computers, 2014, 31(8):2488-2496.)
[7]吳國(guó)鳳, 胡德啟, 王培東.RC4算法引起的WEP協(xié)議安全性的研究與改進(jìn)[J].合肥工業(yè)大學(xué)學(xué)報(bào), 2012, 35(5):617-620.(WU G F, HU D Q, WANG P D. Research and improvement in the security of WEP protocol based on RC4 algorithm[J]. Journal of Hefei University of Technology, 2012, 35(5):617-620.)
[8]劉永磊, 金志剛, 陳喆, 等.wpa/wpa2psk高速暴力破解器的設(shè)計(jì)和實(shí)現(xiàn)[J].計(jì)算機(jī)工程, 2011, 37(10):125-127.(LIU Y L, JIN Z G, CHEN Z, et al. Design and implementation of highspeed brute forcer for wap/wap2psk[J]. Computer Engineering, 2011, 37(10):125-127.)
[9]周超, 周城, 郭亮.IEEE 802.1X的安全性分析及改進(jìn)[J].計(jì)算機(jī)應(yīng)用, 2011, 31(5): 1265-1270.(ZHOU C, ZHOU C, GUO L. Security analysis and improvement of IEEE 802.1X[J]. Journal of Computer Applications, 2011, 31(5): 1265-1270.)
[10]王鵑, 唐西銘, 王勇, 等.一種基于手機(jī)令牌和NFC技術(shù)的身份認(rèn)證系統(tǒng)[J].武漢大學(xué)學(xué)報(bào)(理學(xué)版), 2013, 59(5):403-410.(WANG J, TANG X M, WANG Y, et al. An identity authentication system based on mobiletoken and NFC technology[J]. Journal of Wuhan University (Natural Science Edition), 2013, 59(5):403-410.)
[11]孫權(quán).一種基于NFC的安全非接觸式跨行取款系統(tǒng)[J].計(jì)算機(jī)應(yīng)用與軟件, 2015, 32(8):76-79.(SUN Q. A secure contactless crossbank ATM withdrawals system based on NFC[J]. Computer Applications and Software, 2015, 32(8):76-79.)
[12]ECMA. Near field communication — interface and protocol (NFCIP1): ECMA 340-2004 [S]. 2nd ed. [S. l.]:ECMA, 2004.
[13]HASELSTEINER E, BREITFUB K. Security in Near Field Communication (NFC)[EB/OL].[20101010].