?

基于ECC 的SIP 身份認證密鑰協商協議

2023-10-14 02:55黃朝陽陳金木
電子科技大學學報 2023年5期
關鍵詞:匿名性口令雙向

黃朝陽,陳金木

(廈門海洋學院信息工程學院 福建 廈門 361100)

身份認證協議作為網絡安全的首道屏障,其重要性不言而喻。隨著網絡應用的增長,特別是自新型冠狀病毒肺炎疫情暴發以來,帶來了遠程辦公等工作方式的轉變,全球即時通信應用程序和服務的使用呈指數級增長,導致基于SIP 協議的即時通信服務的需求與日俱增。

SIP 協議(session initialization protocol)具有靈活、開放和可擴展的特性,為多種即時通信業務提供完整的會話創建和會話更改服務。因此,SIP 協議的安全性對于即時通信的安全起著至關重要的作用。SIP 協議一般工作在不安全的公共信道環境。而且傳統SIP 的原始身份認證機制是基于HTTP 摘要的,其強度不足以提供針對各種流行攻擊所需的安全性,這一先天缺陷使它很容易受到攻擊[1]?,F有的SIP 協議中所使用的身份認證機制可能被攻擊者繞過,導致未經授權的訪問和信息泄露需要安全且高效的SIP 認證和密鑰協商協議來解決即時通信的安全要求。設計一種可證安全且高效的SIP 身份認證協議具有緊迫性和重要意義。

近年來對于SIP 協議的研究和改良層出不窮,為了提高傳統SIP 協議的安全性,先后引入了多種安全機制,如Hash 函數、公鑰密碼體制、雙線性對映射、橢圓曲線密碼技術、混沌映射、生物特征和智能卡等。但各種研究表明:公鑰密碼體制面臨PKI 體系證書管理復雜的困難、雙線性對映射在效率上的缺陷明顯、結合生物特征和智能卡的認證協議則可能出現效率明顯下降等問題。而引入Hash 函數、橢圓曲線密碼技術或混沌映射的安全、可擴展和輕量級的SIP 身份認證協議正成為當前研究熱點。

在相同的安全級別上,橢圓曲線密碼(elliptic curve cryptography)在密鑰長度上比RSA 小很多,能有效降低計算和存儲的成本開銷。鑒于ECC 的明顯優勢,文獻[2]提出了基于ECC 的SIP 認證協議,并聲稱其有更好的安全性和效率。文獻[3]在2009 年證明了文獻[2]協議對已知的Denning-Sacco攻擊、Stolen-Verifier 攻擊和離線口令猜測攻擊是不安全的,并提出了改良的基于ECDH(elliptic curve diffie–hellman key exchange)的身份認證協議。2011 年,文獻[4]又揭示了文獻[3]的協議不能抵抗內部人員攻擊和離線口令猜測攻擊。文獻[5]于2012 年指出文獻[3]協議無法抵御Stolen-Verifier攻擊和離線口令猜測攻擊,并提供了一種改進的方案。然而,次年文獻[6]又證明了文獻[5]協議仍然受到離線口令猜測攻擊和冒充服務攻擊威脅,并給出了一種增強方案。

匿名認證是指用戶在證明自己身份合法性的同時能夠確保自己身份信息、位置信息的匿名性。在身份認證過程中保護用戶匿名性是當下身份認證技術的發展趨勢。2015 年,文獻[7]在文獻[6]工作的基礎上提出了一種基于橢圓曲線密碼技術的匿名SIP 認證協議,聲稱可以很好地保護用戶隱私。文獻[8]研究發現該協議不能抵御內部人員攻擊,并在此基礎上提出一種更為安全的SIP 認證協議,聲稱協議可以抵御各種已知攻擊,同時比其他相關協議具有更低的計算成本。2018 年,文獻[9]研究發現文獻[8]協議也存在無法保護用戶匿名性的安全漏洞。

本文深入研究了文獻[8]提出的SIP 協議,在分析其安全漏洞的基礎上通過改進認證消息構成,提出一種基于ECC 的更為安全高效的SIP 協議。新協議秉承ECC 安全高效的特征,采用標準的挑戰/應答信息交互模式,運算量小的優勢明顯。通過對新協議的BAN 邏輯分析、非形式化安全分析證明其更為安全;通過性能比較分析展示其在效率方面的實用性。

1 文獻[8]協議及其安全漏洞分析

本文所用符號如表1 所示。

表1 協議中的符號標記與含義

文獻[8]協議的認證階段在用戶端所構造生成的登錄請求消息M_request 存在設計缺陷,敵手可以根據在公共信道上竊取的登錄請求消息來驗證自己對用戶賬號的猜測,從而非法獲得用戶U的賬號IDi這一關鍵信息;該協議的認證階段在服務器端所構造生成的挑戰消息M_challenge 同樣存在設計缺陷,這一缺陷將使敵手可以根據已掌握的用戶賬號IDi和公共信道上竊取的登錄請求消息輕易偽造出可以通過用戶驗證的挑戰消息M_challenge,從而成功實施冒充服務器攻擊。文獻[8]協議的注冊及認證階段細節如圖1 所示,針對文獻[8]協議的安全漏洞分析如下。

圖1 文獻[8]協議的注冊及認證階段細節

圖2 針對文獻[8]協議實施冒充服務器攻擊的細節

1.1 無法抵御冒充服務器攻擊

敵手Uatt可以通過以下方法非法獲取用戶U的賬號信息IDi。Uatt在公共信道上竊取的U登錄請求消息M_request = {B, HID,C},計算HID⊕B= (IDi⊕T)⊕(T⊕A) =IDi⊕A。繼而,Uatt使用一個猜測的用戶賬號信息IDi′計算出A′ = HID⊕B⊕IDi′,然 后Uatt通 過 驗 證 等 式hash(IDi′ ||A′) =C是否成立來判斷所猜測用戶賬號信息IDi′的正確性。Uatt可以變換猜測新的IDi′′,不斷驗證上述等式直到找到正確的用戶賬號信息IDi為止。在獲取用戶U的賬號信息IDi后,Uatt可以通過下列步驟實施冒充服務器攻擊。

1.2 無法保護用戶匿名性和實現雙向認證

根據上述分析,敵手Uatt可以獲取合法注冊用戶的賬號信息。因此,文獻[8]協議無法保護用戶匿名性。由于敵手可以假冒合法服務器騙取用戶的認證,這意味著文獻[8]協議無法實現雙向認證。

2 新的SIP 認證協議

為了克服文獻[8]協議所暴露的安全問題,本文提出一種更為安全高效的SIP 認證協議。協議所使用的橢圓曲線離散對數難題(ECDLP)以及單向hash 函數是其可靠的安全基石[10]。

協議由用戶注冊、雙向認證和口令更新3 個階段構成。協議中所用符號如表1 所示。

2.1 用戶注冊

1) 用戶U選定自己的賬號IDi、口令PWi和私鑰Kpri_U,計算出C= Hash(PWi|| Kpri_U),U通過安全信道向服務器S發送向注冊請求消息{IDi,C}。

2)S收到U的消息{IDi,C}后,結合自己的私鑰Kpri_S計算出W= Hash(IDi||C) ⊕C⊕Hash(Kpri_S)。S于本地數據庫中寫入W。新協議注冊階段的細節如圖3 所示。

圖3 新協議注冊階段的細節

圖4 新協議登錄和雙向認證階段的細節

2.2 雙向認證

用戶U與服務器S通過以下步驟實現雙向認證及密鑰協商。

1) 用戶U輸入自己的賬號IDi,口令PWi,計算出TE = Hash( IDi|| Hash( PWi|| Kpri_U) )。U生成高熵隨機數RU,并計算A=RU·p,V= Hash (A|| Hash( PWi⊕ Kpri_U) )。U向S發送登錄請求消息M_request ={ TE,A,V}。

2.3 口令更新

數據庫中的W,口令更新完成。

新協議在認證階段巧妙設計了在用戶端所生成的登錄請求消息M_request 格式,讓用戶賬號及其伴隨信息都置于hash 函數的保護之下,規避了用戶賬號信息泄露的可能性,真正實現用戶匿名性;同時,新協議改進了服務器端挑戰消息M_challenge的組成部分Auth_s的格式,使敵手無法通過在公共信道上竊取的消息計算出Auth_s*,有效阻止敵手通過偽造服務器的挑戰消息實施冒充服務器攻擊。新協議增加一個服務器端所生成的高熵隨機數RS2,以保證后續消息的新鮮性,有效防止重播攻擊。

3 BAN 邏輯分析

Burrows、Abadi 和Needham 于1989 年 提 出BAN 邏輯分析方法具有里程碑式的意義,它是第一個將形式化手段用于驗證密碼協議安全性的分析方法,作為分析密碼協議一種公認的重要工具而廣為使用[11]。它在用戶設置的理想假設和協議步驟的前提下,對協議能否在沒有冗余信息的條件下實現安全認證的目的,以及協議中的加密信息是否在明文傳輸時不會影響協議的安全性這兩個問題給出解答[12]。BAN 邏輯分析過程所使用的符號與含義如表2 所示。

表2 BAN 邏輯的符號與含義

BAN 邏輯是一種基于信仰的內涵邏輯,它不計量由于協議的真實實現額外帶來的安全問題,也不考慮由于加密體制的安全缺陷可能帶來的協議缺陷,所以BAN 邏輯存在一定的局限性。但是,在協議設計階段使用BAN 邏輯分析可盡早規避潛在的設計缺陷。

下面在假定密碼算法是安全的前提下,使用BAN 邏輯分析方法對協議本身結構的安全性展開形式化證明。

3.1 BAN 邏輯推理法則

3.2 協議理想化

本協議的理想化形式為:

3.3 形式化安全假設

本文協議滿足下列基本假設:

3.4 協議目標

假設協議所設置的參數和流程是正確的,那么本文協議必須滿足下列安全目標:

3.5 安全證明

分析推理過程如下。

由P2 和消息新鮮法則R4 可得:

由式(1)、式(2)和臨時值驗證法則R2 可得:

由式(3)和信念法則R5 可得:

于是,G1 得以證明。

由式(4)和P5,以及管轄權法則R3 可得:

于是,G2 得以證明。

由P1 和消息新鮮法則R4 可得:

由式(6)、式(7)和臨時值驗證法則R2 可得:

由式(8)和信念法則R5 可得:

于是,G3 得以證明。

由式(9)和P6,以及管轄權法則R3 可得:

于是,G4 得以證明。

通過上述BAN 邏輯形式化證明,本協議的4 個安全目標全部得以證實。所以,在理想化的環境下,本協議可以實現真實有效的雙向認證和會話密鑰協商。

4 安全性分析

圍繞幾個相關協議[2-3,5,7-8]所暴露出來的安全問題,對本協議的一些重要的安全目標開展啟發式安全分析。

1) 抵御重播攻擊

在本協議框架內,假定某敵手Uatt偽裝成合法用戶U向服務器S重播登錄請求消息M_request ={TE,A,V},S將返回挑戰消息M_challenge ={realm,B, Auth_s,RS2}。但Uatt因不掌握RU和C從而無法偽造出Auth_U進行應答,從而無法通過S的驗證。同時,由于隨機數RU和RS2的新鮮性,Uatt如果通過重播S的挑戰消息M_challenge ={realm,B, Auth_s,RS2}來偽裝成合法S時,根本無法通過U方Auth_s′ = Auth_s這一等式驗證。所以協議可以抵御重播攻擊。

2) 保護用戶匿名性

在新協議的雙向認證實施過程中,公共信道上傳輸的用戶賬號信息以hash 函數散列值的形式TE =Hash(IDi|| Hash( PWi|| Kpri_U) )存 在。 根 據hash 函數的單向安全特性,敵手Uatt無法從截取的TE 中計算獲取用戶U的賬號信息IDi。與用戶賬號信息IDi同時存在于TE 中的伴隨信息是C=Hash( PWi|| Kpri_U),協議設計了用戶在注冊階段通過安全信道發送C給服務器S,C也不以明文的形式存儲于S的數據庫中,故如果敵手Uatt使用本文1.1 節所述方法來猜測并驗證用戶賬號信息必然失敗。所以新協議可以實現保護用戶匿名性的目標。

3) 抵御冒充服務器攻擊

敵手Uatt想成功冒充服務器S騙取用戶U的認證,必須能生成正確的挑戰消息M_challenge ={realm,B, Auth_s,RS2},但因Uatt無法獲取S的私鑰Kpri_S和S本地數據庫所存儲的W,故不能計算得出C′ ,當然也就無法生成正確的挑戰消息要件Auth_s。所以,Uatt無法成功冒充服務器S騙取用戶U的認證。

4) 抵御內部人員攻擊

在注冊階段,用戶的口令以密文C= Hash( PWi|| Kpri_U)的形式在安全信道上傳輸,服務器數據庫中所存儲W= Hash( IDi||C) ⊕C⊕Hash( Kpri_S)也非明文形式。在沒有掌握U口令PWi和私鑰Kpri_U的前提下,敵手Uatt無法在多項時間內把它們同時猜中,更無法使用W來驗證這一猜測。并且,由于hash 函數的單向安全特性,從C中計算得出U的口令PWi也是行不通的。所以,內部人員無法從用戶的注冊信息中獲取U的口令PWi。內部人員攻擊對本協議無效。

5) 抵御身份假冒攻擊

如前1)所證明,重播攻擊已無法實施。敵手Uatt偽裝成U實現身份假冒攻擊的前提是能生成正確的登錄請求消息M_request ={TE,A,V}和應答消息M_response = {realm, Auth_U},但并不掌握的U的賬號IDi、口令PWi和私鑰Kpri_U,根本無法計算出TE,生成正確的C和V則更為困難,根本偽造不出正確的M_request 和M_response 要件Auth_U,從而無法通過S的身份認證。所以,身份假冒攻擊無法實施。

6) 抵御離線口令猜測攻擊

敵手隨機猜測用戶的口令值,然后使用非法獲取的消息來驗證這一猜測,所以離線口令猜測攻擊往往最具有破壞性。假定Uatt在公共信道上截取認證過程的所有交互消息{TE,A,V,B, Auth_s,RS2,Auth_U}。然后Uatt猜測一個口令PWi′ ,但在未掌握用戶私鑰Kpri_U的前提下,顯然無法使用TE或V驗證所猜測口令PWi′的正確性。所以,離線口令猜測攻擊對本協議無效。

7) 實現雙向認證同時協商一次性會話密鑰

根據以上分析,本協議在安全性上填補了相關協議的常見漏洞,同時展現出較強的保護用戶匿名性和雙向認證功能,可以協商生成一次性會話密鑰,具有較高的安全性能。

5 效能分析

5.1 效率比較

效率比較主要考量各相關協議在雙向認證階段執行橢圓曲線點乘、切比雪夫多項式、對稱加密/解密、模逆運算和hash 運算所需的計算開銷。與上述運算相比較而言,字符串連接操作和異或運算所需耗時要小得多,不列入各協議的計算開銷比較[13]。用戶注冊和口令更新為非經常性操作,其計算開銷也不計算在內[14-15]。

為了更準確地評估各相關協議在雙向認證階段的計算效率,在運行平臺Windows 10、Intel Core i7-3 770、16GB RAM,matlab 仿真環境中測試ECC 點乘、切比雪夫多項式、模逆運算、AES-128和SHA-3 運算耗時。每種密碼操作均運行10 000次后,統計所需耗時的算術平均值如表3 所示。相關協議和本文新協議在雙向認證階段的主要計算開銷及交互次數比較如表4 所示。

表3 各種密碼運算所需耗時的算術平均值 ms

表4 效率比較

表中,TCP為計算一次切比雪夫多項式;TPM為執行一次橢圓曲線點乘;TSED為執行一次對稱加密/解密;TINV為執行一次模逆運算;TH為執行一次hash 運算。

從表4 可知,本協議的總計算開銷為4TPM+10TH,總耗時為32.716 8 ms,與文獻[19]協議基本持平,并明顯少于其他相關協議。本協議展現出更高的計算效率。各相關協議在雙向認證階段所需總交互次數都是3 次,無差別。各相關協議認證階段的主要運算總耗時比較如圖5 所示。

圖5 認證階段的主要運算總耗時比較

5.2 安全特性比較

本協議與其他幾個相關協議的安全特性對比如表5 所示。文獻[8]協議無法抵御冒充服務器攻擊,無法保護用戶匿名性,無法真正實現雙向認證。文獻[17-19]未給部分安全特性的分析結果。本文協議克服了文獻[8]協議的安全缺陷,能抵御多種常見攻擊,提供用戶匿名性保護和前向安全性,可以真正實現雙向認證,展示出比文獻[17-19]更高的安全性能。文獻[16]雖然也可以抵御各種已知攻擊,但它在認證過程中所使用的橢圓曲線點乘點運算達9 次之多,明顯增加了運算總用時。根據表4 和表5 的比較分析可知,本協議在安全性和效率方面的綜合性能優于其他相關協議。

6 應用場景分析

與所有新興技術一樣,即時通信面臨著需要克服安全方面的挑戰,以確保該技術能夠成功大規模部署。在保密性、完整性和真實性方面,安全方面的挑戰尤為重要。SIP 協議有良好的可擴展性,在語音通信、視頻通信、網絡游戲、物聯網等領域應用前景廣闊,但如果把生物特征、智能卡和公鑰密碼體制等多種安全因素同時糅合到改良的SIP 協議中,確實可以大大提升SIP 協議的安全性能,但同時也將給協議帶來臃腫,執行效率退化等問題。

身份認證協議的安全級別越高,它所需的運算量、帶寬要求、應用成本等各種開銷也大。找尋認證協議的安全性能和開銷的合理平衡點一直是協議設計者的追求目標。本協議使用少量的橢圓曲線點乘運算和必要的hash 運算,較好地保持了SIP 協議輕量化的優勢,可以認為本協議在認證安全性能與認證開銷之間獲得一個較好的平衡點,適用于對安全性能有較高要求的應用場景:涉及商業機密的企業通信、涉及國家機密的政府和軍事應用、涉及個人健康信息的醫療保健行業以及可能使用SIP 協議來傳輸銀行交易敏感信息的金融機構。

7 結 束 語

本文對文獻[8]提出的SIP 認證協議展開深入研究,指出其存在的安全缺陷。通過改良協議的認證消息格式,提出一種新的SIP 認證協議。通過BAN 邏輯形式化分析,以及多種非形式化的安全分析證明,新的SIP 認證協議可以安全地抵御各種已知的安全攻擊,既保護了用戶匿名性又可以實現雙向認證,具備協商生成后續會話所需一次性密鑰的功能。通過效能比較分析可知,新協議是高效、安全的,具有較高的實際應用和推廣價值。

猜你喜歡
匿名性口令雙向
雙向度的成長與自我實現
高矮胖瘦
口 令
好玩的“反口令”游戲
去個體化心理分析
SNMP服務弱口令安全漏洞防范
微信彈性社交中的失范行為分析
一種軟開關的交錯并聯Buck/Boost雙向DC/DC變換器
一種工作頻率可變的雙向DC-DC變換器
基于雙向預測的圖像去噪
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合