趙 敏,江凌云,李占軍
(1.南京郵電大學 通信與信息工程學院,江蘇 南京 210000;2.國家電網遼寧省電力有限公司,遼寧 沈陽 110006)
基于自簽名隱式證書的認證密鑰協商協議研究
趙 敏1,江凌云1,李占軍2
(1.南京郵電大學 通信與信息工程學院,江蘇 南京 210000;2.國家電網遼寧省電力有限公司,遼寧 沈陽 110006)
用戶的身份認證和數據的保密傳輸是物聯網信息安全中最基本的需求,而物聯網中的終端設備一般呈分布式設置,大多數設備無人值守,因此需要有一個端到端的安全機制來保護物聯網中的信息傳輸;物聯網終端受帶寬、計算能力和內存等限制,無法部署開銷太大的安全協議。為了解決上述問題,提出并設計了一種基于ECQV(Elliptic Curve Qu-Vanstone)自簽名隱式證書的認證密鑰協商協議,主要基于ECQV自簽名隱式證書生成機制和公鑰提取機制,可完成感知節點和用戶之間的相互認證及安全傳輸通道的建立,占用內存小,認證效率高。以C語言編寫的雙向認證密鑰協商協議基于Contiki操作系統在WiSMote節點上接受了實驗驗證和評估分析。實驗結果表明,由于ECQV證書比傳統證書所需要的數據量小,故減少了帶寬的占用,且時間和能量消耗也有降低,效率大幅提升。所設計的協議完全可以部署在資源限制型物聯網上,且具有良好的安全性。
物聯網;ECQV;隱式證書;安全性
物聯網(Internet of Things,IoT)致力于實現人物互連、物物互連。盡管IoT的概念和一些應用對大眾來說已不再陌生,但是物聯網安全目前還處于研究的初級階段。無線傳感網(Wireless Sensor Network,WSN)是物聯網中一個很重要的技術領域,在物聯網環境中,WSN架構可分為集中式和分布式[1]。分布式網絡的特點是設備分散化,這就需要安全管理身份信息,并驗證連接用戶的身份。在大多數物聯網應用中,多個實體(比如感知節點、服務提供商和消息處理者)應通過彼此認證來首先建立一個受信任的網絡,后續節點在成功完成身份驗證后才可加入網絡。設計這樣的認證協議,不僅要能抵抗惡意攻擊[2],還應該能在無線傳感網中低性能的節點上輕量化部署。
為了解決物聯網中的設備認證和數據加密傳輸問題,到目前為止學者們已經做出了大量研究[3]。提出的協議有:主機標識協議(Host Identity Protocol,HIP)[4],基于輕量級主機交換協議的、用于主機和用戶之間的認證協議[5],Smart協議[6]—基于雙線性配對的身份基密鑰協商協議。
對于處理能力不足的物聯網節點來說,通常使用的X.509證書和RSA公鑰產生的開銷太大,于是文獻[7]中提出了基于橢圓曲線(Elliptic Curve Cryptography,ECC)算法的隱式證書,使得引入限制型網絡的開銷減少。該隱式證書可以用于分布式IoT的一般認證機制中。
因此,基于ECQV(Elliptic Curve Qu-Vanstone)自簽名隱式證書機制設計了一種雙向認證密鑰協商協議,該ECQV隱式證書的生成基于ECC算法,它的證書更小,計算速度更快,可以顯著提高認證效率[8]。傳統證書中,公鑰和數字簽名是分開的,而在ECQV自簽名隱式證書中,數字簽名是嵌入到公鑰中的,這也是“自簽名”的含義,接收方可以從中提取公鑰來驗證其身份。由于邊緣節點和終端用戶在相互認證時使用的是隱式證書,所以該協議也是輕量級的,最終實現了這個機制,并且在資源限制的感知節點上進行了性能測試和安全分析。
圖1為所提認證密鑰協商機制的網絡架構,這里的終端用戶可以與不同的感知節點通信,來獲得特定的數據或服務。WSN中可能包括不同類型的感知節點,終端用戶可以是人,也可以是虛擬實體。
如圖1所示,雙向認證和數據保護一般發生在以下三種通信場景中:
(1)Link A:同一WSN內的兩個感知節點之間;
(2)Link B:不同WSNs內的兩個感知節點之間;
(3)Link C:一個終端用戶和一個感知節點之間。
在兩個網絡實體開始相互認證之前,有必要首先對每個通信端進行注冊,目的是將在認證階段使用的加密證書分發給各個通信端,這樣才能保證兩個實體可以成功完成相互認證。可見,每個末梢節點和終端用戶必須在注冊階段就獲得加密證書(比如,密碼套件和隱式證書),加密證書的來源是可信的第三方,如證書管理中心(Certificate Authority,CA),它是一個資源豐富的服務器。假設CA可以識別網絡實體身份的合法性,也可以與網絡實體通信。如圖1所示,網絡實體首先通過互聯網云與CA通信;之后,末梢節點和終端用戶可以相互認證并建立安全的通信信道。低層通信的安全性要依靠其他安全機制,這里不做贅述。

圖1 認證密鑰協商機制應用的網絡場景
協議中的隱式證書機制使用在以下三個實體中:證書中心CA、證書請求者U和證書處理者V。證書請求者U從CA獲取一個隱式證書,該證書可以證明U的身份,該過程稱為ECQV自簽名隱式證書生成機制;并且V可以從隱式證書中提取U的公鑰,該過程稱為公鑰提取機制[9]。
使用到的符號如表1所示。

表1 認證密鑰協商協議中使用的符號及含義
橢圓曲線的域參數包含q,a,b,G和n。q代表有限域Fq;變量a和b是橢圓曲線y2=x3+ax+b的系數,這里4a3+27b2≠0;G是基點發生器[10]。首先由CA生成一條橢圓曲線,并選擇基點G,滿足它的階是整數n。
雙向認證機制包含兩個階段:注冊階段和認證階段。注冊階段,網絡實體從可信第三方獲取加密證書;認證階段,使用該加密證書建立兩個網絡實體之間的安全通信。
2.1 注冊階段
圖2為協議的流程圖,圖中的未加框文字代表實體要完成的動作,加框的文字代表使用到的變量和相關公式。圖2(a)為注冊階段的協議流程圖,末梢節點(如感知節點)和終端用戶從CA請求安全材料和證書。只有證書請求者的身份得到確認后,CA才發行隱式證書[11]。證書請求者(節點U)可以是感知節點,也可以是終端用戶。
注冊階段的信息傳遞與處理過程如下:
(1)握手的一開始由證書請求者發送一個Requestor Hello消息、節點身份(U)和密碼套件。
假定密碼套件是嵌入到感知節點中的,并且在部署階段或授予網絡接入權利階段對終端用戶是已知的。密碼套件包含請求者一端可用的密碼選項,比如EC參數、MAC的消息認證密鑰(K)、哈希函數(H)和分組加密的AES密鑰大小。例如,CERT_ECC160_K1_SHA1_AES128代表160bitEC曲線,K1是消息認證密鑰,使用SHA1和128bitAES。
(2)CA使用證書請求者的身份信息來驗證其合法性,當驗證成功后,CA從發來的密碼套件選項中選擇一個,并將CAHello消息連同它的公鑰QCA發送給證書請求者,該消息不受保護。
(3)接收到CAHello消息后,證書請求者生成一個證書請求(RU)和一個隨機數(NU),rU作為臨時私鑰,計算它們的消息認證碼(MAC)值并將CertificateRequest消息一并發送給CA。隨機數和MAC值分別用來保證消息的新鮮性和完整性。
(4)CA首先確認MAC值來鑒定請求消息的完整性,然后計算隱式證書(CertU)和用于計算私鑰的整數(s),該過程即ECQV自簽名隱式證書生成機制。計算過程如下:
根據證書請求者U的臨時私鑰rU計算出臨時公鑰GU=rUG;
計算CA自己的臨時密鑰對(d,Q),其中d是臨時私鑰,Q是臨時公鑰,滿足Q=dG;
計算公鑰重建值BU=Q+GU;
構造U的證書信息IU(比如身份和其他有效性信息);
構造隱式證書CertU,包含BU和IU;
計算s=ed+dCA(modn),其中dCA是CA的私鑰,e=Hash(CertU)。
CA發送Certificate消息和隨機數(NCA)與MAC值,Certificate消息中包含隱式證書CertU和s。

(a)注冊階段

(b)認證階段
(5)證書請求者接收到Certificate消息后確認MAC值,然后計算它自己的私鑰(dU)與公鑰(QU),即ECQV公鑰提取機制。計算過程如下:
從CertU消息中解析出BU和IU,并且確認其有效性;
計算e=Hash(CertU),并確認e≠0;
計算U的私鑰dU=erU+s(modn);
計算U的公鑰QU=eBU+QCA。
其他節點(比如V)也可以通過同樣的方法從U的隱式證書CertU中計算出U的公鑰QU。
證書請求者發送Finished消息,包含用公鑰QU加密之前握手消息的加密消息摘要。
(6)根據用于計算密鑰的EC數學算法,CA可以計算出QU,并用它來加密之前的消息,生成Finished消息并發送,注冊階段的握手便完成了。
2.2 認證階段
在認證階段,一個感知節點或終端用戶作為客戶端,另一感知節點作為服務器端,如圖2(b)所示,這里考慮的是客戶端節點U和服務器端節點V之間的認證過程。
認證階段的信息傳遞與處理過程如下:
(1)客戶端首先向服務器端發送Client Hello消息、密碼套件選項和身份信息(U),客戶端的隱式證書由密碼套件組成。
(2)如果服務器端獲得的證書與客戶端所給的密碼套件相匹配,服務器端將選擇一個密碼套件,并回應Server Hello消息和身份消息。否則,服務器端將發送End消息和它的密碼套件選項來結束此次握手,客戶端只能重新獲取新的證書,并從頭開始握手過程。
(3)接收到Server Hello消息后,客戶端發送它的證書信息、加密隨機數和MAC值。
(4)如果MAC值驗證成功,服務器端用接收到的證書(CertU)和CA的公鑰(QCA)來計算客戶端的公鑰(QU);用它的私鑰dV和客戶端的公鑰QU計算雙方的共用密鑰KUV=dVQU。服務器端發送它的證書CertV、隨機數NV和MAC值。
(5)客戶端作相似的處理。
最后交換Finished消息,包含用共用密鑰KUV加密的原握手消息。
在六個握手消息傳輸完成后,兩個節點便可以驗證彼此的身份,并建立一個共用的密鑰和一條安全通信鏈路,可以用于保護客戶端和服務器端數據交換的安全。
雙向認證密鑰協商協議用C語言編寫,運行在Contiki[12]操作系統上;部署在WiSMote[13]感知節點上,WiSMote硬件平臺的配置有:MSP430 5-系列微控制器;128/16kB的ROM/RAM;1個IEEE802.15.4 (CC2520)收發器;光照、溫度傳感器。
利用開源軟件OpenSSL在Linux下創建了一個簡單的CA認證中心,來為服務器端和客戶端頒發數字證書。
在物聯網的感知層WSN中,源節點到目的節點之間的典型路徑是由多跳組成的,該路徑上的中間節點充當轉發節點,因此,WSN中的任何無線設備節點都可以同時作為無線訪問接入點和路由器。性能評估實驗的網絡結構圖可參見圖1。
對所提出的認證密鑰協商協議的性能和安全性做出分析,并證明該解決方法可以部署在分布式IoT應用中的資源限制型設備上。
文獻[14]比較了隱式證書與傳統證書在相同安全級別時的公鑰、證書長度。比如,在安全級別是192時,RSA的證書大小為15 360bit加上身份信息數據,而ECQV隱式證書的大小為385bit加上身份信息數據。可見,隱式證書在傳輸過程中可以減少帶寬占用,而且安全級別越高,這種優勢越明顯,所以更適合傳感器網絡等資源受限環境。
4.1 內存占用
使用MSP430工具鏈中的msp430-size和msp430-objdump工具分析RAM和ROM的消耗情況,如表2所示,內存占用值按每個通信節點的兩個階段來分別列出。

表2 內存占用測量值
由表2可見,一個WiSMote感知節點在整個認證協議中消耗約2 983字節RAM和23 393字節ROM,仍然低于WiSMote節點提供的16 kB RAM和128 kB ROM。雖然CA操作消耗的內存更大,但CA是資源豐富的設備,不受資源局限。
4.2 時間與能量消耗
由于傳輸時間依賴于網絡的規模和兩個節點之間的距離,所以表3只列出了邊緣節點或CA某些特定操作的執行時間。
能量消耗的計算公式為V*I*t,其中V=3V是WiSMote節點上的電壓,I=1.8mA是電流,t是操作的執行時間。
由表3可知,注冊階段證書請求者消耗的時間是8 286ms,CA消耗10 893ms;認證階段每個節點消耗8 396ms。一個WiSMote節點在注冊階段和認證階段消耗的能量分別是43.71mJ和46.12mJ。
所以,實驗結果表明使用更加優化的ECC操作可以減少時間、能量和內存消耗,所提的機制可以很容易部署在低能量低性能的設備上。而且,在該雙向認證協議中,隱式證書作為160位EC點來使用,因此證書的長度僅為44字節。使用優化設計的EC曲線可以減小證書長度,未來使用壓縮技術也可以減小整個消息的長度。

表3 特定操作的時間消耗和能量消耗值
4.3 安全性分析
所提端到端認證密鑰協商協議基于ECQV隱式證書,而該隱式證書使用的是ECC算法,這為協議的設計帶來了很大的好處:它提供與RSA相同的安全性,而且開銷更小(比如,160 bit的ECC與1 024密鑰長度的RSA的安全性等同),具有可靠的安全性。
在分布式物聯網中很容易遇到DoS攻擊。在方案的注冊階段,第一個Hello消息中包含證書請求者的身份信息,這個身份信息經過CA的鑒定。如果非法請求者嘗試接入,CA可以在身份驗證的一開始就識別出來,保護網絡免受DoS攻擊。而且,在認證階段,僅在成功交換Hello消息后才交換加密證書,這也可以避免DoS攻擊。另外,隨后傳送的消息都包含MAC,這也可以避免由入侵者和DoS攻擊導致的非法信息交換,并且MAC中的通用密鑰K可以保證數據完整性,隨機數用于保證握手期間的消息新鮮性。
根據以上的性能與安全性分析可以看出,所提的認證密鑰協商協議可以很容易地部署在資源限制型設備上,并且具有較高程度的安全保護。因為該協議是基于標準ECC操作的,而所有感知節點都支持ECC算法,所以不論感知節點的生產商是否一樣,都可以部署該協議。
為了解決物聯網環境中用戶認證和數據傳輸的不安全性,提出并分析了一種適用于分布式物聯網的認證密鑰協商協議,可以很容易地部署在資源限制型節點上,且具有較高的安全性。實驗結果表明,該認證協議可以部署在WSNs中的低性能資源限制型網絡設備上,并且可以抵抗DoS等攻擊。
[1]GubbiJ,BuyyaR,MarusicS,etal.InternetofThings(IoT):avision,architecturalelements,andfuturedirections[J].FutureGenerationComputerSystems,2013,29(7):1645-1660.
[2]RomanR,ZhouJ,LopezJ.Onthefeaturesandchallengesofsecurityandprivacyindistributedinternetofthings[J].ComputerNetworks,2013,57(10):2266-2279.
[3]HuW,TanH,CorkeP,etal.Towardtrustedwirelesssensornetworks[J].ACMTransactionsonSensorNetworks,2010,7(1):2019-2021.
[4]GurtovA,KomuM,MoskowitzR.HostIdentityProtocol(HIP):identifier/locatorsplitforhostmobilityandmultihoming[J].InternetProtocolJournal,2009,12(1):27-32.
[5]PellikkaJ,FaiglZ,GurtovA.LightweighthostanduserauthenticationprotocolforAll-IPtelecomnetworks[C]//Proceedingsof3rdIEEEworkshopondatasecurityandprivacyinwirelessnetworks.[s.l.]:IEEE,2012.
[6]SmartNP.AnidentitybasedauthenticatedkeyagreementprotocolbasedontheWeilpariring[J].ElectronicsLetters,2002,38(13):630-632.
[7]KotzanikolaouP,MagkosE.Hybridkeyestablishmentformultiphaseself-organizedsensornetworks[C]//Proceedingsofthe6thIEEEinternationalsymposiumonaworldofwirelessmobileandmultimedianetworks.[s.l.]:IEEE,2005:581-587.
[8]PorambageP,KumarP,SchmittC,etal.Certificatebasedpairwisekeyestablishmentprotocolforwirelesssensornetworks[C]//ProceedingsofIEEE16thinternationalconferenceoncomputationalscienceandengineering.[s.l.]:IEEE,2013:667-674.
[9]SEC4:EllipticCurveQu-Vanstoneimplicitcertificatescheme(ECQV),version1.0.[EB/OL].2013.http://www.secg.org/sec4-1.0.pdf.
[10]HankersonD,VanstoneS,MenezesAJ.Guidetoellipticcurvecryptography[M].[s.l.]:Springer,2004.
[11]PorambageP,SchmittC,KumarP,etal.Two-phaseauthenticationprotocolforwirelesssensornetworksindistributedIoTapplications[C]//2014IEEEwirelesscommunicationsandnetworkingconference.[s.l.]:IEEE,2014:2728-2733.
[12]DunkelsA,Gr?nvallB,VoigtT.Contiki-alightweightandflexibleoperatingsystemfortinynetworkedsensors[C]//IEEEinternationalconferenceonlocalcomputernetworks.[s.l.]:IEEE,2004:455-462.
[13]LCISandAragosystems.WiSMotesensornode[EB/OL].2013.http://wismote.org/lib/exe/detail.php?id=start&media=wismote_small.png.
[14] 顧海華.隱式認證在移動設備中的應用[J].中國集成電路,2010,19(11):54-56.
Research on Authenticated Secret Key Agreement Protocol withSelf-signed Implicit Certificate
ZHAO Min1,JIANG Ling-yun1,LI Zhan-jun2
(1.School of Communication and Information Engineering,Nanjing University of Posts and Telecommunications,Nanjing 210000,China;2.State Grid Liaoning Electricity Power Company,Shenyang 110006,China)
As well known,among all the information security requirements in Internet of Things (IoT) network,user authentication and data transmission confidentiality both are the most essential.However,edge devices in IoT are commonly distributed,and most of them are unattended,so it has become pressing to create an end-to-end security mechanism to secure the information transmission in IoT.Considering the confinations of devices in IoT network are bandwidth,computing power and memory limit,the IoT nodes cannot support heavy security protocol.In order to solve the above problems,a new authenticated key agreement protocol based on ECQV (Elliptic Curve Qu-Vanstone) self-signed implicit certificate has been introduced,which is based primarily on ECQV self-signed certificate generation scheme and ECQV self-signed implicit certificate public key extraction scheme and can perform mutual authentication between the user and node,with smaller footprint and higher authenticate efficiency.This proposed protocol programmed with C language run by Contiki operation system has been tested and evaluated with WiSMote nodes.Experiment results show that the ECQV certificate is smaller than traditional certificate,and thus the system bandwidth has been reduced as well as the time and energy consumption.In general the proposed protocol can be deployed on resource-constrained devices in IoT,and with better secure performance.
Internet of Thing;ECQV;implicit certificate;security
2016-06-16
2016-09-28 網絡出版時間:2017-03-13
國家自然科學基金資助項目(61271237)
趙 敏(1991-),女,碩士,研究方向為網絡與應用技術、物聯網安全;江凌云,副教授,研究方向為下一代網絡技術。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170313.1547.100.html
TP393
A
1673-629X(2017)05-0128-05
10.3969/j.issn.1673-629X.2017.05.027