第6章身份認(rèn)證與數(shù)字簽名_第1頁
第6章身份認(rèn)證與數(shù)字簽名_第2頁
第6章身份認(rèn)證與數(shù)字簽名_第3頁
第6章身份認(rèn)證與數(shù)字簽名_第4頁
第6章身份認(rèn)證與數(shù)字簽名_第5頁
已閱讀5頁,還剩100頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第6章

身份認(rèn)證與數(shù)字簽名支付寶快捷支付的身份漏洞(原文)快捷支付(含卡通)是最安全、輕松的付款方式。用戶通過電話或者網(wǎng)站等方式訂購商品時,不需開通網(wǎng)銀,直接通過輸入卡面信息,即可便捷、快速地完成支付。只需將您的支付寶賬戶關(guān)聯(lián)您的儲蓄卡或者信用卡,每次付款時只需輸入支付寶的支付密碼即可完成付款??旖葜Ц兜奶攸c:省力、安全、省錢應(yīng)用場景廣泛(頁面)

密碼技術(shù)弊端顯現(xiàn)生物識別漸受追捧美國《華爾街日報》網(wǎng)絡(luò)版上周日刊登題為《跟密碼說再見》(SayGoodbyetothePassword)的評論文章稱,由于密碼技術(shù)在便利性和安全性方面的弊端逐漸顯現(xiàn),相關(guān)企業(yè)紛紛開始尋找替代方案,而以指紋為代表的生物識別技術(shù)則成為最受追捧的領(lǐng)域,思維密碼成真。(原文)谷歌或已掌握全球多數(shù)WiFi密碼(原文)基于位置的隱私保護(hù)主要內(nèi)容

身份認(rèn)證數(shù)字簽名6.1身份認(rèn)證6.1身份認(rèn)證身份認(rèn)證是驗證主體的真實身份與其所聲稱的身份是否符合的過程。認(rèn)證的結(jié)果只有兩個:符合和不符合。適用于用戶、進(jìn)程、系統(tǒng)、信息等。身份認(rèn)證的例子郵件登錄Client與Server之間的鑒別Telnet遠(yuǎn)程登錄Ftp服務(wù)登錄到某臺電腦上身份認(rèn)證系統(tǒng)的組成出示證件的人,稱作示證者P(Prover),又稱聲稱者(Claimant)。驗證者V(Verifier),檢驗聲稱者提出的證件的正確性和合法性,決定是否滿足要求。第三方是可信賴者TP(Trustedthirdparty),參與調(diào)解糾紛。在許多應(yīng)用場合下沒有第三方。身份認(rèn)證的物理基礎(chǔ)Somethingtheuserknow(例如口令)簡單,但不安全設(shè)計依據(jù)安全水平、系統(tǒng)通過率、用戶可接受性、成本等采用復(fù)雜密碼,并且做定期更換,密碼長度不低于8位,采用大小寫配合數(shù)字及特殊符號;密碼策略操作:Windows操作指南:控制面板→管理工具→本地安全策略→賬戶策略→密碼策略,設(shè)置“強(qiáng)制密碼歷史”修改24個記住的密碼,“密碼最長使用期限70天”,“密碼最短使用期限2天”,“啟用密碼可逆加密(用可還原的加密來儲存密碼)”操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)等口令未到達(dá)復(fù)雜度要求。后臺登陸用戶口令簡單,且未啟用登錄失敗處理。(補(bǔ)充)處置建議:啟用操作系統(tǒng)的安全處理功能,設(shè)置允許賬戶錯誤登錄失敗次數(shù),超過則可采取結(jié)束會話、自動退出等措施。建議值:賬戶3-5次后鎖定,賬戶鎖定時間不少30分鐘。Windows操作指南:控制面板→管理工具→本地安全策略→賬戶策略→賬戶鎖定策略,“帳戶鎖定時間”設(shè)置為0,“帳戶鎖定閾值”設(shè)置為3或5次。操作系統(tǒng)未啟用登錄失敗處理功能(補(bǔ)充)身份認(rèn)證的物理基礎(chǔ)Somethingtheuserpossesses(例如證件)認(rèn)證系統(tǒng)相對復(fù)雜身份認(rèn)證的物理基礎(chǔ)Somethingtheuseris(例如指紋識別)更復(fù)雜,而且有時會牽涉到本人意愿身份認(rèn)證方式單向認(rèn)證(One-wayAuthentication)雙向認(rèn)證(Two-wayAuthentication)信任的第三方認(rèn)證(TrustedThird-partyAuthentication)單向認(rèn)證通信的一方認(rèn)證另一方的身份用對稱密碼體制來實現(xiàn)單向認(rèn)證某函數(shù)變換f雙方共享的密鑰KS隨機(jī)數(shù)RA用非對稱密碼體制來實現(xiàn)單向認(rèn)證隨機(jī)數(shù)RAB的私鑰KSB雙向認(rèn)證

雙方都要提供用戶名和密碼給對方,才能通過認(rèn)證。

用對稱密碼體制來實現(xiàn)雙向認(rèn)證A產(chǎn)生一個隨機(jī)數(shù)RA雙方共享的密鑰KSB產(chǎn)生一個隨機(jī)數(shù)RB用非對稱密碼體制來實現(xiàn)雙向認(rèn)證A產(chǎn)生一個隨機(jī)數(shù)RAB產(chǎn)生一個隨機(jī)數(shù)RBB的私鑰KSBA的私鑰KSA信任的第三方認(rèn)證

當(dāng)兩端欲進(jìn)行連線時,彼此必須先通過信任第三方的認(rèn)證,然后才能互相交換密鑰,而后進(jìn)行通信。一種第三方認(rèn)證機(jī)制SKAU:管理員的私鑰PKB:B的公鑰PKA:A的公鑰N1:A的臨時交互號N2:B產(chǎn)生的新臨時交互號雙向認(rèn)證(補(bǔ)充)目的:用于通信各方之間的相互進(jìn)行身份認(rèn)證,同時交換會話密鑰,其重點是密鑰分配。需要解決的核心問題:密鑰交換的機(jī)密性和時效性。機(jī)密性防止會話密鑰被篡改或和泄露;用戶身份信息和會話密鑰都必須以密文形式交換;前提:通信各方與事先保存一個密鑰(共享或公開密鑰)時效性為了防止消息的重放攻擊。報文重放(replay)攻擊(補(bǔ)充)攻擊過程(1)竊聽。(2)復(fù)制或部分復(fù)制一個報文。(3)在以后的某個時間重放可以攔截原信息,用重放消息取代;可以在一個合法有效的時間窗內(nèi)重放一個帶時間戳的消息。后果(1)擾亂接收者正常的工作。(2)竊取會話密鑰,假扮成一個通信方欺騙其他人。最壞情況下可能導(dǎo)致對手獲取會話密鑰,或成功地冒充其他人;至少也可以干擾系統(tǒng)的正常運行,處理不好將導(dǎo)致系統(tǒng)癱瘓。常見的消息重放攻擊形式(補(bǔ)充)(1)簡單重放:攻擊者簡單復(fù)制一個報文,以后再重新發(fā)送它;(2)可被日志記錄的重放:攻擊者可以在一個有效的時間窗內(nèi)重放一個帶時間戳的報文;(3)不能被檢測到的重放:原始報文已經(jīng)被攔截(丟失),無法到達(dá)目的地,而只有重放的報文到達(dá)目的地。(4)不做修改的反向重放:向消息發(fā)送者重放。當(dāng)采用傳統(tǒng)對稱加密方式時,這種攻擊是可能的。因為消息發(fā)送者不能簡單地識別發(fā)送的消息和收到的消息在內(nèi)容上的區(qū)別。重放攻擊預(yù)防方式(補(bǔ)充)報文序號方式:在認(rèn)證交換中使用一個序數(shù)來給每一個消息報文編號。僅當(dāng)收到的消息序數(shù)順序合法時才接受之。但這種方法的困難是要求雙方必須保持上次消息的序號(事實上不可行)。兩種更為一般的方法是:時間戳和盤問/應(yīng)答方式時間戳方式:(1)在報文中附加發(fā)送的時間戳;接收時只有報文時間戳與本地時間足夠接近時,才認(rèn)為是一個合法的新報文。(2)需要考慮的問題:通信各方的時鐘同步比較困難;時間窗口的大小如何確定。時間戳方法的問題(補(bǔ)充)(1)協(xié)議需要在各種處理器的時鐘中維持同步。該協(xié)議必須既要容錯以對付網(wǎng)絡(luò)出錯,又要安全以對付重放攻擊。(2)由于某一方的時鐘機(jī)制故障可能導(dǎo)致臨時失去同步,這將增大攻擊成功的機(jī)會。(3)由于變化的和不可預(yù)見的網(wǎng)絡(luò)延遲的本性,不能期望分布式時鐘保持精確的同步。因此,任何基于時間戳的認(rèn)證必須采用時間窗的方式來處理:一方面時間窗應(yīng)足夠大以包容網(wǎng)絡(luò)延遲,另一方面時間窗應(yīng)足夠小以最大限度地減小遭受攻擊的機(jī)會。由于時間戳技術(shù)固有的困難,很難用于面向連接的應(yīng)用實際中,安全的時間服務(wù)器用以實現(xiàn)時鐘同步可能是最好的方法。盤問/應(yīng)答方式(補(bǔ)充)(Challenge/Response)A期望從B獲得一個新消息,首先發(fā)給B一個現(xiàn)時nonce(challenge),并要求后續(xù)從B收到的消息(response)包含這個正確的現(xiàn)時。盤問/應(yīng)答方法不適應(yīng)非連接性的應(yīng)用,因為它要求在傳輸開始之前先有握手的額外開銷??赡芄粜问蕉鄻有?導(dǎo)致要設(shè)計一個完美的鑒別協(xié)議非常困難。采用加密方式怎樣實現(xiàn)相互鑒別?基于對稱密鑰加密的相互鑒別—初始方案(補(bǔ)充)1、須具備的條件可信的密鑰分配中心(KDC);通信各方都與KDC共享一個主密鑰,主密鑰Ka和Kb是安全。2、目的:KDC為通信雙方A、B產(chǎn)生短期的會話密鑰Ks。3、工作過程:(1)AKDC: IDA||IDB||N1(2)KDCA: EKa[Ks||IDB||N1||EKb(Ks||IDA)](3)AB:EKb[Ks||IDA](4)BA:EKs[N2](5)AB:EKs[f(N2)]現(xiàn)時基于對稱密鑰加密的相互鑒別過程—初始方案(補(bǔ)充)(1)A在會話開始時首先向KDC發(fā)送報文,包含A和B的標(biāo)識和一個與時間相關(guān)的現(xiàn)時標(biāo)識符N1

。(2)A就可安全地從KDC獲得一個新的會話密鑰Ks

。(3)A將用Kb加密的會話密鑰Ks發(fā)送給B,這個會話密鑰只有B能夠通過解密獲得。(4)B向A發(fā)送用會話密鑰加密的現(xiàn)時值N2,向A證實B已經(jīng)正確獲得了會話密鑰Ks(5)A使用新建立的會話密鑰Ks對f(N2)加密后返回給B基于對稱密鑰加密的相互鑒別—初始方案(補(bǔ)充)改進(jìn)方案(1)增加時間戳機(jī)制:需要通信各方周期性地與KDC通信進(jìn)行時鐘校準(zhǔn)。(2)通信時使用現(xiàn)時握手。(3)1,2兩種方案的結(jié)合。這種鑒別方案中存在什么漏洞?容易遭到重放攻擊如:使用過期的會話密鑰,X可冒充A,使用過期密鑰,并重放第3步的報文,就可以欺騙B。除非B存儲所有的使用過的會話密鑰?;趯ΨQ密鑰加密的相互鑒別—帶時間戳方案(補(bǔ)充)

假定主密鑰Ka,Kb是安全的。(1)AKDC:IDA||IDB(2)KDCA:EKa[Ks||IDB||T||EKb(Ks||IDA||T)](3)AB:EKb[Ks||IDA||T](4)BA:EKs[N1](5)AB:EKs[f(N1)]

C本地時鐘的時間值,t1是KDC時鐘與本地時鐘的正常偏差,t2是網(wǎng)絡(luò)的正常時延值。各個節(jié)點的本地時鐘參照某個標(biāo)準(zhǔn)時鐘來設(shè)定。T是時間戳解決方案(1)通信各方周期性的與KDC通信進(jìn)行時鐘校準(zhǔn);(2)通信時使用現(xiàn)時握手,免除時鐘同步負(fù)擔(dān)?;趯ΨQ密鑰加密的相互鑒別—帶時間戳方案(補(bǔ)充)

如何安全可信的通過網(wǎng)絡(luò)進(jìn)行時鐘同步?危險:若各節(jié)點分布式時鐘不同步,協(xié)議將受重放攻擊。節(jié)點之間的時鐘不同步通常是由于時鐘或同步部件的故障造成的,也可能也可能是人為破壞。抑制-重放攻擊:如果發(fā)送方的時鐘快于接收方的時鐘,攻擊者可以竊聽到發(fā)送端的報文,由于報文中的時間戳比接收方的本地時鐘提前,攻擊者可以等到接收方時鐘等于報文時間戳?xí)r重放該報文。基于對稱密鑰加密的相互鑒別—有效時限和現(xiàn)時方案(補(bǔ)充)(1)A→B:IDA‖Na(2)B→KDC:IDB‖Nb‖EKb(IDA‖Na‖Tb)(3)KDC→A:EKa(IDB‖Na‖Ks‖Tb)‖EKb(IDA‖Ks‖Tb)‖Nb(4)A→B:EKb(IDA‖Ks‖Tb)‖EKs(Nb)A產(chǎn)生現(xiàn)時Na發(fā)給B,會話密鑰由KDC分發(fā)給A時,A驗證返回的Na實現(xiàn)時效性通知KDC向A發(fā)布一個信任的票據(jù)票據(jù)接收者IDA,過期時間Tb,NaKs會話密鑰,Tb使用時限,IDB用于證實B收到初始報文,Na檢測重放攻擊。鑒別票據(jù)B利用Ks解密Nb鑒別A增加時間戳和現(xiàn)時握手后的協(xié)議過程:(1)A發(fā)起鑒別交換,首先產(chǎn)生一個現(xiàn)時值Na,并加上A的標(biāo)識IDA已明文的形式發(fā)給B。在會話密鑰分發(fā)給A的時候,Na將同時被返回給A,A通過驗證Na的值來實現(xiàn)時效性。(2)B向KDC申請會話密鑰。B向發(fā)往KDC的報文包括其標(biāo)識IDB和另一個現(xiàn)時值Nb,Nb的作用也是為了保證報文的時效性。B發(fā)往KDC的報文中還包括一個用Kb密鑰加密的數(shù)據(jù)段EKb(IDA||Na||Tb),其作用是通知KDC向A發(fā)布一個信任的票據(jù)。B向KDC說明票據(jù)的接收者IDA和過期時間Tb及A發(fā)來的Na等信息。基于對稱密鑰加密的相互鑒別—有效時限和現(xiàn)時方案(補(bǔ)充)

(3)KDC將一個用于鑒別的票據(jù)EKb(IDA||Na||Tb)發(fā)給A。這個票據(jù)是用Kb加密的。同時,KDC還向A傳送了用Ka加密的分組,其中Ks是會話密鑰,Tb給出了會話密鑰的使用時限,IDB用于證明B已經(jīng)收到初始報文,Na能夠檢測重放攻擊。(4)A將票據(jù)和加密后的Nb傳送給B。B使用票據(jù)中恢復(fù)出來的密鑰來解密Nb,通過解密Nb就能鑒別報文是不是來自A,或是一次重放攻擊。基于對稱密鑰加密的相互鑒別—有效時限和現(xiàn)時方案(補(bǔ)充)

方案優(yōu)點(1)為AB雙方建立會話提供了一種安全有效的會話密鑰交換方式。協(xié)議中過期時間Tb的參考時鐘是節(jié)點B的本地時間,也僅有B對其進(jìn)行檢驗。(2)A可保存能夠用于鑒別B的票據(jù),可以鑒別與鑒別服務(wù)器的多次交互。如:A、B已建立的會話終止了。A要與B建立新會話,A保存了原有票據(jù),在密鑰有效期內(nèi),建立安全會話:[1]A→B:EKb(IDA‖Ks‖Tb)‖Na’[2]B→A:Nb’‖EKs(Na’)[3]B→A:EKs(Nb’)基于對稱密鑰加密的相互鑒別—有效時限和現(xiàn)時方案(補(bǔ)充)

B檢驗收到票據(jù)是否過期。

Na’和Nb’預(yù)防重放攻擊基于公開密鑰加密的相互鑒別—時間戳鑒別方案(補(bǔ)充)在公鑰鑒別方案中,認(rèn)證中心(AS)用作通信雙方公鑰保存與分發(fā)。(1)A→AS:IDA‖IDB(2)AS→A:CA‖CB(3)A→B:CA‖CB‖EKUb(EKRa(Ks‖T))A的公鑰和私鑰分別為KUa和Kra;B的公鑰和私鑰分別為KUb和KRb;AS(鑒別中心)的公鑰和私鑰分別為KUas和KRas;CA=EKRas(IDA‖KUa‖T),A的公開密鑰證書;CB=EKRas(IDB‖KUb‖T),B的公開密鑰證書。AS只提供公鑰證書Ks由A選擇和加密,無泄露危險防止重放攻擊不足?時鐘同步基于公開密鑰加密的相互鑒別—現(xiàn)時方案(補(bǔ)充)(1)A→KDC:IDA‖IDB(2)KDC→A:EKRk(IDB‖KUb)(3)A→B:EKUb(Na‖IDA)(4)B→KDC:IDB‖IDA‖EKUk(Na)(5)KDC→B:EKRk(IDA‖KUa)‖EKUb(EKRk(Na‖Ks‖IDB))(6)B→A:EKUa(EKRk(Na‖Ks‖IDB)‖Nb)(7)A→B:EKs(Nb)以便KDC對Ks進(jìn)行標(biāo)識保證Ks是最新的EKUb的目的是保證[EKRk[Na||Ks||IDB]]不被對手截獲并試圖建立與A的欺騙性連接(5)KDC→B:EKRk(IDA‖KUa)‖EKUb(EKRk(Na‖Ks‖IDA‖IDB))(6)B→A:EKUa(EKRk(Na‖Ks‖IDA‖IDB)‖Nb)上述協(xié)議是一個比較安全的協(xié)議??赡艽嬖诓煌脩舢a(chǎn)生重復(fù)Na的可能性綁定IDA

,可將Na看著是所有由A產(chǎn)生的現(xiàn)時中唯一的現(xiàn)時身份認(rèn)證協(xié)議——Kerberos是美國麻省理工學(xué)院(MIT)開發(fā)的一種身份鑒別服務(wù)。Kerberos提供了一個集中式的認(rèn)證服務(wù)器結(jié)構(gòu),認(rèn)證服務(wù)器的功能是實現(xiàn)用戶與其訪問的服務(wù)器間的相互鑒別。Kerberos建立的是一個實現(xiàn)身份認(rèn)證的框架結(jié)構(gòu)。其實現(xiàn)采用的是對稱密鑰加密技術(shù),而未采用公開密鑰加密。公開發(fā)布的Kerberos版本包括版本4和版本5。Kerberos的設(shè)計目標(biāo)(1)安全性:能夠有效防止攻擊者假扮成另一個合法的授權(quán)用戶。(2)可靠性:分布式服務(wù)器體系結(jié)構(gòu),提供相互備份。(3)對用戶透明性(4)可伸縮:能夠支持大數(shù)量的客戶和服務(wù)器??偟膩碚f,Kerberos協(xié)議設(shè)計目標(biāo)是提供一種可信的第三方的身份認(rèn)證服務(wù)。Kerberos設(shè)計的基本思路(1)使用一個(或一組)獨立的認(rèn)證服務(wù)器(AS-AuthenticationServer)為網(wǎng)絡(luò)中的客戶提供身份認(rèn)證服務(wù);(2)認(rèn)證服務(wù)器(AS),用戶口令由AS保存在數(shù)據(jù)庫中;(3)AS與每個服務(wù)器共享一個惟一保密密鑰(已被安全分發(fā))。C:客戶AS:認(rèn)證服務(wù)器V:應(yīng)用服務(wù)器IDC:用戶標(biāo)識符IDV:服務(wù)器標(biāo)識符PC:用戶口令A(yù)DC:C網(wǎng)絡(luò)地址KV:AS與V共有的保密密鑰一個簡單的認(rèn)證對話(1)CAS:IDC||PC||IDV(2)ASC:Ticket(3)CV:IDC||TicketTicket=EKV[IDC||ADC||IDV]保證對手無法切斷(2),冒充C發(fā)送(3)服務(wù)器能證實票據(jù)解密的正確性假定有一個用戶登錄到了一個工作站上,它需要訪問應(yīng)用服務(wù)器V上提供的服務(wù),可采用以下認(rèn)證過程:解決辦法:(1)票據(jù)重用(2)引入票據(jù)許可服務(wù)器(TGS)a、用于向用戶分發(fā)服務(wù)器的訪問票據(jù);b、認(rèn)證服務(wù)器AS并不直接向客戶發(fā)放訪問應(yīng)用服務(wù)器的票據(jù),而是由TGS服務(wù)器來向客戶發(fā)放存在的主要問題(1)希望用戶輸入口令次數(shù)最少,盡量減少用戶不便。若允許票據(jù)的多次使用將導(dǎo)致安全性下降;用戶訪問不同服務(wù)器時仍需要多次申請票據(jù)的過程。(2)口令Pc以明文傳送會被竊聽。Kerberos中的票據(jù)1、服務(wù)許可票據(jù)(Servicegrantingticket)

(1)是客戶訪問服務(wù)器時需要提供的票據(jù);

(2)用TicketV表示訪問應(yīng)用服務(wù)器V的票據(jù)。

(3)TicketV定義為EKv[IDC‖ADC‖IDV‖TS2‖LT2]。2、票據(jù)許可票據(jù)Ticketgrantingticket)(1)客戶訪問TGS服務(wù)器需要提供的票據(jù),目的是為了申請某一個應(yīng)用服務(wù)器的“服務(wù)許可票據(jù)”;(2)票據(jù)許可票據(jù)由AS發(fā)放;(3)用Tickettgs表示訪問TGS服務(wù)器的票據(jù);(4)Tickettgs在用戶登錄時向AS申請一次,可多次重復(fù)使用;(5)Tickettgs定義為EKtgs[IDC‖ADC‖IDtgs‖TS1‖LT1]。票據(jù)生存時間客戶C與認(rèn)證服務(wù)器AS認(rèn)證服務(wù)階段(1)CAS:IDC||IDtgs(2)ASC:EKC[Tickettgs]Tickettgs=EKtgs[IDC||ADC||IDtgs||TS1||Lifetime1]利用票據(jù)許可票據(jù)申請服務(wù)許可票據(jù)(3)CTGS:IDC||IDv||Tickettgs(4)TGSC:TicketVTicketV=EKV[IDC||ADC||IDV||TS2||Lifetime2]特定服務(wù)許可票據(jù)訪問相應(yīng)的服務(wù)(5)CV:IDC||TicketV更安全的認(rèn)證對話口令密鑰KC解密獲取Tickettgs

防止對手在獲取Tickettgs后,等待C退出登錄再冒充C登錄僅AS和TGS知道Ktgs存在問題1)票據(jù)許可票據(jù)有效期的確定。2)用戶對服務(wù)器身份的認(rèn)證。KerberosV4進(jìn)一步研究。票據(jù)重用,避免用戶口令重復(fù)輸入用口令避免Pc明文傳輸僅V和TGS知道KVKerberosV4認(rèn)證過程示意圖KerberosV4認(rèn)證過程第1階段:認(rèn)證服務(wù)器的交互,用于獲取票據(jù)許可票據(jù)(1)C→AS:IDC‖IDtgs‖TS1(2)AS→C:EKc[KC,tgs‖IDtgs‖TS2‖LT2‖Tickettgs]Tickettgs=EKtgs[KC,tgs‖IDC‖ADC‖IDtgs‖TS2‖LT2]采用會話密鑰保證使用票據(jù)的人就是申請票據(jù)的人,避免票據(jù)重放攻擊。即:由AS產(chǎn)生C和TGS之間的會話密鑰,并安全地傳送給C和TGS;由TGS產(chǎn)生C和V之間的會話密鑰,并安全地傳送給C和V。供客戶C加密傳輸鑒別符Authenticatorc口令密鑰KC解密獲取TickettgsAS產(chǎn)生,C和TGS之間擁有了會話密鑰TGS通過Tickettgs獲取Kc,tgs

使AS驗證報文的及時性,驗證客戶時鐘是否與AS同步僅AS和TGS知道KtgsKerberosV4認(rèn)證過程第2階段,票據(jù)許可服務(wù)器的交互,用于獲取服務(wù)許可票據(jù)(3)C→TGS:IDV‖Tickettgs‖AUC(4)TGS→C:EKc,tgs[KC,V‖IDV‖TS4‖TicketV] Tickettgs=EKtgs[KC,tgs‖IDC‖ADC‖IDtgs‖TS2‖LT2] TicketV=EKv[KC,V‖IDC‖ADC‖IDV‖TS4‖LT4] AUC=EKc,tgs[IDC‖ADC‖TS3]TGS產(chǎn)生,C和V共同擁有V通過TicketV獲取Kc,v

生存期很短且僅使用一次,證明客戶的身份僅V和TGS知道KV鑒別符使得ADC是不可重用的,每個鑒別符只有很短的生存期KerberosV4認(rèn)證過程(3)第3階段,客戶與應(yīng)用服務(wù)器的交互,用于獲得服務(wù)5)C→V:TicketV‖AUC(6)V→C:EKc,v[TS5+1]TicketV=EKv[KC,V‖IDC‖ADC‖IDV‖TS4‖LT4]AUC=EKc,v[IDC‖ADC‖TS5]生存期很短且僅使用一次證明擁有者Ticketv的身份可重用票據(jù)向用戶鑒別他們自己KerberosV4認(rèn)證過程示意圖Kerberos領(lǐng)域(realm)構(gòu)成:一個完整的Kerberos環(huán)境包括一個Kerberos服務(wù)器,一組工作站和一組應(yīng)用服務(wù)器。具有如下特征(1)Kerberos服務(wù)器數(shù)據(jù)庫中擁有所有的用戶ID和口令散列碼;所有用戶需要向Kerberos服務(wù)器注冊。(2)每個應(yīng)用服務(wù)器都與Kerberos服務(wù)器共享一個密鑰(3)所有用戶均在Kerberos服務(wù)器上注冊。(4)所有服務(wù)器均在Kerberos服務(wù)器上注冊。(5)領(lǐng)域的劃分是根據(jù)網(wǎng)絡(luò)的管理邊界來劃定的。Kerberos領(lǐng)域間的互通1、跨領(lǐng)域的服務(wù)訪問(1)一個用戶可能需要訪問另一個Kerberos領(lǐng)域中應(yīng)用服務(wù)器;(2)一個應(yīng)用服務(wù)器也可以向其他領(lǐng)域中的客戶提供網(wǎng)絡(luò)服務(wù)。2、領(lǐng)域間互通的前提(1)支持不同領(lǐng)域之間進(jìn)行用戶身份鑒別的機(jī)制;(2)互通領(lǐng)域中的Kerberos服務(wù)器之間必須共享一個密鑰;(3)兩個Kerberos服務(wù)器也必須進(jìn)行相互注冊。

遠(yuǎn)程服務(wù)訪問的認(rèn)證過程(1)C→AS:IDC‖IDtgs‖TS1(2)AS→C:EKc[KC,tgs‖IDtgs‖TS2‖LT2‖Tickettgs](3)C→TGS:IDtgsrem‖Tickettgs‖AUC(4)TGS→C:EKc,tgs[KC,tgsrem‖IDtesrem‖TS4‖Tickettgsrem](5)C→TGSrem:IDVrem‖Tickettgsrem‖AUC(6)TGSrem→C:EKc,tgsrem[KC,Vrem‖IDVrem‖TS6‖TicketVrem](7)C→Vrem:TicketVrem‖AUCVrem遠(yuǎn)程應(yīng)用服務(wù)器,TGSrem遠(yuǎn)程TGS服務(wù)器。Kerberos跨領(lǐng)域認(rèn)證交互向遠(yuǎn)程服務(wù)器Vrem出示票據(jù)的用戶已經(jīng)在其本領(lǐng)域內(nèi)經(jīng)過了身份認(rèn)證服務(wù)器可以根據(jù)自身安全策略決定是否允許該用戶的遠(yuǎn)程服務(wù)請求Kerberosv4的缺陷(1)依賴性:加密系統(tǒng)的依賴性,對IP協(xié)議的依賴性和對時間依賴性。(2)字節(jié)順序:用戶自定義。(3)票據(jù)有效期:8位字段來表示,有效期最小為5分鐘,最大約為21小時。(4)認(rèn)證轉(zhuǎn)發(fā)能力:不允許簽發(fā)給一個用戶的鑒別證書轉(zhuǎn)發(fā)給其他工作站或其他客戶使用。(5)領(lǐng)域間的鑒別:管理起來困難。(6)加密操作缺陷:非標(biāo)準(zhǔn)形式的DES加密(傳播密碼分組鏈接PCBC)方式,易受攻擊。(7)會話密鑰:存在著攻擊者重放會話報文進(jìn)行攻擊的可能。(8)口令攻擊:未對口令提供額外的保護(hù),攻擊者有機(jī)會進(jìn)行口令攻擊。Kerberosv5的改進(jìn)(1)加密系統(tǒng):支持使用任何加密技術(shù)。(2)通信協(xié)議:IP協(xié)議外,還提供了對其他協(xié)議的支持。(3)報文字節(jié)順序:采用抽象語法表示(ASN.1)和基本編碼規(guī)則(BER)來進(jìn)行規(guī)范。(4)票據(jù)的有效期:允許任意大小的有效期,有效期定義為一個開始時間和結(jié)束時間。(5)提供了鑒別轉(zhuǎn)發(fā)能力(6)更有效的方法來解決領(lǐng)域間的認(rèn)證問題(7)口令攻擊:提供了一種預(yù)鑒別(preauthentication)機(jī)制,使口令攻擊更加困難,但不能完全避免口令攻擊。零知識證明Alice:“我知道聯(lián)邦儲備系統(tǒng)計算的口令”Bob:“不,你不知道”Alice:我知道Bob:你不知道Alice:我確實知道Bob:請你的證實這一點Alice:好吧,我告訴你。(她悄悄說出了口令)Bob:太有趣了!現(xiàn)在我也知道了。我要告訴《華盛頓郵報》Alice:啊呀!零知識證明零知識證明:證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的。零知識證明實質(zhì):一種涉及兩方或更多方的協(xié)議,即兩方或更多方完成一項任務(wù)所需采取的一系列步驟。零知識證明主體:一方為證明者,另一方為驗證者。證明者試圖向驗證者證明某個論斷是正確的,或者證明者擁有某個知識,卻不向驗證者透露任何有用的消息。

零知識證明舉例(1)A要向B證明自己擁有某個房間的鑰匙,假設(shè)該房間只能用鑰匙打開鎖,而其他任何方法都打不開。A如何向B證明其擁有鑰匙?(1)A把鑰匙出示給B,B用這把鑰匙打開該房間的鎖,從而證明A擁有該房間的正確的鑰匙。(2)B確定該房間內(nèi)有某一物體,A用自己擁有的鑰匙打開該房間的門,然后把物體拿出來出示給B,從而證明自己確實擁有該房間的鑰匙。后面這個方法屬于零知識證明。好處在于在整個證明的過程中,B始終不能看到鑰匙的樣子,從而避免了鑰匙的泄露。零知識證明舉例(2)A擁有B的公鑰,A沒有見過B,而B見過A的照片,偶然一天2人見面了,B認(rèn)出了A,但A不能確定面前的人是否是B,B如何向A證明自己是B?(1)B把自己的私鑰給A,A用這個私鑰對某個數(shù)據(jù)加密,然后用B的公鑰解密,如果正確,則證明對方確實是B。(2)A給出一個隨機(jī)值,B用自己的私鑰對其加密,然后把加密后的數(shù)據(jù)交給A,A用B的公鑰解密,如果能夠得到原來的隨機(jī)值,則證明對方是B。后面的方法屬于零知識證明。零知識“洞穴”

零知識“洞穴”(1)V站在A處;(2)P走進(jìn)洞穴,到達(dá)C處或D處;(3)當(dāng)P消失在洞穴中時,V走到B處;(4)V呼叫P,要求P:(a)從左通道出來;或者(b)從右通道出來;(5)P答應(yīng)V的呼叫,并在有必要的情況下用咒語打開C與D之間的秘密之門;(6)重復(fù)步驟(1)~(5)次?;镜牧阒R協(xié)議過程假設(shè)P知道一部分信息,并且該信息是一個難題的解法:(1)P用自己的信息和一個隨機(jī)數(shù)將這個難題轉(zhuǎn)變?yōu)榕c之同構(gòu)的新難題,然后用自己的信息和這個隨機(jī)數(shù)這個新難題;(2)P利用位承諾方案提交對于這個新難題的解法;(3)P向V透漏這個新難題,V無法通過新難題得到關(guān)于原難題或其解法的任何信息;(4)V要求P:(a)證明新、舊難題同構(gòu);或者(b)公布P在(2)中提交解法并證明該解法的確為新難題的解法;(5)P答應(yīng)V的要求;(6)重復(fù)步驟(1)~(5)次。位承諾:允許一個人事先向別人提交一個數(shù)值而不用立即揭露該數(shù)值所表示的意義,他可以在某個時間以后才揭示它的意義。最簡單的零知識證明問題要求:假如P想說服V,使V相信他確實知道n的因數(shù)p和q,但不能告訴V最簡單的步驟:V隨機(jī)選擇一整數(shù)x,計算x4modn的值,并告訴PP求x2modn并將它告訴VV驗證x4modnV知道求x2modn等價于n的因數(shù)分解,若不掌握n的因數(shù)p和q,求解很困難。6.2數(shù)字簽名消息認(rèn)證碼的不足可以保護(hù)通信雙方以防止第3者攻擊,不能保護(hù)通信雙方中一方防止另一方的欺騙和偽造。B偽造一個消息并使用與A共享的密鑰產(chǎn)生該消息的認(rèn)證碼,然后生成該消息來自于AB有可能偽造A發(fā)來的消息,所以A就可以對自己發(fā)過的消息予以否認(rèn)數(shù)字簽名的基本概念數(shù)字簽名由公鑰密碼發(fā)展而來,它在網(wǎng)絡(luò)安全,包括身份認(rèn)證、數(shù)據(jù)完整性、不可否認(rèn)性以及匿名性等方面有著重要應(yīng)用。數(shù)字簽名(DigitalSignature)是公開密鑰體系加密技術(shù)發(fā)展的一個重要的成果。數(shù)字簽名就是附加在數(shù)據(jù)單元上的一些數(shù)據(jù),或是對數(shù)據(jù)單元所作的密碼變換。這種數(shù)據(jù)或變換允許數(shù)據(jù)單元的接收者用以確認(rèn)數(shù)據(jù)單元的來源和數(shù)據(jù)單元的完整性并保護(hù)數(shù)據(jù),防止被人(例如接收者)進(jìn)行偽造。數(shù)字簽名是對現(xiàn)實生活中筆跡簽名的模擬。手寫簽名的特征簽名是可信的簽名是不可偽造的簽名不可重用簽名后的文件是不可變的簽名是不可抵賴的簡單掃描手寫簽名是不能滿足要求的對數(shù)字簽名的要求要保證能夠驗證作者及其簽名的日期時間必須能夠認(rèn)證簽名時刻的內(nèi)容簽名必須能夠由第三方驗證,以解決爭議。更進(jìn)一步的要求依賴性:簽名必須是依賴于被簽名信息來產(chǎn)生;唯一性:簽名必須使用某些對發(fā)送者是唯一的信息,以防止雙方的偽造與否認(rèn);可驗性:必須相對容易識別和驗證該數(shù)字簽名;抗偽造:偽造該數(shù)字簽名在計算上是不可行的,根據(jù)一個已有的數(shù)字簽名來構(gòu)造消息是不可行的;對一個給定消息偽造數(shù)字簽名是不可行的;可用性:在存儲器中保存一個數(shù)字簽名副本是現(xiàn)實可行的。數(shù)字簽名分類基于公鑰密碼體制和私鑰密碼體制都可以獲得數(shù)字簽名,目前主要是基于公鑰密碼體制的數(shù)字簽名。包括普通數(shù)字簽名和特殊數(shù)字簽名。普通數(shù)字簽名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir數(shù)字簽名算法、Des/DSA,橢圓曲線數(shù)字簽名算法和有限自動機(jī)數(shù)字簽名算法等。特殊數(shù)字簽名有盲簽名、代理簽名、群簽名、不可否認(rèn)簽名、公平盲簽名、門限簽名、具有消息恢復(fù)功能的簽名等,它與具體應(yīng)用環(huán)境密切相關(guān)。數(shù)字簽名的設(shè)計目標(biāo)簽名的比特模式是依賴于消息報文的,也就是說,數(shù)據(jù)簽名是以消息報文作為輸入計算出來的,簽名能夠?qū)ο⒌膬?nèi)容進(jìn)行鑒別;數(shù)據(jù)簽名對發(fā)送者來說必須是惟一的,能夠防止偽造和抵賴;產(chǎn)生數(shù)字簽名的算法必須相對簡單易于實現(xiàn),且能夠在存儲介質(zhì)上保存?zhèn)浞?;對?shù)字簽名的識別、證實和鑒別也必須相對簡單,易于實現(xiàn);偽造數(shù)字簽名在計算上是不可行的,無論攻擊者采用何種方法(利用數(shù)字簽名偽造報文,或者對報文偽造數(shù)字簽名)。簽名方法直接數(shù)字簽名方法仲裁數(shù)字簽名方法發(fā)方私鑰直接加密的直接數(shù)字簽名方案(1)AB:EKRa[M]提供了認(rèn)證與簽名:只有A具有KRa進(jìn)行加密;傳輸中無法被篡改;任何第三方可以用KUa驗證簽名(2)AB:EKUb[EKRa(M)]

提供了保密(KUb)、認(rèn)證與簽名(KRa)。(1)AB:M||EKRa[H(M)]

提供認(rèn)證及數(shù)字簽名

H(M)受到密碼算法的保護(hù);只有A能夠生成EKRa[H(M)](2)AB:EK[M||EKRa[H(M)]]

提供保密性、認(rèn)證和數(shù)字簽名。發(fā)方私鑰報文散列加密的直接數(shù)字簽名方案更好的直接數(shù)字簽名方案直接數(shù)字簽名方案分析實現(xiàn)比較簡單,在技術(shù)上僅涉及到通信的源點X和終點Y雙方。終點Y需要了解源點X的公開密鑰Kux。

發(fā)送方A可以使用其私有密鑰KRx對整個消息報文進(jìn)行加密來生成數(shù)字簽名。更好的方法是使用KRx對消息報文的散列碼進(jìn)行加密來形成數(shù)字簽名。直接數(shù)字簽名的安全性驗證模式依賴于發(fā)送方的保密密鑰;發(fā)送方要抵賴發(fā)送某一消息時,可能會聲稱其私有密鑰丟失或被竊,從而他人偽造了他的簽名。通常需要采用與私有密鑰安全性相關(guān)的行政管理控制手段來制止或至少是削弱這種情況,但威脅在某種程度上依然存在。改進(jìn)的方式例如可以要求被簽名的信息包含一個時間戳(日期與時間),并要求將已暴露的密鑰報告給一個授權(quán)中心。X的某些私有密鑰確實在時間T被竊取,敵方可以偽造X的簽名及早于或等于時間T的時間戳。基于仲裁的數(shù)字簽名通過引入仲裁來解決直接簽名方案中發(fā)送者否認(rèn)帶來的問題。仲裁者必須是一個所有通信方都能充分信任的仲裁機(jī)構(gòu)。仲裁者在這一類簽名模式中扮演敏感和關(guān)鍵的角色。

基本工作方式(假定用戶X和Y之間進(jìn)行通信):每個從X發(fā)往Y的簽名報文首先被送給仲裁者A;A檢驗該報文及其簽名的出處和內(nèi)容,然后對報文注明日期,并附加上一個“仲裁證實”的標(biāo)記發(fā)給Y?;谥俨玫臄?shù)字簽名--對稱加密,仲裁能看到報文內(nèi)容發(fā)送方X和仲裁A共享密鑰Kax,接收方Y(jié)和A共享密鑰Kay。

數(shù)字簽名由X的標(biāo)識符IDx、報文的散列碼H(M)、簽名和時間戳構(gòu)成,用密鑰Kax進(jìn)行加密。過程:(1)X→A:M‖EKax(IDx‖H(M))。(2)A驗證H(M)的有效性。(3)A→Y:EKay(IDx‖M‖EKax(IDx‖H(M))‖T)。(4)Y存儲報文M及簽名。(5)爭執(zhí)Y→A:EKay(IDx‖M‖EKax(IDx‖H(M)))。(6)仲裁:A驗證EKax(IDx‖H(M))。X的數(shù)字簽名Y可以判斷M是否過期爭端解決方式Y(jié)→A:EKay(IDx‖M‖EKax(IDx‖H(M)))。仲裁A可用Kay恢復(fù)出IDx

、M及簽名,然后再用Kax對簽名解密并驗證其散列碼。特點:(1)Y不能直接驗證X的簽名,簽名是解決爭端手段。(2)雙方都需要高度相信A:Y相信A已對消息認(rèn)證,X不能否認(rèn)其簽名;X信任A沒有暴露Kxa,無人可偽造DS;雙方都信任A處理爭議是公正。問題:報文M明文傳送給A,有可能被竊聽。基于仲裁的數(shù)字簽名--對稱加密,仲裁能看到報文內(nèi)容基于仲裁的數(shù)字簽名--對稱加密,仲裁不能看到報文內(nèi)容前提:發(fā)送方X和仲裁A共享密鑰Kax,接收方Y(jié)和A共享密鑰Kay,X與Y之間共享密鑰Kxy。過程(1)X→A:IDx‖EKxy(M)‖EKax(IDx‖H(EKxy(M)))(2)A驗證H(EKxy(M))的有效性。(3)A→Y:EKay(IDx‖EKxy(M)‖EKax(IDx‖H(EKxy(M))‖T)(4)Y解密EKxy(M)存儲簽名。(5)爭執(zhí)Y→A:EKay(IDx‖EKxy(M)‖EKax(IDx‖H(EKxy(M)))(6)仲裁:A驗證EKax(IDx‖H(EKxy(M)))?;谥俨玫臄?shù)字簽名--對稱加密,仲裁不能看到報文內(nèi)容特征:(1)DS的構(gòu)成:IDx

和消息密文的散列碼用Kxa加密(2)DS的驗證:A解密簽名,用散列碼驗證消息。(3)A只能驗證消息的密文,而不能讀取其內(nèi)容。(4)A將來自X的所有信息加上時間戳并用Kay

加密后發(fā)送給Y。兩種簽名方案存在的問題(1)A和發(fā)送方X聯(lián)手可以否認(rèn)簽名的信息。(2)A和接收方Y(jié)聯(lián)手可以偽造發(fā)送方X的簽名?;谥俨玫臄?shù)字簽名—公開密鑰加密方式(1)XA:IDx||EKRx[IDx||EKUy[EKRx(M)]](2)A驗證X的公開/私鑰對是否仍然有效。(3)A→Y:EKRa[IDx||EKUy[EKRx(M)]||T](4)Y解密得到M。Y存儲簽名IDX||EKRx(M)||T。Y→A:EKua(IDx‖EKRx(M))XA:EKRx[M]發(fā)生爭執(zhí)怎樣仲裁?特點:仲裁者看不見消息的內(nèi)容。優(yōu)點:(1)通信各方之間無須共享任何信息,從而避免了聯(lián)手作弊;(2)只要KRa安全,則不會出現(xiàn)偽造A發(fā)送的消息;(3)消息的內(nèi)容是保密的,包括對A在內(nèi)。(4)即使KRx暴露,只要KRa未暴露,不會有錯誤標(biāo)定日期的消息被發(fā)送?;谥俨玫臄?shù)字簽名—公開密鑰加密方式RSA簽名體制體制參數(shù)大素數(shù)p,q,n=p×q,y(n)=(p-1)(q-1)。選整數(shù)1<e<y(n),且gcd(e,y(n))=1;計算d滿足de≡1mody(n).{e,n}為公開密鑰,{d,n}為秘密密鑰。簽名過程S=Mdmodn驗證過程M=Semodn實際應(yīng)用中加密是對H(M)進(jìn)行的。RSA簽名方案M||HESKAMHDPKA比較數(shù)字簽名標(biāo)準(zhǔn)DigitalSignatureStandard(DSS)概況由NIST1991年公布1993年公布修改版美國聯(lián)邦信息處理標(biāo)準(zhǔn)FIPSPUB186簽名長度320bit只能用于數(shù)字簽名,不能用于加密數(shù)字簽名算法(DSA)(1)設(shè)計基礎(chǔ)基于離散對數(shù)的計算具有很高的難度。(2)三個p、q、g作為全局公開的密鑰分量:p是一個素數(shù),長度在512比特到1024比特之間,對p更精確的描述:p是素數(shù),且滿足2L-1≤p≤2L(其中512≤L≤1024,且L是64的倍數(shù));q是一個長度在160為素數(shù),且q是p-1的一個素因子,即2159≤p≤2160,且(p-1)modq=0;g定義為g=h(p-1)/qmodp,其中h是一個整數(shù),且滿足1≤h≤(p-1),故g=h(p-1)/q

modp>1。(3)用戶的私有密鑰x必須是一個1~(p-l)之間的隨機(jī)數(shù)或偽隨機(jī)數(shù)(即1<x<p)。(4)公開密鑰y利用私有密鑰計算出來的:y=gxmodp

。由Y計算X需要計算Y的以g為底、模p的離散數(shù)對,復(fù)雜度高,不可行DSS的數(shù)字簽名方案同時采用散列函數(shù)H()和簽名函數(shù)Sig()。簽名函數(shù)的輸入是散列函數(shù)輸出的散列碼及一個用于生成簽名的隨機(jī)數(shù)k。簽名函數(shù)還需要使用發(fā)送方的私有密鑰(用KRa表示)和由參數(shù)集構(gòu)成了組成一個全局公開密鑰(KUG)。簽名函數(shù)輸出的最終結(jié)果(即數(shù)字簽名)由兩個分量組成,記為s和r。

在接收端,驗證函數(shù)的輸入包括了報文的散列碼、數(shù)字簽名、全局公開密鑰KUG以及發(fā)送方公開密鑰KUa。

DSS的數(shù)字簽名方案簽名函數(shù)Sig()數(shù)字簽名是通過簽名函數(shù)生成的,簽名函數(shù)包含r和s。簽名函數(shù)的輸入包括:(1)公開的密鑰分量(p,q,g);(2)用戶私有密鑰x;(3)報文的散列碼H(M),報文的散列碼采用SH

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論