?

一種適用于基于身份的認證密鑰協商的逆向防火墻協議

2022-06-21 06:12葉凈宇周雨陽
重慶大學學報 2022年5期
關鍵詞:私鑰密鑰防火墻

劉 暢,王 晉,田 里,王 捷,葉凈宇,秦 帆,周雨陽

(1. 國網湖北省電力有限公司電力科學研究院 能源互聯網技術中心, 武漢 430077;2. 數字廣西集團政企事業部, 南寧 530219;3.重慶大學 大數據與軟件學院,重慶,400044;4. 電子科技大學計算機科學與工程學院, 成都 611731)

密鑰協商是在不安全信道上建立會話密鑰的一種重要方式。Diffie和Hellman[1]基于離散對數困難問題,為密鑰分發系統(PKDS, public key distribution system)設計了兩方密鑰協商協議(DH協議)。該協議在公網上提供了會話密鑰服務,防止來自被動攻擊者的消息泄露,但不能抵抗來自主動攻擊者的擾亂、刪除消息等行為:如中間人攻擊(MITM,man-in-the-middle)。為了抵抗中間人攻擊,Matsumoto等[2]基于DH協議設計了3個密鑰協商協議:MTI/A0,MTU/B0,MTI/C0。這些協議能夠為通信雙方建立雙方的認證會話密鑰,且不利用簽名就能抵抗主動攻擊。然而,如果一個長期密鑰泄露,攻擊者就能計算出兩方的會話密鑰。Kunz-Jacques和Pointcheval[3]提出了2個新的概念:認證密鑰協商(AKA, authenticated key agreement)和帶密鑰確認的認證密鑰協商(AKAC, AKA with key confirmation)。AKA保證只有特定的參與者能夠計算出該次會話密鑰。AKAC在AKA的基礎上,確認了通信實體都獲得該次會話密鑰。Law等[4]設計了一個兩方的AKA協議(MQV協議),同時利用消息認證碼(MAC, message authentication code)技術設計了一個三方的AKAC協議。該協議實現了已知密鑰安全、前向安全、密鑰控制。Krawczyk[5]指出這些協議在CK模型[6]下是不安全的,并且在MQV協議的基礎上提出了HMQV協議。為了增強安全模型中攻擊者的能力,LaMacchina等[7]在CK模型的基礎上提出了eCK模型,允許敵手對臨時私鑰進行詢問。目前,eCK模型成為了AKA協議的主流安全證明模型。Yao和Zhao[8]結合了KEA[9]和HMQV,設計了一個“最優”的AKA協議。KEA是由NSA設計的一個AKA協議,能保證最優的在線效率,但不能在eCK模型中被證明安全。以上這些協議都是基于公鑰基礎設施 (PKI, public key infrastructure)。在PKI中,為了抵抗公鑰替換攻擊,采用稱為證書權威(CA, certificate authority)的可信機構來頒發數字證書,用于綁定用戶身份和公鑰。因此,PKI不可避免帶來了證書管理的問題,如證書頒發、存儲、驗證、回收等。

為了解決PKI中的證書管理問題,Shamir[10]提出了基于身份的密碼學(IBC, identity-based cryptography)。2002年,受Boneh和Franklin基于身份加密(identity-based encryption, IBE)[11]和Joux的三方DH協議[12]的啟發,Smart提出了一個基于身份的密鑰協商(identity-based authenticated key agreement, ID-AKA)協議。該協議基于Weil雙線性對,消除了證書管理的問題,但由于用戶私鑰都由一個可信的私鑰生成器(PKG, private key generator)生成,帶來密鑰托管問題,影響會話密鑰的前向安全性。這意味著如果PKG被妥協了,敵手將能計算出之前的會話密鑰。Chen和Kudla[13-14]利用PKG只能獲知長期密鑰而非臨時密鑰實現會話密鑰的前向安全性。同時,設計了一個基于身份的密鑰協商確認(ID-AKAC, ID-AKA with key confirmation)協議,主要思想是在用戶身份信息上加上MAC值。之后,一系列ID-AKA協議[15-17]被提出,這些協議的安全性證明都沒基于eCK模型。最近,Daniel等[18]提出了一個適用于eCK模型的無雙線性對的ID-AKA協議,能夠抵抗公鑰替換攻擊和已知臨時會話秘密值泄露攻擊(KSTIA, known session-specific temporary attack)。通過以上分析,發現這些密鑰協商協議都是在經典安全模型下被證明安全的。攻擊者能夠通過設置一些不被發現的后門程序來擾亂這些算法的執行,從而導致用戶秘密信息的泄露。

2014年,Bellare等[19]研究算法替換攻擊(ASA, algorithm substitution attack),證明了一個攻擊者能夠通過替換對稱加密方案來監視用戶,得出了ASA能在任何隨機或者無狀態的加密方案中發生。ASA的研究為密碼學提出了一個新問題:在敵手秘密干擾下,如何保證密碼方案的安全性?(這個方向也叫做后斯諾登密碼學[20])。為了回答這個問題,Mironov等[21]在2015年的歐密會上提出了逆向防火墻(RF, reverse firewall)的概念。RF處在用戶計算機和外界網絡之間,能夠修改用戶收到或者發送的消息。即使用戶計算機被妥協了,攻擊者也無法辨認所接收的消息是否為真。RF可以取得以下3個性質: 1)維持功能性,即如果用戶的計算機正確工作,RF不會破壞密碼算法的功能; 2)保持安全性,即無論用戶的計算機如何被敵手攪亂,RF的使用將保持與正確執行密碼算法一樣的安全性; 3)抗泄露性,即無論用戶的計算機如何被攪亂運行,逆向防火墻將將阻止計算機向外泄露秘密信息。同年,Ateniese等[22]探討了RF在數字簽名上的應用,得出了任何隨機化的數字簽證都難抵抗ASA。在2016年的美密會上,Dodis等[23]利用RF,在被妥協機器上實現了安全消息傳輸。在2016年的亞密會上,Chen等[24]利用可延展平滑映射哈希函數,給出了用于安全消息傳輸協議、不經意的基于簽名的信封和不經意傳輸協議的RF方案。2018年,Ma等[25]設計了一個適用于在線/離線的基于屬性加密(ABE, Attribute-based encryption)的RF方案。方案中含有3個RF,分別部署于發送者、接收者和PKG。2019年,Hong等[26]設計了一個可以在ABE中實現屬性分發的RF方案。Zhou等[27]設計了一個適用于IBE的RF方案,其中一個實現了選擇明文攻擊安全性,另一個在適應性選擇密文攻擊下達到了半語義安全性。最近,Zhou等[28]為無證書加密和無證書簽名設計了RF方案。

目前,認證密鑰協商協議中抗后門攻擊的方案存在抗攻擊能力弱、性能不高等缺點。通過對RF的研究和分析,提出了能否使用RF來提高兩方認證密鑰協商協議中信息抗泄露問題。將RF與兩方密鑰協商相結合,設計了一種無需雙線性對的基于身份認證密鑰協商的逆向防火墻( ID-AKA-RF, reverse firewall for ID-AKA)協議。

1 預備知識

定義1橢圓曲線上的離散對數問題(ECDLP, discrete logarithm problem on elliptic curve):已知橢圓曲線上的點P,給定(P,mP) 求整數m∈q。這個問題稱為橢圓曲線上的離散對數問題。當點有大素數階時,求解ECDLP被認為是計算困難的。

定義2逆向防火墻:假設是W是一個RF,P=(receive, next, output) 是一個組。如果以下等式滿足,則W是一個為P設置的RF。其中,σ是初始公共參數,m是傳輸的消息。

W°P:=(receiveW°P(σ,m)=receiveP(σ,W(m)),

nextW°P(σ)=W(nextP(σ)),

outputW°P(σ)=W(outputP(σ)).

一個合格的RF滿足以下3個性質:1)維持功能性; 2)保持安全性; 3)抗泄露性。

定義3維持功能性:假設是W是一個RF,P是一個組,S是一個協議,F是一個函數。Wk°P表示在S中有限個k≥1里,對于P維持F。當P,S和F被清空,就說W維持了原協議的功能。同時,Wk°P=W°(Wk-1°P)表示RF能夠堆砌。

定義4保持安全性:假設是W是一個RF,P是一個組,S是一個協議,F是一個函數,A表示安全性要求。如果SP?W°P*也滿足A,就說對于S中的P能夠抵抗攻擊F的敵手,則W維持了原協議的安全要求性。其中SP?W°P*表示用W°P*代替P,P*是抵抗功能維護性的實現組。當P、S、F和A被清空,就說W維持了原協議的弱安全性。

定義5抗泄露性:假設是W是一個RF,P是一個組,S是一個協議,F是一個函數,A表示安全性要求。如果不存在敵手能夠攻破信息泄露LEAK(S,P1,P2,W,λ)游戲,那么W對于P1而言提供了弱抗泄露性。其中,λ表示安全性參數,P1是P2的一個抗攻擊F的敵手。

2 系統模型

抗泄露認證密鑰協商協議包括一個注冊服務器(RS),一個注冊服務器的逆向防火墻(WRS),一個用戶Alice,另一個用戶Bob和他的逆向防火墻(WB),系統模型如圖1所示。

圖1 系統模型Fig.1 System model

整個方案由系統建立、隨機化系統參數、密鑰生成、重隨機化用戶密鑰、身份認證與密鑰協商5部分組成,具體算法描述如下:

1)系統建立(Setup):該算法由注冊服務器根據輸入的安全參數k,運行產生系統所需的公共參數par和系統主密鑰s。

2)隨機化系統參數(WRS.Setup):WRS對系統參數par進行隨機化處理,生成新的系統參數par′。

3)密鑰生成(KeyGen):用戶Alice和Bob分別將自己的身份信息IDA和IDB提交給注冊服務器。注冊服務器根據輸入的身份信息IDA、IDB和系統主密鑰s,分別生成Alice和Bob的用戶私鑰SA和SB。

此處的用戶私鑰需要通過安全信道回傳, 安全信道的實現有離線和在線2種方法.

①離線方式:注冊服務器將用戶私鑰和公共參數輸入到智能卡中,并將智能卡安全的交到注冊用戶手中。

②在線方式:注冊服務器通過安全的傳輸層安全(TLS)回傳用戶私鑰和公共參數給注冊用戶。

3 安全模型

一個認證密鑰協商協議的安全目標主要包括已知會話密鑰安全性、前向安全性、PKG前向安全性、抗密鑰泄露偽裝和已知會話相關臨時秘密信息安全性等。eCK模型[7]是目前安全性表達能力最強的安全模型,明確表達了密鑰協商協議中最大可能損害安全的秘密泄露情況,也覆蓋了最多的安全屬性?;趀CK模型,設計了一個逆向防火墻環境下的密鑰協商安全性游戲:關于挑戰者C和敵手A之間的游戲,如圖2所示。具體步驟如下:

圖2 挑戰者C和敵手A之間的游戲Fig. 2 The game between challenger C and adversary A

1)系統建立階段: 挑戰者C輸入安全參數k, 運行系統建立算法,生成系統公共參數par和系統主密鑰s,并將公共參數par發送給敵手A, 保存系統主密鑰s。

2)詢問階段:敵手A在此階段可以進行以下多項式有界次數的詢問。

①MasterKeyReveal(k):敵手A獲得系統在安全參數k下的主密鑰。

②Corrupt(i):敵手A獲得IDi的經過逆向防火墻重新隨機化后的長期私鑰。

5)猜測階段:敵手A輸出一比特數據b′。如果b′=b,則A贏得游戲。

定義A贏得游戲的概率為AdvAKAA=|Pr[b′=b]-1/2|,其中Pr[b′=b]表示b′=b的概率。

4 協議構造

協議設計基于Kumar和Saxena的認證密鑰協商協議[22], 分為系統建立、隨機化系統參數、密鑰生成、重隨機化用戶密鑰、身份認證與密鑰協商5個部分。

4.1 系統建立(Setup)

注冊服務器首先根據給定的安全參數k,選擇一個q(q≥2k的素數)階循環加法群G1,P為G1的生成元,然后注冊服務器按照如下步驟進行操作:

3)設置系統參數par=(q,G1,P,Ppub,H1,H2),發送par給自己的防火墻WRS,且保密系統主密鑰s。

4.2 隨機化系統參數(WRS.Setup)

4.3 密鑰生成(KeyGen)

用戶提交自己身份信息給注冊服務器,注冊服務器生成相應的用戶私鑰。注冊服務器收到Alice的身份信息IDA,Bob的身份信息IDB后,開始進行如下操作:

4.4 重隨機化用戶密鑰(WRS.KeyGen)

注冊服務器的防火墻WRS可以總結為圖3。

圖3 注冊服務器的逆向防火墻Fig. 3 Reverse firewall for registration server

4.5 身份認證與密鑰協商(KeyAgreement)

通過雙方計算生成的會話令牌完成用戶身份認證,生成相同的會話密鑰。圖4描述了該部分的過程,以下將介紹具體的協議過程。

圖4 Bob的逆向防火墻Fig.4 Reverse firewall for Bob

Alice的會話令牌:

Bob的會話令牌:

如果hA=hB,則KA=KB=K為會話密鑰,用戶認證與密鑰協商結束。

對于WRS的功能,它保證了注冊服務器被妥協后用戶私鑰SA和SB的機密性。在文獻[22]協議中,當主密鑰s泄露后,敵手能夠獲得用戶私鑰。但在協議中,隨機化系統參數(WRS.Setup)利用隨機數α隨機化了主密鑰,阻止了敵手獲取用戶私鑰。同樣,協議重隨機化了用戶長期私鑰(WRS.KeyGen),抵抗了用戶長期密鑰泄露攻擊。

5 安全性證明與性能分析

5.1 安全性證明

定理1在隨機預言模型中, 如果Kumar和Saxena的ID-AKA協議[29]滿足認證密鑰安全性,則ID-AKA-RF協議能夠1)維持功能性; 2)保持安全性; 3)提供抗泄露性。

證明: 以下為3個功能的敘述。

1)維持功能性: 對于Alice,計算

αSAaH1(IDB‖RB)βTB=

αsrAQAaH1(IDB‖RB)βbRB=

αβabsrArBQAQBP,

對于Bob,計算

αSBbH1(IDA‖RA)βTA=

αsrBQBbH1(IDA‖RA)βaRA=

αβabsrArBQAQBP,

因為KA=KB,所以會話密鑰

hA=H2(IDA‖IDB‖KA)=hB=H2(IDA‖IDB‖KB)。

2)保持安全性: 通過被篡改的算法Setup*、KeyGen*、KeyAgreement*來證明協議和Kumar和Saxena的ID-AKA協議[29]的密鑰協商安全性具有不可區分性。

首先,證明ID-AKA-RF密鑰協商安全性的游戲已經被介紹,同時文獻[29]中也介紹了ID-AKA密鑰協商安全性的標準安全游戲。接下來,考慮以下游戲:

①游戲0:和介紹的游戲一樣。

②游戲1:和游戲0一樣,除了系統公共參數Ppub是由標準安全游戲中的Setup產生,而不是詢問階段和二次詢問階段中的Setup*和WRS. Setup產生。

③游戲2:和游戲1一樣,除了用戶長期私鑰Si,i∈{D,C}是由標準安全游戲中的KeyGen產生,而不是詢問階段和二次詢問階段中的KeyGen*和WRS. KeyGen產生。

④游戲3:和游戲2一樣,除了會話令牌Ti,i∈{A,B}是由標準安全游戲中的KeyAgreement產生,而不是詢問階段和二次詢問階段中的KeyAgreement*和WB. KeyAgreement產生。此時,游戲3是Kumar和Saxena中的ID-AKA標準安全游戲[29]。

接著,證明游戲0和游戲1、游戲1和游戲2、游戲2和游戲3的不可區分性。

③游戲2和游戲3的不可區分性:假設存在一個被篡改的算法KeyAgreement*生成會話令牌Ti,系統利用算法WB.KeyAgreement產生了一個更新后的會話令牌Ti′。Ti′對于算法KeyAgreement來說是一個一致的隨機數,因為原ID-AKA協議是可重隨機化的,所以Ti′可以看作由是算法KeyAgreement而不是KeyAgreement *生成的。因此,游戲2和游戲3是不可區分的。

因為Kumar和Saxena的ID-AKA協議[29]具有密鑰協商安全性,所以ID-AKA-RF協議也具有密鑰協商安全性。

3)提供抗泄露性: 游戲0和游戲3之間的不可區分性意味著對于注冊服務器和Bob逆向防火墻能夠提供消息抗泄露性。

注釋1在Kumar和Saxena中的ID-AKA協議的安全模型[29]中,被妥協的PKG不能對會話的臨時私鑰進行詢問。例如,當一次會話進行,敵手獲得了一次會話的臨時私鑰a和b。如果被妥協的PKG泄露了用戶長期私鑰的秘密值rA和rB,敵手可以通過以下等式計算出會話密鑰

K=SAaH1(IDB‖RB)TB=

SAaQBbRB=

rArBsabQAQBP=

rArBabQAQBPpub。

αSAabQBβrBP=

αbrArBQAQBαsP=

所以協議通過密碼防火墻提高了原協議的信息抗泄露性。

5.2 性能分析

為了分析ID-AKA-RF協議的性能,將該協議與4個無需雙線性對的ID-AKA協議進行比較,包括Cao等[16]、Tseng等[30]、Islam等[31]、Kumar等[29]。為了方便后面的統計, 首先用符號定義協議中所用到的運算, 如表1所示。

表1 符號定義

表2給出了這幾個協議的計算成本和通信成本。因為每個用戶只需要注冊一次, 而每次會話都需要進行認證密鑰協商,所以這里只考慮認證密鑰協商階段的計算成本和通信成本。通過表2可以看出,只有Kumar等[29]與ID-AK-RF協議在eCK模型進行了安全性證明,并且實現了抗臨時會話秘密值攻擊。相比于Kumar等[29]的ID-AKA協議,ID-AKA-RF協議允許敵手進行更強的KSTIA攻擊,表現在于敵手在獲得一次會話的臨時秘密值的同時,還能夠獲得用戶長期私鑰的秘密值。

表2 與以往ID-AKA協議比較

在通信成本方面,設置了3個不同的安全等級: 80、120和128[32]。這3個安全等級分別對應于2TDEA (2-key triple-DES)[33],3TDEA (3-key triple-DES)[33]和AES-128。選擇了基于有限域E(Fp)上的橢圓曲線y2=x3+xmodp。G1和G2分別是循環加法群和循環乘法群,它們的階都為q。表3列舉了在不同安全等級下p和q的值。根據表3,在80安全等級下,|Zq|=160 bits,|G1|=|G2|=1 024 bits。同樣可以計算出其他兩個安全等級下群G1和G2中的元素值。

表3 不同安全等級下的p和q (bits)

圖5展示了不同安全等級下的ID-AKA協議通信成本,其中取用戶的身份信息ID為512比特。通過比較后發現,ID-AKA-RF協議在身份認證與密鑰協商階段所需要的通信帶寬窄。隨著安全等級的提高,ID-AKA-RF協議帶寬優勢更加明顯,特別是與Islam等[31]相比。

圖5 不同安全等級下通信成本的比較Fig.5 Comparison of communication costs under different security levels

圖6 不同安全等級下會話密鑰協商運行時間的比較Fig.6 Comparison of session key agreement running time under different security levels

表4 不同安全等級下的運行時間

5.3 協議應用

研究提出的協議可以應用到需要建立會話密鑰的場景。例如,在移動客戶端——服務器環境中,用戶(客戶端)使用低功耗移動設備訪問強大的服務器以便得到某種服務,如移動電子郵件、移動Web訪問等。為了防止未經授權的用戶訪問服務器的服務,需要對用戶進行身份驗證。此外,客戶端和服務器之間傳輸的消息可能是敏感的,需要在它們之間建立會話密鑰。最后,為了防止后門程序擾亂認證密鑰協商協議的執行,需要加裝逆向防火墻功能。

6 結 論

在不使用雙線性對運算的情況下構造了一種適用于基于身份認證密鑰協商的逆向防火墻協議。同時在隨機預言機模型中,證明了該協議能夠抗泄露攻擊,特別是能夠抵抗強的臨時秘密值泄露攻擊。最后利用JPBC庫,實現了該協議并進行了性能分析。在通信成本方面,該協議具有較低的帶寬;在計算成本方面,雖然該協議相比于Cao等[16]和Kumar等[29]的ID-AKA協議有一定的增加,但處于合理范圍內。綜合安全性方面的考慮,協議與其他同類型ID-AKA協議相比具有很大的性能優勢,十分適合應用于資源受限的設備中。

猜你喜歡
私鑰密鑰防火墻
比特幣的安全性到底有多高
幻中邂逅之金色密鑰
幻中邂逅之金色密鑰
程序員把7500枚比特幣扔掉損失巨大
“一封家書”寄深情 筑牢疫情“防火墻”
構建防控金融風險“防火墻”
Android密鑰庫簡析
基于身份的聚合簽名體制研究
防火墻選購必讀
網絡與信息(2009年1期)2009-02-23
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合