韓剛, 李輝
(西北工業(yè)大學 電子信息學院, 陜西 西安 710072)
通用串行總線(universal serial bus,USB)是連接計算機系統(tǒng)與外部設備的一個串口總線標準,也是一種輸入輸出接口的技術規(guī)范,被廣泛應用于外圍設備與個人電腦連接過程之中,例如鍵盤、鼠標、打印機以及大容量存儲設備(mass storage devices,MSD)等。USB重要的優(yōu)勢包括高可用性、高數據傳輸率以及連接便利性等。但從應用層面講,大容量存儲設備存在著重大的安全隱患,例如非授權用戶能夠隨意非法讀取并復制存儲器中的明文數據;其次,大容量設備在通過USB與個人電腦連接過程中,攻擊者能夠輕易截獲此過程中的數據。因此,對于MSD-USB用戶身份的認證以及MSD中明文數據的保護至關重要。
如今很多學者提出了相應的保護方案。2004年Ku和Chen等人[1]僅僅利用口令提出了一種認證方案,但隨后Yoon和Ryu等人[2]發(fā)現Ku等人的方案對于預防平行會話攻擊非常脆弱,因此Yoon等人提出了一個增強版的認證方案。2010年Yang等人[3]提出了一種利用人的生物特征(比如指紋等)生成口令的方案,用于提升安全性。2013年Lee和Chen等人[4]基于生物特征以及第三方認證中心實現了一種認證協(xié)議。但2014年,He等人[5]發(fā)現Lee等人的方案不能有效抵抗口令猜測攻擊、拒絕服務攻擊以及重放攻擊等,于是He等人提出了一種基于三方認證的安全協(xié)議。2015年Giri等人[6]提出了一種基于口令、生物特征以及第三方認證的安全協(xié)議,該協(xié)議能夠有效實現用戶身份認證以及保護MSD中的數據安全。
上述方案將研究重點放在了用戶身份認證以及保護MSD中數據安全上。但可以從以下幾個方面拓展MSD的應用場景:①能否實現對MSD-USB用戶身份的規(guī)范化管理,例如某個MSD設備屬于某一個用戶組,只有屬于該用戶組的用戶才能讀取并利用該MSD設備中的文件,因此需要實現從該用戶組中刪除或添加一位用戶;②能否實現對某個MSD設備中文件的細粒度權限控制。這類似于Linux系統(tǒng)中root用戶與普通用戶的權限不一樣,但與Linux系統(tǒng)中的權限類型又有點不同,只有擁有特定權限的用戶解密該MSD設備中對應隱私密文數據。
因此,本文所做的工作包括以下幾點:
1) 結合相關密碼技術,將MSD設備的應用場景進一步拓展,提高了MSD設備的實際應用價值;
2) 采用新的認證協(xié)議,有效地實現了用戶身份認證,能夠有效防止重放攻擊、中間人攻擊等等;
3) 采用基于屬性加密技術實現了對MSD設備用戶組的有效管理,實現了向該用戶組中刪除或添加一位用戶;
4) 實現了對某個MSD設備中隱私文件的細粒度權限控制。用戶組中不同的用戶擁有不同的權限,擁有哪種權限才能解密具有對應權限的隱私密文文件。
模糊提取器是由安全概略和強提取器來定義的,先給出安全概略的定義,安全概略是由一對隨機過程〈SS,REC〉定義的,SS是概略過程,REC是恢復過程[7]。
定義1(隨機提取器)一個(k,ε)的提取器是一個函數EXT:{0,1}n×{0,1}d→{0,1}m,對于任意定義在{0,1}n上具有最小熵k的分布X,分布EXT(X;Ud),也就是函數的輸出ε接近{0,1}m的均勻分布Um。直觀上來說,隨機提取器借助一個正隨機的種子把最小熵從隨機變量X中提取出來[7]。
定義2(安全概略)一個(M,m,m′,n)的安全概略是一對隨機過程〈SS,REC〉,這對隨機過程具有如下的幾個性質[7]。
1) 概略過程:SS輸入M上的一個元素w,輸出s∈{0,1}*
2) 恢復過程:REC輸入的元素有2個,w′∈M,s∈{0,1}*。如果w和w′的統(tǒng)計距離小于t,那么就有REC(w′,SS(w))=w。
安全概略提供以下幾個安全保證,對于任意M上的分布W,只要W上的最小熵大于m,安全概略可以保證其輸出位串s后,W的條件最小熵大于等于m′,也就是H∞(W|SS(W))≥m′,有了安全概略的概念之后,接下來就可以定義模糊提取器的概念了。
定義3(模糊提取器[7])一個(M,m,l,t,ε)模糊提取器是滿足以下特性的一對隨機過程〈GEN,REP〉。
1) 產生過程:GEN輸入w∈M,輸出s∈{0,1}l上的一個隨機串R和{0,1}*一個幫助串P。
2) 重生過程:REP輸入w′∈M和P∈{0,1}*。如果dis(w,w′)≤t,GEN(w)=
模糊提取器提供以下保證:如果定義在M上的隨機變量W的最小熵大于m,那么,即便敵手可以觀察到P,R依舊非常的接近于均勻分布?;蛘哒f,如果GEN(w)=〈R,P〉,那么dis((R,P),(U1,P))≤ε。
引理1(從安全概略中得到模糊提取器)保證(SS,Rec)是一個(M,m,m′,n)的安全概略,并且Ext是一個(M,m,l,t,ε)的強提取器,那么下面的(GEN,REP)是一個(M,m,l,t,ε)的模糊提取器[8];
1)GEN(w;r,x):設定P=(SS(w,r),x),R=EXT(w,x),輸出為(R,P)。
2)REP(w′,s,c):恢復出w=REC(w′,s),輸出R=EXT(w,c)。
模糊提取器的原理框圖結構如圖1所示
圖1 模糊提取器框圖
本文通過權限控制樹Tpr描述訪問控制策略,權限樹中的每個葉子節(jié)點代表某個屬性,每個非葉子節(jié)點代表一個閾值門。文中所采用的權限控制樹類似于操作系統(tǒng)中的權限控制,例如用戶a可以訪問文件f,而用戶b則不能訪問文件f。
文件擁有者將文件存儲于MSD之前,會根據某種屬性集合在文件中定義某種權限控制樹Tpr,如果某個用戶的屬性滿足該特權樹Tpr,那么該用戶便被授予該特權P。給定一個權限控制樹,如果numx是結點x的孩子結點的數量,kx是x的閾值且0 圖2 權限控制樹 如圖2所示為某種權限控制樹,每個葉子結點均用某個用戶屬性表示,非葉子結點為設定的閾值門。該權限控制樹的滿足運算規(guī)則如下,S代表著用戶屬性集合,Tpr代表某個權限控制樹,x代表權限樹中的某個結點。如果用S滿足Tpr或結點x,則有Tpr(S)=1或x(S)=1。通過遞歸運算便可計算出Tpr(S)。如果x為葉子結點,當且僅當att(x)∈S時,則x(S)=1;如果x為非葉子結點,當結點x至少有kx個孩子結點返回1時,則x(S)=1。對于特權樹Tpr的根結點Rpr來說,只有當Rpr(S)=1時,Tpr(S)=1。 定義4G0是素數階為p的循環(huán)群,g是G0的生成元,運算e:G0×G0→GT映射擁有如下3個性質: 1) 雙線性:e(ga,gb)=e(g,g)ab,a,b∈Zp; 2) 不可退化性:存在x,y∈G0使得e(x,y)≠1; 3) 對稱性:對于所有的x,y∈G0,存在e(x,y)=e(y,x)。 雙線性對累加器是一種高效的數據認證機制,該機制對于任意大小的集合輸入提供一個固定長度的消息摘要,并且為集合中的每一個元素提供一個固定長度的證據,該證據可以用來驗證集合中的成員身份。 (1) 圖3為本文提出的系統(tǒng)模型結構。圖3a)表示用戶注冊模型,圖3b)表示認證與文件加解密模型。 圖3 系統(tǒng)結構 1) 用戶添加:如圖4所示,屬于該MSD用戶組的用戶人數為2,添加1位用戶后屬于該用戶組的用戶人數為3。 圖4 用戶添加 2) 用戶刪除:如圖5所示,屬于該MSD用戶組的用戶人數為3,添加1位用戶后屬于該用戶組的用戶人數為2。 圖5 用戶刪除 在這里先定義一種表達式用于表示用戶u對文件f擁有解密權限。例如,uf表示用戶u能夠解密文件f;u?f表示用戶u不能夠解密文件f。圖6為MSD中文件細粒度解密權限結構關系圖,圖中顯示該MSD中共包含4份數據文件f1,f2,f3,f4。用戶對于文件的細粒度解密權限關系可表示為uaf1、ubf2,f4、ucf1,f4、udf2,f4、uef3。反之,只要不滿足此關系,用戶便不能解密相應的文件。 圖6 文件細粒度解密權限關系圖 圖6所示的每一個文件中均包含了某種訪問策略,而該策略是文件上傳者利用某種用戶屬性集合生成的權限樹Tpr,這里的pr表示某種特權。例如,文件f1與f2中分別包含著權限Tpr1和Tpr2,則說明用戶ua擁有權限Tpr1;用戶ub則擁有權限Tpr2,那么uaf1,ubf2,但ua?f2,ub?f1。 圖3a)為用戶注冊模型,在此階段,用戶U與認證服務器AS按照如下算法過程實現: 1) U、AS、MSD分別存儲自己的私鑰skU,skAS,skMSD并發(fā)布自己的公鑰pkU,pkAS,pkMSD。 用戶U為了向MSD證明自己是合法的用戶,則該用戶U需要向認證中心獲得授權,當用戶將MSD插入個人終端后,認證過程執(zhí)行,具體步驟如下所述: 1) 用戶U提供IDU、生物特征BU以及時間戳TM,并將cU-AS=ENCpkAS[IDU‖BU‖TM]發(fā)送給AS。 2) AS執(zhí)行DECskAS[cU-AS]后,獲得IDU、生物特征BU以及時間戳TM,計算得到cAS-U=ENCpkMSD[IDU‖BU‖TM],并將cAS-U發(fā)送給用戶U; (3) 若TM*-TM>ΔT,則認證失敗;否則,認證通過。 只有當第(1)、(2)以及(3)步均成立時,則用戶的身份認證通過;否則用戶身份認證失敗,MSD將立即與個人終端斷開連接。 以上1)~4)步有效保證了U的合法身份,而U是否屬于該MSD用戶組需要通過第5)步驗證。 MSD判斷e(accU,ACCwitness)=e(ACC,g)是否相等,若相等則MSD用戶組用戶成員身份驗證通過;否者認證失敗,則MSD將立即與個人終端斷開連接。 進過以上1)~5)步,MSD驗證了用戶的身份,同時又驗證了MSD的用戶組身份。 MSD用戶組中的用戶集合表示為User={U1,U2,…,Un},生成的屬性累加值集合為acc={acc1,acc2,…accn},添加一位用戶Un+1進入用戶組中,關于用戶Un+1生成屬性累加值accn+1;則新的ACC*=ACC(accn+1+s);刪除用戶組中的一位用戶Ui,則新的ACC*=ACC(acci+1)-1。 當U經過3.2小節(jié)的身份認證之后,能夠按照如下算法過程以加密形式上傳文件至MSD中。 1) U采用對稱加密算法以及對稱密鑰k(例如DES)加密文件F,生成的密文C=ENCk(F); 這里采用多項式插值法實現Shamir的密鑰分享協(xié)議。對于Tpr中的每一結點x選擇一個多項式qx,設置多項式的次冪dx比設定的閾值kx小1,即kx=dx+1。從Tpr的根結點Rpr開始,隨機選取多項式qx的系數,并使得qRpr(0)=t,采用Shamir密鑰分享協(xié)議,將密鑰逐級分享下去。對于其他結點x,每個結點的多項式qx系數隨機選取,而常數項為qparent(x)(index(x)),從而使得qx(0)=qparent(x)(index(x)),這里的parent(x)表示x的父結點。最終生成此文件的權限控制樹Tpr。最終U將{C,s,Tpr}存儲于MSD中。 當用戶U進過4.2小節(jié)的身份人認證之后,便能通過如下算法過程訪問MSD中的文件。具體過程如下所示: 1) U為了解密文件F,首先U的屬性必須滿足權限控制樹Tpr,根據2.2小節(jié)權限控制樹的定義,權限控制樹的每個葉子結點代表用戶的每個屬性,而非葉子借點代表著一個閾值門,因此只有用戶的屬性滿足該權限控制樹時,根據Shamir的原理,最終恢復出隱藏在權限控制樹Tpr的值t; 2) MSD執(zhí)行k=t?s,F=DECk(C),最終獲得文件明文F。 3.2小節(jié)用戶身份認證過程中,U需輸入個人生物特征(比如指紋等),但根據相關資料[10]顯示,同一個人在不同時候獲取的個人生物特征會有一定的差別,因此在該認證階段,U的身份可能會認證失敗,導致MSD拒絕提供服務的事件發(fā)生。但本方案采用了模糊提取器,U的個人生物特征采集后經過了模糊提取器算法處理,能夠保證認證階段采集的生物特征值與系統(tǒng)建立階段采集的生物特征值一致,因此本方案能夠抵抗拒絕服務攻擊。 在3.2小節(jié)說明用戶U的認證過程之中,用戶U、認證中心AS以及大容量存儲設備MSD均分別保存了自己私鑰skU、skAS、skMSD,同時各自發(fā)布了公鑰證書。 1) 用戶U提供IDU、生物特征BU以及時間戳TM,并將cU-AS=ENCpkAS[IDU‖BU‖TM]發(fā)送給AS,因此在該階段中假設攻擊者A獲取了cU-AS,A也無法解密該密文,因此無法修改其中的身份信息。 2) AS執(zhí)行DECskAS[cU-AS]后,獲得IDU、生物特征BU以及時間戳TM,計算得到cAS-U=ENCpkMSD[IDU‖BU‖TM],并將cAS-U發(fā)送給用戶U。當AS解密cU-AS中的用戶身份信息后,重新利用自己的公鑰加密用戶身份信息,重新生成cAS-U發(fā)送給用戶U。因此在此過程中,假設攻擊者A獲取了cAS-U,A也無法解密獲得用戶的身份信息。 最終進過上述三步用戶身份認證過程,攻擊者A不能獲得任何用戶信息,也不能偽裝成用戶U執(zhí)行用戶偽裝欺騙攻擊。 在3.2小節(jié)用戶身份認證過程中,U向AS以及MSD均發(fā)送了系統(tǒng)當前時間TM,過程如下所示: 1) 用戶U提供IDU、生物特征BU以及時間戳TM,這里的時間戳TM發(fā)送給了認證中心,并對該時間戳進行了加密cU-AS=ENCpkAS[IDU‖BU‖TM],因此攻擊者A無法獲取該時間戳; 用戶U認證過程中,需要提供用戶的個人身份信息,個人生物特征等等,而每個人的生物特征等相關信息是唯一的,因此攻擊者無法執(zhí)行口令猜測攻擊。 表1將本文所提方案的優(yōu)勢與方案進行了對比,從表1中可以發(fā)現: 1) 本文所提方案能夠抵抗用戶偽裝攻擊、內部攻擊、離線口令猜測攻擊、拒絕服務攻擊以及重放攻擊等,因此相對于其他一些方案,在抵抗以上這個攻擊上具有一定的優(yōu)勢。 2) 本文所提方案能夠進行MSD中用戶組成員管理,提供了用戶組成員添加或刪除功能;其次,對于MSD中文件實現了細粒度權限控制,嚴格控制了文件訪問權限,提升了用戶組間的安全性。 表2將本文所提方案與方案在用戶注冊、用戶身份驗證、文件加密、文件解密等方面進行了運算效率對比,同時將方案中的用戶組成員添加、刪除以及權限控制樹的運算開銷進行了說明。Th表示哈希函數運算、Tm表示標量乘法運算、Tdiv表示除法運算、Te表示雙線性對運算、TEn表示對稱加密運算、TDe對稱解密運算、Texp表示指數運算、Tinter表示插值運算。 表1 方案攻擊類型或特征對比 表2 運算效率對比 本文提出了一種運用于大容量存儲設備下的用戶認證與數據保護方案。利用屬性基加密技術以及權限控制技術,實現了對USB設備用戶的安全認證、實現了對USB設備中隱私數據細粒度控制。安全性分析表明該方案具有較強的安全性,能夠抵抗重放攻擊、拒絕服務攻擊、用戶偽裝攻擊、口令猜測攻擊等。 本文提出了適用于大容量存儲下的用戶認證與數據保護方案,后續(xù)需要在文件加解密上進一步提升運算速率;其次,后續(xù)會研究如何實現存儲器器中密文數據的修改與刪除,同時文中方案性能分析部分只是利用了數學理論分析了運算效率,后續(xù)將會利用代碼具體實現本文方案。1.3 雙線性對[9]
1.4 雙線性對累積器
2 系統(tǒng)結構與功能模塊描述
2.1 系統(tǒng)結構
2.2 用戶添加與刪除
2.3 文件細粒度解密權限關系
3 算法階段描述
3.1 用戶注冊階段
3.2 用戶身份認證階段
3.3 MSD用戶組成員添加與刪除
3.4 文件加密階段
3.5 文件解密階段
4 方案安全性與性能分析
4.1 抵抗拒絕服務攻擊
4.2 能夠抵抗用戶偽裝攻擊
4.3 能夠抵抗重放攻擊
4.4 能夠抵抗離線口令猜測攻擊
4.5 能夠提供有效安全的用戶組成員認證
4.6 性能分析
5 結 語