殷小虹
(江西傳媒職業學院,江西 南昌 330224)
遠程服務器需要通過公共信道對用戶進行認證。在以前的大多數雙因素方案中,用戶的身份證明在公共信道上以明文形式傳輸。因此,它們不能提供用戶隱私保護。由于用戶的身份信息在所有事務會話中是靜態的,攻擊者可以將不同的登錄會話鏈接在一起跟蹤用戶的活動,這導致用戶部分信息的泄漏。為了解決這些問題,Das等[1]提出了一種基于動態ID的遠程用戶認證方案,這種基于動態身份的認證技術可以提供用戶匿名性。Kim等[2]的方案容易受到智能卡丟失攻擊、被盜驗證者攻擊和特權內部人攻擊。此外,這種方案也不具備完美的前向保密性和用戶匿名性。
筆者簡要描述Kim等提出的雙因素方案。Kim等的方案由5個階段組成,即注冊階段、登錄階段、認證和密鑰交換階段、相互認證和密鑰確認階段以及離線口令修改階段。Kim等的方案使用的符號和縮寫如表1所示。

表1 NOTATINS
當一個用戶Ui想要向服務器S注冊時,Ui執行以下操作:第一步。Ui,→S:{IDi,pwi}。用戶Ui選擇一個身份IDi和密碼pwi,然后Ui通過安全通道將{IDi,pwi}提交給服務器S。第二步。S→Ui:智能卡。在接收到消息{IDi,pwi},服務器S計算ni=h(IDi∣∣pwi),mi=ni⊕x,Ni=h(IDi)⊕h(pwi)⊕h(x)⊕h(mi)。參數ni由服務器S.S存儲{h(.),Ni,ni},并通過安全通道將智能卡發送給Ui。
當用戶Ui想要訪問服務器S,Ui將他的智能卡插入讀卡器并輸入他的身份IDi、密碼pwi。將執行以下操作。第一步。智能卡計算動態身份CIDi,Ai=h(IDi)⊕h(pwi),B=Ni⊕h(IDi)⊕h(pwi),CIDi=h(Ai)⊕h(h(ni)⊕Bi⊕h(Ni)⊕T)。第二步。ui→S:{CIDi,T,Ni,ni}。用戶U發送登錄請求{CIDi,T,Ni,ni}通過公共信道發送到服務器S,其中T是時間戳。
第一步。當服務器S在時間T′接收到消息{CIDi,T,Ni,Ni}時,S檢查時間戳T的有效性。如果T′-T≤ΔT,S在注冊列表中搜索nj。第二步。如果ni在注冊列表中,服務器S計算mi=ni⊕x,Bi=h(x)⊕h(mi),Ai=Bi⊕Ni。然后驗證等式S是否成立:CIDi⊕h(Ai)=h(h(ni)⊕Bi⊕h(Ni)⊕T)。如果等式成立,S繼續下面的步驟。否則,S終止會話。第三步。S→Ui:{KC′,T′}。S計算會話密鑰SK=h(Ai∣∣Ti∣∣Bi∣∣T′)和密鑰確認消息KC′=h(Bi∣∣SK∣∣T′)。然后S發送響應消息{KC′,T′}給Ui。
第一步。當在時間T″接收到響應消息{KC′,T″)時,用戶首先檢查時間延遲T″-T′≤ΔT。如果它有效,U將計算會話密鑰SK=h(Ai∣∣T∣∣Bi∣∣T′)和密鑰確認消息KC=h(Bi∣∣SK∣∣T′)。接下來,用戶U檢查接收到的kc′是否等于KC。如果不相等,則拒絕。否則,Ui繼續。
第二步。Ui→S:{KC",T"}。用戶計算密鑰確認消息KC″=h(Ai∣∣SK∣∣T′)并且將其發送到服務器S。第三步。服務器S計算出KC"=h(Ai∣∣SK∣∣T")。然后S檢查接收到的KC是否等于KC"。如果不成立,則拒絕Ui。否則,S接受Ui的請求。
與其他相關方案相比,Kim等的方案具有計算效率高、通信成本低等優點。假設身份可以用32位寬度表示,安全單向散列函數的輸出大小是160位,時間戳的大小是32位。在該方案的登錄階段,用戶Ui需要發送消息(CIDi,T,Ni,ni)到服務器。它包含160×3+32=512位。在認證和密鑰交換階段,服務器將(KC′,T′)發送回Ui。它的長度是160+32=192位。最后,在相互認證和密鑰確認階段,Ui向服務器發送密鑰確認消息。它的長度為192位。因此,此方案通信成本低。此外,Kim等的方案中的登錄階段在智能卡端只需要6次散列運算和6次異或運算。在身份驗證和密鑰交換階段,服務器需要8次哈希運算和6次異或運算。在相互認證和密鑰確認階段,該方案需要在智能卡端進行3次哈希運算。該方案保持了智能卡的低計算量特性[3,4]。
Kim的方案支持用戶免密碼更新。在密碼更改階段,用戶僅使用智能卡更改其密碼和設置任何新密碼,不需要與服務器通信。因此,Kim等的方案實現了用戶友好性。但是,由于在更新新密碼之前沒有驗證舊密碼的真實性,所以這是一種固有的安全威脅。在真正的雙因素應用中,用戶確實傾向于讓他們的智能卡無人看管。例如,用戶將他們的智能卡遺忘在讀卡器中幾分鐘或幾天。如果攻擊者設法獲得合法用戶ui′的智能卡的臨時訪問權,可以很容易地使用以下步驟更改用戶ui′的密碼:
第一步。對手首先將智能卡插入終端設備,并選擇兩個不同的密碼pw′和pw″分別作為舊密碼和新密碼。然后,對手用pw′和pw″鍵入ID,并向智能卡發出更改密碼的請求。
第二步。智能卡將計算Ni*=Ni⊕h(pw′)⊕h(pw″),然后用Ni*替換Ni。當用戶Ui在隨后的認證中使用智能卡訪問服務器時,登錄請求永遠不能通過服務器S的驗證。因此,合法用戶Ui即使在取回他的智能卡之后也不能成功登錄??梢詫⒐裘枋鋈缦?。
因為Ui不知道存儲在卡中的信息的變化,Ui仍然使用pwi作為IDi的密碼。
智能卡計算A=h(IDi)+h(pwi),Bi*=Ni⊕h(IDi)i⊕h(pwi),CIDi=h(Ai)⊕h(h(ni)⊕Bi*⊕h(Ni*)⊕T)。
第三步。在接收到登錄請求{CIDi,T,Ni*,ni},S計算m=ni+x,Bi=h(x)⊕h(mi)。由于Bi*=Ni*⊕Ai和Bi=Ni+A,驗證方程CIDi⊕h(Ai)=h(h(mi)⊕Bi⊕h(Ni⊕T)不成立。S將拒絕登錄請求。上面的描述證實了,一旦智能卡丟失,很容易發起Dos攻擊。
如果驗證表存儲在服務器中,認證方案將遭受驗證信息的泄漏,這可能導致嚴重的安全缺陷。在Kim等的方案中,n是由服務器S保密。服務器維護所有唯一消息ni的驗證者表,其使得協議容易受到竊取驗證者攻擊[5]。
如果用戶的密碼可以在注冊階段由服務器導出,這樣的方案會遭受內部攻擊。在Kim等的方案的注冊階段,用戶以明文的形式向服務器發送密碼pw。S直接獲取用戶的密碼pw。在實際應用環境中,用戶可能使用同一個密碼登錄不同的服務器。惡意的特權內部人員會使用該用戶的密碼登錄到其他服務器。因此,Kim等的方案不能抵抗內部攻擊。
完美的前向保密意味著即使服務器的主密鑰x或用戶的密碼和身份被泄露,從協議的先前執行中產生的任何會話密鑰也不會被泄露。Kim等的方案不能提供完美的前向保密性。假設對手截獲了某個登錄消息{CIDi,T,Ni,Ni}。利用泄露的密鑰x,計算出m=ni⊕xiB=h(x)⊕h(mi),A=Ni⊕B,因此,通過使用來自登錄請求和登錄響應的兩個時間戳(T,T′),對手計算出會話密鑰SK=h(Ai∣∣T∣∣Bi∣∣T′)。
假設一個敵手已經獲得了U的長期秘鑰A=h(IDi)⊕h(pwi)。密碼和身份都不會受到影響,但會出現兩種情況。
(1)會話密鑰將被泄露。進一步假設對手已經記錄了在服務器和用戶之間傳輸的消息。對手只需要第一次記錄整個登錄消息{CIDi,Ti,Ni,ni}和整個響應消息{KC′,T′}。對于其他會話,對手只需要記錄兩個時間戳{T,T′}。知道了長期秘鑰A和先前會話的截獲消息,對手計算會話密鑰如下。對手計算Bi=Ai⊕Ni。對手檢索會話密鑰SK=h(Ai∣∣T∣∣Bi∣∣T′)通過使用截取的兩個時間戳{T,T′}。
(2)會導致冒充攻擊。有了秘鑰的Ai,對手可以冒充U來訪問S。第一步:對手計算出Bi=Ai⊕Ni,CIDi=h(Ai)⊕h(h(ni)⊕Bi⊕h(Ni)⊕T)。第二步:對手發送登錄請求消息{CIDi,T,Ni,ni}到服務器S。由于Bi=A⊕Ni=h(x)⊕h(mi),服務器S認為消息是合法用戶發送的。同樣,有了長期秘鑰Ai,對手也可以冒充S來欺騙Ui[6]。
在開放的網絡環境中,假設用戶Ui將登錄請求消息{CIDi,T,Ni,ni}發送到服務器S。消息{Ni,ni}供用戶Ui專用,如果密碼沒有被更新,那么對服務器S的任何訪問都不會改變。此外,即使在密碼被改變之后,n對于用戶和服務器來說是相同的。也就是說n將注冊用戶與服務器綁定。因此,任何對手都可以通過檢查不同協議的{Ni,ni}或{ni}執行是否相同來容易地跟蹤用戶。因此,即使用戶的身份沒有暴露,用戶的匿名性也沒有得到很好的保護。
先構造整個屬性集自下而上的中心屬性樹,再構造針對屬性子集的屬性子樹。后者由用戶和驗證權威執行,通過簡化中心屬性樹生成得到,然后再由屬性權威和數據擁有者控制用戶屬性集的變化,在屬性權威設置新的屬性密鑰后,通過代理重加密技術讓云服務提供方升級屬性密鑰,并使用代理重加密技術處理密文,減輕云用戶計算負擔。使用代理重加密方法完成了云端取消用戶屬性的任務[7]。
本文提出的密鑰交換模式形式化定義屬性基認證密鑰交換中用戶隱私性,將敵手模型化為具有適應性選擇安全設定能力的圖靈機,構造了屬性基認證密鑰交換適應性選擇安全設置eCK模型(Attribute-Based eCK,ABeCK)。使用屬性基加密CP-ABE建立認證密鑰交換的一般性構造框架,根據具體CP-ABE方案的安全性,給出框架在ABeCK模型中的嚴格安全性證明。分別設計了無雙線性映射的如RSA、離散對數和高效雙線映射的輕量級屬性基認證密鑰交換協議,建立保持隱私性的屬性基認證密鑰交換可證安全理論。
本文首先分析了多位研究者提出的認證協議存在一些關鍵信息泄漏給對手和中間人攻擊的問題,為研究屬性基認證密鑰交換機制提供了安全性方面的有效依據,基于此提出了構建云環境下的屬性基認證密鑰交換機制的整體框架,給出了動態屬性樹的構造思路,并對屬性基認證密鑰交換可證安全理論進行研究和分析,最后給出了一種構建分布式環境下屬性基認證形式化安全模型的思路。