馬媛媛,劉周斌 ,汪自翔
1.全球能源互聯網研究院 信息通信研究所,南京 210000
2.信息網絡安全國網重點實驗室,南京 210000
3.國網浙江省電力有限公司 雙創中心,杭州 310000
4.國網浙江省電力有限公司 電力科學研究院,杭州 310000
在過去十年中,云計算[1-2]通過為客戶提供一系列計算服務,為企業提供了許多機會。“隨用隨付”云計算模式成為擁有和管理面向Web 應用程序和批處理的客戶的私有數據中心的有效替代方案。云計算使企業及其最終用戶免于許多細節的規范,例如存儲資源、計算限制和網絡通信成本,但是無法滿足延遲敏感的應用程序要求附近的節點滿足其延遲的要求。當物聯網的技術和設備越來越多地涉及人們的生活,數百萬這樣的設備獲得服務時,當前的云計算架構很難滿足他們對移動性支持、位置感知和低延遲的要求。
邊緣計算層[3-4]是終端用戶(網絡邊緣)和云之間的一層中間層,可以使網絡空間中遠離邊緣計算的云服務有更廣泛的范圍內。在邊緣計算中,服務可以依托在終端設備上。這種新的多層分布式計算的基礎設施允許應用程序盡可能接近地運行,以感知來自人們的操作和大量數據。云計算和邊緣計算都為邊緣計算提供數據、計算、存儲和應用服務。然而,邊緣計算與終端用戶更加接近,人們通常通過密集的地理分布和對移動性的支持將其與云計算區分開來。邊緣計算節點服務器部署在移動用戶的本地區域中,例如商場、公交總站和公園等,通常以分布式的結構分布,有著廣泛的應用。
邊緣計算節點服務器(中間網絡組件)可確保云計算和邊緣計算中相應移動用戶之間的連接。移動用戶可以在邊緣計算節點的架構中從邊緣計算節點服務器提供的服務中獲利,不再需要通過云搜索,因此他們可以享受高速的本地連接。在設計邊緣計算系統時需要特別注意在邊緣計算層和終端設備層中的安全問題。身份驗證是安全防范中必須考慮的基本問題,它可以避免虛假邊緣計算節點/服務器假裝成合法節點。邊緣計算節點通常缺少身份驗證服務[5],虛假邊緣計算節點/服務器將假裝是合法的邊緣計算節點/服務器以供邊緣計算用戶連接。連接成功后,攻擊者可以操縱來自終端用戶或云用戶的傳入和傳出請求,隱秘地收集或篡改用戶數據,并輕松地發起進一步的攻擊。因此虛假邊緣計算節點或服務器的存在對用戶數據安全和隱私構成嚴重威脅。
在一些相關文獻中,已經有學者針對云環境和移動云計算MCC提出了各種認證技術[6-10]。大多數傳統的認證方案不適用于移動設備,所以一些學者將ECC 用于其有限的計算資源中。基于橢圓曲線密碼系統(ECC)的遠程認證方案已經用于云互聯網和遠程設備。例如,Chen 等人提出了一種基于身份的遠程相互認證方案,該方案具有針對ECC 上的遠程設備的密鑰協商方案。另有學者通過使用雙線性配對為MCC服務提出了一種有效的隱私感知認證PAA方案。在文獻[11]中,相關學者使用雙線性配對密碼系統和安全硬件,如智能卡、生成器來加強分布式移動云計算中用戶的認證。其他的相關工作在文獻[7-9]中也有提及,包括遠程云用戶-服務器認證框架中的匿名性,其中用戶和服務器的相互認證并建立會話密鑰而不在公共信道上公開用戶的原始身份。這些解決方案考慮了云用戶-服務器相互認證的遠程問題,但沒有考慮中間層霧計算。
在云霧系統中保留用戶身份至關重要,以防止泄露邊緣計算用戶的某些個人敏感數據。然而,在文獻[12]中Ibrahim 的方案為端-邊緣-云網絡架構提供了安全有效的相互認證方案,但并不能保護用戶的匿名性。在相互認證階段,霧用戶的身份通過公共信道公開傳輸。在文獻[13]中,Jebri 等人設計了一個安全通用模型,以確保物聯網和無線傳感器網絡WSN中節點之間的匿名通信。該模型通過使用基于偽名加密(PBC)機制的虛擬ID來解決身份公開的問題。
在本文中,以“端-邊緣-云”為整體的網絡架構,側重邊緣計算的場景,提出邊緣計算場景下多級匿名接入認證的通信方案。本文的解決方案在于引入邊緣用戶進行接入認證時可以多級匿名的認證方案,其中邊緣用戶和邊緣計算服務器相互認證并建立會話密鑰而不泄露用戶的真實身份。此外,只要邊緣用戶想要在相同的計算環境中從一個服務器移動到另一個服務器,就可以確保輕量級認證,移動的過程中不必移動身份驗證的服務器。
常見的加密算法分為對稱加密算法和非對稱加密算法。對稱加密算法是一種傳統的加密算法,消息的發送方使用對稱的加解密密鑰和加密算法對明文進行處理,將明文變成復雜的加密密文再發送出去[14]。接收方接收到加密密文后,使用相同的加密密鑰和同一種加密算法的逆算法對密文進行解密,才能得到想要的明文數據。在對稱加密算法中,數據的發送方和接收方使用相同的密鑰對要發送的明文進行加解密,所以對稱加密算法要求數據的接收方事先知道加密密鑰。常見的對稱加密算法主要有DES 算法、3DES 算法、TDEA 算法、RC5算法、Blowfish算法和IDEA算法等。
1976年Diffie W和Hellman M的文章“New Direction in Cryptography”提出了一個新的概念:非對稱密碼體制即公開密鑰密碼體制。這一概念使得密碼學研究有了新的方向[15]。作為一種新的密鑰保密方法,非對稱加密算法需要兩個不同的密鑰,分別是公開密鑰(publickey)和私有密鑰(privatekey)。若使用私有密鑰對數據進行加密,則只有相對應的公開密鑰才能解密該數據;若使用公開密鑰對數據加密,只有相對應的私有密鑰才能解密該數據。由于非對稱加密的加密解密過程復雜,使得其速度遠遠慢于對稱加密。常見的非對稱加密算法主要有RSA、Elgamal 算法、Rabin 算法和ECC(橢圓曲線加密算法),其中Elgamal和RSA算法的使用最為廣泛。
1984 年Shamir 提出身份標識密碼技術(Identity-Based Cryptograph,IBC)。IBC是一種基于標識的非對稱加密的公鑰密碼體系[16]。IBC體系是PKI密碼體系的最新發展,它除了保留有PKI 的技術優點外,主要解決了在具體安全應用中PKI 需要大量交換數字證書的問題,使安全應用更加易于部署和使用。其最主要特點是系統中不再需要數字證書的存在,取而代之的是使用用戶的身份標識作為加密的公鑰,如姓名、IP地址、電子郵箱地址、手機號碼。用戶的私鑰則是由密鑰生成中心(Key Generate Center,KGC)根據系統主密鑰和用戶的身份標識計算得出。用戶的公鑰由用戶唯一的身份標識來確定,從而不需要第三方來保證公鑰的真實性。但IBC體系概念剛被提出時,只停留在思想層面的理論階段,并未出現具體的實施方案。之后IBC體系又經歷了近20多年的實現論證。
本文結合邊緣計算“云-邊-端”三層體系結構,提出了一個輕量級的邊緣計算場景下終端匿名安全通信方案,本文方案包含了終端設備的接入認證以及傳輸數據的安全性校驗,下面就認證方案進行詳細闡述。
通過在邊緣計算終端設備和云之間引入中間層來擴展基于云的互聯網架構,旨在幫助用戶實現從云到邊緣的平滑、低延遲的服務交付,因此產生了三層“云-邊-端”的體系架構。云層的云服務器由云服務提供商(CSP)提供,這是一個被稱為云的注冊中心的特殊服務器,負責將云用戶注冊到云層,并且邊緣計算里一些邊緣用戶由這個特定的云服務器管理。因此,如圖1所示,在注冊中心的權限下有幾個位置,對于這其中的每個位置,有一組邊緣計算服務器/節點,ES={ES1,ES2,…,ESn}。ES直接與終端設備通信EU={EU1,EU2,…},在其位置使用現成的無線接口通過單跳無線連接,如WiFi、Zigbee,甚至藍牙。借助邊緣計算網關和預先緩存的內容,這些節點可以獨立地為終端設備提供預定義的服務應用程序,而無需云或Internet 的幫助。另一方面,一個邊緣計算節點ES可以連接到云,以便于使用云的豐富功能和應用工具。

圖1 邊緣計算網絡模型
邊緣計算節點的動態連接和離開。與云服務器不同,邊緣計算服務器/節點在加入和離開時是動態的。不同地方的服務器(例如小區、公交站、電表等)可能是在任何時候添加到(或從中移除)邊緣側,這是時常會發生。這些新添加的服務器提供的服務仍必須可供注冊用戶使用。必須從邊緣計算用戶的角度以有效的方式處理邊緣計算節點的這個屬性。邊緣計算的這種動態變化必須對邊緣計算終端設備透明,即邊緣計算終端設備仍然必須能夠與新加入的邊緣計算節點進行相互認證,與此同時邊緣計算終端設備無需重新注冊任何參數,也不增加終端的復雜性。
一個邊緣計算場景下的多級匿名接入認證方案包含3 個支持概率多項式時間的算法,為了便于描述,首先對本方案中涉及的符合進行說明,如表1所示。

表1 方案中涉及符號的含義
3.2.1 初始化階段
初始化算法由云平臺執行,通過輸入λ比特長度的安全參數,算法輸出公共參數PP,公共參數由方案中的所有參與實體間共享,具體包含如下步驟:
(1)云平臺的注冊中心通過λ比特長度的安全參數選取階為q的循環群G和大整數群Zq?,群的生成元為g,選取不同的Hash函數,H0:G×G→Zq?。
(2)隨機選取兩個安全參數n和k,從群中計算生成兩個長度為n/k位的兩個素數p和m,使得gcd((p-1),(m-1))=2。然后,計算N=p(k-1)?m。
3.2.2 設備注冊階段
在邊緣計算場景下,每一個邊緣計算終端設備EU及邊緣服務器ES均擁有其唯一的標識信息IDEU和IDES,終端設備均憑借其唯一的身份標識信息IDEU向云平臺發送注冊請求。
(1)云平臺首先通過偽隨機函數生成器隨機生成一組偽隨機數a1,a2,…,az∈,然后根據終端設備的身份信息IDEU為其生成公鑰信息MKEU={MKEU,1,MKEU,i,…,MKEU,z} ,其中MKEU,i=gai,以及匿名的身份信息PIDEU={PIDEU,1,PIDEU,i,…,PIDEU,z} ,其中PIDEU,i=H0((IDEU||IDES)⊕MKEU,i),以此來保證終端設備的真實身份信息隱藏在匿名身份中。
(2)通過公式(1)計算生成兩個秘密值KEU和KES,然后通過遍歷尋找整數d,使得d=KEUmod(p-1)=KESmod(m-1),最后,計算e使得e=d-1mod(φ(N)),云平臺的注冊中心中心將<MKEU,PIDEU,KEU >通過安全信道返回給終端設備中。

(3)云平臺生成終端設備的匿名身份多項式acc(x)=,多項式的系數可以通過集合{g1,gs,gs2,…,gsz}進行表示,對于邊緣計算節點,云平臺將相應的已注冊終端設備的匿名身份信息集合Set_PID、KES發送給邊緣計算節點,并利用自己的私鑰進行簽名,如下:

(4)最后,邊緣計算節點接收到云平臺發送的信息并驗證簽名后,通過私鑰進行解密并將已注冊終端設備的身份信息存儲于本地。
3.2.3 接入認證階段
身份認證階段起始于已注冊的終端設備訪問邊緣計算節點過程,當終端設備EU需要訪問該位置中的邊緣計算節點ES時,一般的,終端設備并不知道邊緣計算節點的身份標識信息,它只是向具體的邊緣服務發送請求,具體描述如下:
EU→ES:
終端設備從<PKEU,PIDEU,SKEU >中隨機選取PKEU,i,PIDEU,i,SKEU,i,然后廣播報文<HelloEdge,PIDEU,i,Ti >,其中Ti是當前的時間戳。
ES→EU:
邊緣計算節點接收到接入請求后,通過公式(3)驗證時間戳Ti是否過期,以及終端設備是否已經注冊,若驗證通過,則向終端設備返回<IDES,PIDEU,i,Ti >。

EU→ES:
終端設備首先驗證時間戳Ti是否過期,然后通過公式(4)驗證邊緣計算節點的標識正確性,并隨機選取c∈生成挑戰報文cha,最后將<cha,Ti >發送給邊緣計算節點。

ES→EU:
邊緣計算節點接收到挑戰報文后,首先驗證時間戳Ti是否過期,然后通過計算chaKESmodq恢復出終端設備發送的挑戰值c′,最后計算應答報文res=(c′+Ti+PIDEU,i)emodN,將<res,Ti >發送給終端設備。
最后終端設備驗證獲得的挑戰值是否正確,若驗證通過,則可以將挑戰值作為后續通信的數據加密密鑰,保障通信的安全相和完整性。
由于本方案中云平臺會將所有已經注冊的邊緣計算終端的標識信息發送給邊緣計算節點,因此當邊緣計算節點具有移動性時,終端在連接到不同邊緣節點并進行認證的過程中,通過重復上述步驟,仍然可以完成終端與邊緣計算節點的雙向認證,并得到相同的認證結果。
本章將對本文提出的方案的復雜度以及安全性進行分析,首先介紹了本文方案在完成基本雙向認證過程中的計算復雜度,然后分析了本文方案對于常見的攻擊手段的抵抗能力。
本文基于上述方案搭建了測試環境對方案的正確性和可行性進行了驗證,方案分別模擬了位于云平臺的注冊中心,邊緣計算節點以及接入節點的智能終端設備,如圖2所示。
其中云注冊中心可以對注冊的邊緣設備生成對應的MKPID等信息,邊緣節點負責對接入的終端設備進行認證,根據本文提出的方案,假設智能終端以其MAC地址為標識,則為其生成的匿名的身份信息及公私鑰信息并進行匿名認證過程如圖3所示。
本文方案的提出主要是圍繞終端向邊緣計算節點發起服務請求過程中,邊緣計算節點ES和終端設備EU之間可以實現雙向認證,在本文方案中,由于終端設備可以采用離線的方式實現完成在云平臺的身份注冊和私鑰生成,而在終端與邊緣計算節點的認證過程中不需要再與云平臺進行交互,因此當邊緣計算節點處理終端的認證請求時,必定可以根據終端設備的身份標識信息判斷等式(5)是否成立。

圖2 仿真環境實體圖

圖3 安全接入認證結果

而對于終端設備來說,其可以通過cha=(c+Ti+IDES)emodN以及對終端設備選擇的挑戰值進行恢復,進而完成挑戰應答階段,實現通信雙方的相互認證。在這一過程中,終端設備只需要執行一次指數運算既可以完成對邊緣計算節點的認證,同時也可以完成雙方的密文通信的密鑰協商,使用已建立的會話密鑰對邊緣計算節點ES和終端設備EU之間交換的數據進行加密,與傳統的基于非對稱加密的認證算法相比,具有更低的計算復雜度和計算資源需求。
本文所提方案在滿足基本的邊緣計算場景下,終端設備與邊緣計算節點相互認證的同時,還支持對終端設備身份標識的隱私保護、通信雙方的密鑰保護以及抵御重放攻擊、中間人攻擊、拒絕服務攻擊典型的攻擊手段。
在終端設備隱私保護方面,本文方案通過使用匿名身份來隱藏用戶的真實身份信息,終端設備在向云平臺的認證中心發送注冊請求后,由云平臺為其頒發用于隱藏身份的匿名身份信息PIDEU={PIDEU,1,PIDEU,i,…,PIDEU,z},且在每一次的服務請求過程中,終端設備都選擇了不同的匿名身份,這對于邊緣計算節點來說,無法學習到任何關于終端設備身份的知識,因此本文方案能夠有效地保障終端設備的隱私信息。
其次,在通信雙方的密鑰防護方面,由于通信雙方通過挑戰應答的方式實現了密文通信,且從未使用敵手已知的明文信息進行加密,任意敵手都無法獲知具體的通信信道內容,因此能夠保障通信密鑰的安全性。并且,在執行后續的通信前,會話密鑰是由通信雙方通過協商的方式進行共享,會話密鑰僅為邊緣計算節點和終端設備知道,因此,本文方案能夠支持對通信數據的安全防護。
在抵御重放攻擊等典型的攻擊手段方面,本文方案通過使用時間戳的方式用于對每次傳輸數據的時效性進行驗證verify(T-Ti)≤ΔT,由于時間戳在每一次通信工程都不同,這使得對于任意的敵手無法構造出重放攻擊的報文信息,可以有效地抵御重放攻擊。同時本文方案的認證階段以及數據傳輸階段,通信數據均是通過密文進行傳輸,敵手在不知道邊緣計算節點和終端設備的加密密鑰的情況下,無法針對密文數據發動中間人攻擊。
最后在抵御拒絕服務攻擊(Dos)方面,邊緣計算節點對于任意的訪問請求會對其時效性進行校驗,如果請求時間戳無效,邊緣計算節點可以放棄登陸請求,而不需要對密文數據進行處理,同樣的,若時間戳有效,節點仍需要通過解密算法對密文數據進行解密,這保障了對于任意的敵手,即便其偽造了正確的時間戳信息,也無法實現對合理的通信數據進行偽造,節點可以將惡意的請求報告給管理員,并將相應的訪問規則設置為drop。
邊緣計算服務的提出是為了面向大規模終端用戶,而在網絡邊緣難以大規模實現傳統的基于PKI 方式的接入認證機制,因此本文提出了一種安全有效的邊緣計算場景下的接入認證方案,允許任何邊緣計算終端設備在云服務提供商的授權下,與任何邊緣計算節點進行互認證。本文方案不需要在任何的PKI 體系中包含終端設備。終端設備只需在注冊階段存儲一個云中心頒發的主密鑰,利用該密鑰,終端設備可以與邊緣計算節點進行相互認證,而不需要第三方的參與。同時,本文所提出的方案中,終端設備與邊緣計算節點都只需要執行少量的哈希運算和加解密預算,因此支持對海量終端設備的接入認證,適合在資源受限的終端設備中實現,能夠保障認證效率。