




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、數(shù)字簽名與認證協(xié)議數(shù)字簽名與認證協(xié)議數(shù)字簽名數(shù)字簽名 傳統(tǒng)簽名的基本特點傳統(tǒng)簽名的基本特點: 能與被簽的文件在物理上不可分割能與被簽的文件在物理上不可分割 簽名者不能否認自己的簽名簽名者不能否認自己的簽名 簽名不能被偽造簽名不能被偽造 容易被驗證容易被驗證 數(shù)字簽名是傳統(tǒng)簽名的數(shù)字化數(shù)字簽名是傳統(tǒng)簽名的數(shù)字化,基本要求基本要求: 能與所簽文件能與所簽文件“綁定綁定” 簽名者不能否認自己的簽名簽名者不能否認自己的簽名 簽名不能被偽造簽名不能被偽造 容易被驗證容易被驗證 公鑰算法的一個最重要的發(fā)展是數(shù)字簽名。公鑰算法的一個最重要的發(fā)展是數(shù)字簽名。數(shù)字簽名數(shù)字簽名 Message authentic
2、ation用以保護雙方之間的數(shù)用以保護雙方之間的數(shù)據(jù)交換不被第三方侵犯;但它并不保證雙方自據(jù)交換不被第三方侵犯;但它并不保證雙方自身的相互欺騙。假定身的相互欺騙。假定A發(fā)送一個認證的信息給發(fā)送一個認證的信息給B,雙方之間的爭議可能有多種形式:,雙方之間的爭議可能有多種形式: B偽造一個不同的消息,但聲稱是從偽造一個不同的消息,但聲稱是從A收到的。收到的。 A可以否認發(fā)過該消息,可以否認發(fā)過該消息,B無法證明無法證明A確實發(fā)了該確實發(fā)了該消息。消息。 例如:改大金額;股票交易指令虧損后抵賴。例如:改大金額;股票交易指令虧損后抵賴。數(shù)字簽名應具有的性質(zhì)數(shù)字簽名應具有的性質(zhì) 必須能夠驗證作者及其簽名
3、的日期時間;必須能夠驗證作者及其簽名的日期時間; 必須能夠認證簽名時刻的內(nèi)容;必須能夠認證簽名時刻的內(nèi)容; 簽名必須能夠由第三方驗證,以解決爭議;簽名必須能夠由第三方驗證,以解決爭議;因此,數(shù)字簽名功能包含了認證的功能。因此,數(shù)字簽名功能包含了認證的功能。數(shù)字簽名的設計要求數(shù)字簽名的設計要求 簽名必須是依賴于被簽名信息的一個位串模板;簽名必須是依賴于被簽名信息的一個位串模板; 簽名必須使用某些對發(fā)送者是唯一的信息,以簽名必須使用某些對發(fā)送者是唯一的信息,以防止雙方的偽造與否認;防止雙方的偽造與否認; 必須相對容易生成該數(shù)字簽名;必須相對容易生成該數(shù)字簽名; 必須相對容易識別和驗證該數(shù)字簽名;必
4、須相對容易識別和驗證該數(shù)字簽名; 偽造該數(shù)字簽名在計算復雜性意義上具有不可偽造該數(shù)字簽名在計算復雜性意義上具有不可行性,既包括對一個已有的數(shù)字簽名構造新的行性,既包括對一個已有的數(shù)字簽名構造新的消息,也包括對一個給定消息偽造一個數(shù)字簽消息,也包括對一個給定消息偽造一個數(shù)字簽名;名; 在存儲器中保存一個數(shù)字簽名副本是現(xiàn)實可行的。在存儲器中保存一個數(shù)字簽名副本是現(xiàn)實可行的。兩類數(shù)字簽名函數(shù)兩類數(shù)字簽名函數(shù) 直接數(shù)字簽名直接數(shù)字簽名 仲裁數(shù)字簽名仲裁數(shù)字簽名直接數(shù)字簽名(直接數(shù)字簽名(DDS)(1) AB: EKRaM提供了認證與簽名:提供了認證與簽名: 只有只有A具有具有KRa進行加密進行加密;
5、傳輸中無法被篡改;傳輸中無法被篡改; 任何第三方可以用任何第三方可以用KUa 驗證簽名驗證簽名(1) AB: EKUb EKRa(M)提供了保密提供了保密(KUb)、認證與簽名、認證與簽名(KRa):數(shù)字簽名方案數(shù)字簽名方案 先對消息先對消息M作一個摘要作一個摘要H(M) 然后發(fā)送方用自己的私鑰對然后發(fā)送方用自己的私鑰對H(M)進行加密,得進行加密,得到簽名到簽名EKRa(H(M) 連同消息連同消息M一起,發(fā)送出去一起,發(fā)送出去 B收到復合的消息之后,把簽名提取出來收到復合的消息之后,把簽名提取出來 B用用A的公鑰對簽名解密得到的公鑰對簽名解密得到M B計算所收到消息的摘要計算所收到消息的摘要
6、H=H(M) 如果如果H=H(M),則消息確實是,則消息確實是A產(chǎn)生的產(chǎn)生的 問題問題 公鑰的管理,公鑰與身份的對應關系公鑰的管理,公鑰與身份的對應關系 簽名的有效性,私鑰丟失?簽名的有效性,私鑰丟失?直接數(shù)字簽名直接數(shù)字簽名(2) 提供認證及數(shù)字簽名提供認證及數(shù)字簽名 AB: M|EKRaH(M) - H(M) 受到密碼算法的保護;受到密碼算法的保護; - 只有只有 A 能夠生成能夠生成 EKRaH(M) (2) 提供保密性、認證和數(shù)字簽名。提供保密性、認證和數(shù)字簽名。 AB: EKM|EKRaH(M)H|MKRaMDKUaHcompareEKRa H(M)數(shù)字簽名方案一數(shù)字簽名方案一ABE
7、RAS 的方案的方案MH|MH(M)EKRaDKUaMH(M)Hcompare數(shù)字簽名方案二數(shù)字簽名方案二ABH|EKRaMDKUaMHcompareEKRa(M)EKRa(M)HEKRa(M)數(shù)字簽名方案二數(shù)字簽名方案二*AB直接數(shù)字簽名的缺點直接數(shù)字簽名的缺點 驗證模式依賴于發(fā)送方的保密密鑰;驗證模式依賴于發(fā)送方的保密密鑰; 發(fā)送方要抵賴發(fā)送某一消息時,可能會聲稱其私發(fā)送方要抵賴發(fā)送某一消息時,可能會聲稱其私有密鑰丟失或被竊,從而他人偽造了他的簽名。有密鑰丟失或被竊,從而他人偽造了他的簽名。 通常需要采用與私有密鑰安全性相關的行政管理控通常需要采用與私有密鑰安全性相關的行政管理控制手段來制
8、止或至少是削弱這種情況,但威脅在某制手段來制止或至少是削弱這種情況,但威脅在某種程度上依然存在。種程度上依然存在。 改進的方式例如可以要求被簽名的信息包含一個時間改進的方式例如可以要求被簽名的信息包含一個時間戳(日期與時間),并要求將已暴露的密鑰報告給一戳(日期與時間),并要求將已暴露的密鑰報告給一個授權中心。個授權中心。 A的某些私有密鑰確實在時間的某些私有密鑰確實在時間T被竊取,敵方可以被竊取,敵方可以偽造偽造A的簽名及早于或等于時間的簽名及早于或等于時間T的時間戳。的時間戳。仲裁數(shù)字簽名仲裁數(shù)字簽名 引入仲裁者。引入仲裁者。 通常的做法是所有從發(fā)送方通常的做法是所有從發(fā)送方A到接收方到接
9、收方B的簽名消的簽名消息首先送到仲裁者息首先送到仲裁者S,S將消息及其簽名進行一系將消息及其簽名進行一系列測試,以檢查其來源和內(nèi)容,然后將消息加上日列測試,以檢查其來源和內(nèi)容,然后將消息加上日期并與已被仲裁者驗證通過的指示一起發(fā)給期并與已被仲裁者驗證通過的指示一起發(fā)給B。 仲裁者在這一類簽名模式中扮演敏感和關鍵的角色。仲裁者在這一類簽名模式中扮演敏感和關鍵的角色。 所有的參與者必須極大地相信這一仲裁機制工作所有的參與者必須極大地相信這一仲裁機制工作正常。(正常。(trusted system)(a) 單密鑰加密方式,仲裁者可以看見消息單密鑰加密方式,仲裁者可以看見消息(1) AS:M|EKAS
10、IDA| H(M)(2) SB:EKSBIDA| M | EKASIDA| H(M) | TA與與S之間共享密鑰之間共享密鑰KAS,B與與S之間共享密鑰之間共享密鑰KSB;A:準備消息準備消息M,計算其散列碼,計算其散列碼H(M),用,用A的標識符的標識符IDA 和散列值構成和散列值構成 簽名,并將消息及簽名經(jīng)簽名,并將消息及簽名經(jīng)KAS加密后發(fā)送給加密后發(fā)送給S;S:解密簽名,用:解密簽名,用H(M)驗證消息驗證消息M,然后將,然后將IDA,M,簽名,和時間戳,簽名,和時間戳 一起經(jīng)一起經(jīng)KSB加密后發(fā)送給加密后發(fā)送給B;B:解密:解密S發(fā)來的信息,并可將發(fā)來的信息,并可將M和簽名保存起來。
11、和簽名保存起來。解決糾紛:解決糾紛:B:向:向S發(fā)送發(fā)送 EKSBIDA| M | EKASIDA| H(M) S:用:用KSB恢復恢復IDA,M,和簽名(,和簽名( EKASIDA| H(M)),然后用),然后用 KAS解解密簽名并驗證散列碼密簽名并驗證散列碼仲裁數(shù)字簽名技術仲裁數(shù)字簽名技術注意:注意: 在這種模式下在這種模式下B不能直接驗證不能直接驗證A的簽名,的簽名,B認為認為S的消息已認證,只的消息已認證,只 因為它來自因為它來自S。因此,雙方都需要高度相信。因此,雙方都需要高度相信S: A必須信任必須信任S沒有暴露沒有暴露KAS,并且沒有生成錯誤的簽名,并且沒有生成錯誤的簽名EKAS
12、IDA| H(M) B必須信任必須信任S僅當散列值正確并且簽名確實是僅當散列值正確并且簽名確實是A產(chǎn)生的情況下才產(chǎn)生的情況下才 發(fā)送的發(fā)送的 EKSBIDA| M | EKASIDA| H(M) | T 雙方都必須信任雙方都必須信任S處理爭議是公正的。處理爭議是公正的。只要只要S遵循上述要求,則遵循上述要求,則A相信沒有人可以偽造其簽名;相信沒有人可以偽造其簽名;B相信相信A不不能否認其簽名。能否認其簽名。上述情況還隱含著上述情況還隱含著S可以看到可以看到A給給B的所有信息,因而所有的竊聽者的所有信息,因而所有的竊聽者也能看到。也能看到。(b) 單密鑰加密方式,仲裁者不可以看見消息單密鑰加密方
13、式,仲裁者不可以看見消息(1) AS: IDA | EKABM|EKASIDA| H(EKABM)(2) SB:EKSBIDA|EKABM | EKASIDA| H(EKABM) | T在這種情況下,在這種情況下,A與與B之間共享密鑰之間共享密鑰KAB,A:將標識符:將標識符IDA ,密文密文 EKABM,以及對,以及對IDA和密文消息的散列碼用和密文消息的散列碼用 KAS加密后形成簽名加密后形成簽名發(fā)送給發(fā)送給S。S:解密簽名,用散列碼驗證消息,這時:解密簽名,用散列碼驗證消息,這時S只能驗證消息的密文而不只能驗證消息的密文而不 能讀取其內(nèi)容。然后能讀取其內(nèi)容。然后S將來自將來自A的所有信息
14、加上時間戳并用的所有信息加上時間戳并用KSB加加 密后發(fā)送給密后發(fā)送給B。(a)和和(b)共同存在一個共性問題:共同存在一個共性問題:S和發(fā)送方聯(lián)手可以否認簽名的信息;和發(fā)送方聯(lián)手可以否認簽名的信息;S和接收方聯(lián)手可以偽造發(fā)送方的簽名;和接收方聯(lián)手可以偽造發(fā)送方的簽名;(c) 雙密鑰加密方式,仲裁者不可以看見消息雙密鑰加密方式,仲裁者不可以看見消息(1) AS: IDA | EKRAIDA | EKUB (EKRAM)(2) SB: EKRSIDA| EKUBEKRAM | TA:對消息對消息M雙重加密:首先用雙重加密:首先用A的私有密鑰的私有密鑰KRA,然后用,然后用B的公開的公開 密鑰密鑰
15、KUB。形成一個簽名的、保密的消息。然后將該信息以及。形成一個簽名的、保密的消息。然后將該信息以及 A的標識符一起用的標識符一起用KRA簽名后與簽名后與IDA 一起發(fā)送給一起發(fā)送給S。這種內(nèi)部、。這種內(nèi)部、 雙重加密的消息對雙重加密的消息對S以及對除以及對除B以外的其它人都是安全的。以外的其它人都是安全的。S:檢查:檢查A的公開的公開/私有密鑰對是否仍然有效,是,則認證消息。并私有密鑰對是否仍然有效,是,則認證消息。并 將包含將包含IDA、雙重加密的消息和時間戳構成的、雙重加密的消息和時間戳構成的 消息用消息用KRS簽名后簽名后 發(fā)送給發(fā)送給B。本模式比上述兩個模式具有以下好處:本模式比上述兩
16、個模式具有以下好處:1、在通信之前各方之間無須共享任何信息,從而避免了聯(lián)手作弊;、在通信之前各方之間無須共享任何信息,從而避免了聯(lián)手作弊;2、即使、即使KRA 暴露,只要暴露,只要KRS 未暴露,不會有錯誤標定日期的消息未暴露,不會有錯誤標定日期的消息 被發(fā)送;被發(fā)送;3、從、從A發(fā)送給發(fā)送給B的消息的內(nèi)容對的消息的內(nèi)容對S和任何其他人是保密的。和任何其他人是保密的。認證協(xié)議認證協(xié)議安全層次安全層次安全的密碼算法安全協(xié)議網(wǎng)絡安全系統(tǒng)安全應用安全回顧:信息安全的需求回顧:信息安全的需求 保密性保密性Confidentiality 完整性完整性Integrity 系統(tǒng)完整性系統(tǒng)完整性 數(shù)據(jù)完整性數(shù)
17、據(jù)完整性 可用性可用性Availability 真實性真實性 authenticity 認證認證 消息認證消息認證 身份認證:驗證真實身份和所聲稱身份相符的過程身份認證:驗證真實身份和所聲稱身份相符的過程 認證協(xié)議認證協(xié)議 基于對稱密碼算法的認證方案基于對稱密碼算法的認證方案 是否需要密鑰分發(fā)中心是否需要密鑰分發(fā)中心(KDC)? 對于協(xié)議的攻擊手法對于協(xié)議的攻擊手法 認證的對象認證的對象 消息發(fā)送方消息發(fā)送方 消息本身消息本身 基于公鑰密碼算法的認證方案基于公鑰密碼算法的認證方案 公鑰和身份的綁定公鑰和身份的綁定基于對稱密碼算法的認證基于對稱密碼算法的認證消息認證消息認證MAC碼或者碼或者HM
18、AC碼碼前提:存在共享密鑰前提:存在共享密鑰密鑰管理中心密鑰管理中心或者用一個密鑰交換協(xié)議或者用一個密鑰交換協(xié)議身份認證身份認證依據(jù)依據(jù)所知:口令、密鑰,等所知:口令、密鑰,等所有:身份證、智能卡,等所有:身份證、智能卡,等物理標識:指紋、筆跡、虹膜、物理標識:指紋、筆跡、虹膜、DNA,等,等基于口令基于口令證明是否知道口令證明是否知道口令口令的強度口令的強度雙方認證雙方認證 (mutual authentication)和單向認證和單向認證 (one-way authentication)目的:分發(fā)密鑰、簽名有效性,目的:分發(fā)密鑰、簽名有效性,認證方式認證方式兩方通訊兩方通訊 一方發(fā)起通訊,
19、另一方應答一方發(fā)起通訊,另一方應答 雙向雙向(mutual authentication)和單向認證和單向認證(one-way authentication)有第三方介入的認證有第三方介入的認證 第三方為可信任方,第三方為可信任方,KDC在線和離線在線和離線其他情形其他情形 多方認證多方認證 跨域認證跨域認證 委托認證模型、信任模型委托認證模型、信任模型 認證協(xié)議:設計一個協(xié)議認證協(xié)議:設計一個協(xié)議(一一)假設假設A和和B要進行通訊,要進行通訊,A和和B有一個共享的密鑰有一個共享的密鑰Kab,如何利用如何利用這個密鑰進行認證,并且商定一個會話密鑰這個密鑰進行認證,并且商定一個會話密鑰Ks1 A
20、B: (IDA|N1)2 BA: EKabKs,IDB,f(N1),N2)3 AB: EKsf(N2) 這里的這里的f函數(shù)為某個確定的運算,比如函數(shù)為某個確定的運算,比如f(x)=x+1AKabB1、我是A2、告訴你Ks,以后就用它,別讓別人知道 3、 好的,我用它試試,可我怎么知道Ks 4、 如果你知道Kab,那么你就知道Ks,我就知道你是A認證協(xié)議:設計一個協(xié)議認證協(xié)議:設計一個協(xié)議(二二)假設假設A和和B要進行通訊,要進行通訊,A和和B與與KDC各有一個共享密鑰各有一個共享密鑰Ka和和Kb, 如何利用這兩個如何利用這兩個密鑰進行認證,并且商定一個會話密鑰密鑰進行認證,并且商定一個會話密鑰
21、KsAKDC: (IDA|IDB|N1)KDCA: EKaKs|IDB|N1|EKb(Ks,IDA)AB: EKb(Ks,IDA)|EKs(M)AKbB我是A,我想和B通訊 KDC Ka我把必要的信息告訴你我把消息給你,如果你是B,你就可以解開會話密鑰Ks,由A送給B的認證信息認證協(xié)議中的常用技術認證協(xié)議中的常用技術(一一) 時間戳時間戳 A收到一個消息,根據(jù)消息中的時間戳信息,判收到一個消息,根據(jù)消息中的時間戳信息,判斷消息的有效性斷消息的有效性 如果消息的時間戳與如果消息的時間戳與A所知道的當前時間足夠接近所知道的當前時間足夠接近 這種方法要求不同參與者之間的時鐘需要同步這種方法要求不同參
22、與者之間的時鐘需要同步 在網(wǎng)絡環(huán)境中,特別是在分布式網(wǎng)絡環(huán)境中,時鐘同步在網(wǎng)絡環(huán)境中,特別是在分布式網(wǎng)絡環(huán)境中,時鐘同步并不容易做到并不容易做到 一旦時鐘同步失敗一旦時鐘同步失敗 要么協(xié)議不能正常服務,影響可用性要么協(xié)議不能正常服務,影響可用性(availability),造成拒絕服務,造成拒絕服務(DOS) 要么放大時鐘窗口,造成攻擊的機會要么放大時鐘窗口,造成攻擊的機會 時間窗大小的選擇應根據(jù)消息的時效性來確定時間窗大小的選擇應根據(jù)消息的時效性來確定認證協(xié)議中的常見技術認證協(xié)議中的常見技術(二二)詢問詢問/應答方式應答方式(Challenge/Response) A期望從期望從B獲得一個條
23、件獲得一個條件首先發(fā)給首先發(fā)給B一個隨機值一個隨機值(challenge)B收到這個值之后,對它作某種變換,得到收到這個值之后,對它作某種變換,得到response,并送,并送回去回去A收到這個收到這個response,可以驗證,可以驗證B符合這個條件符合這個條件 在有的協(xié)議中,這個在有的協(xié)議中,這個challenge也稱為也稱為nonce可能明文傳輸,也可能密文傳輸可能明文傳輸,也可能密文傳輸 這個條件可以是知道某個口令,也可能是其他這個條件可以是知道某個口令,也可能是其他的事情的事情變換例子:用密鑰加密,說明變換例子:用密鑰加密,說明B知道這個密鑰知道這個密鑰;簡單運算,比如增一,說明簡單
24、運算,比如增一,說明B知道這個隨機值知道這個隨機值 常用于交互式的認證協(xié)議中常用于交互式的認證協(xié)議中雙方認證協(xié)議雙方認證協(xié)議 最常用的認證協(xié)議,該協(xié)議使得通信各方最常用的認證協(xié)議,該協(xié)議使得通信各方互相認證鑒別各自的身份,然后交換會話互相認證鑒別各自的身份,然后交換會話密鑰。密鑰。 基于認證的密鑰交換核心問題有兩個:基于認證的密鑰交換核心問題有兩個: 保密性保密性 時效性時效性 最壞情況下可能導致敵人暴露會話密鑰,或成功地冒充其他人;至少也可以干最壞情況下可能導致敵人暴露會話密鑰,或成功地冒充其他人;至少也可以干擾系統(tǒng)的正常運行,處理不好將導致系統(tǒng)癱瘓。擾系統(tǒng)的正常運行,處理不好將導致系統(tǒng)癱瘓
25、。常見的消息重放攻擊形式有:常見的消息重放攻擊形式有:1、簡單重放:攻擊者簡單復制一條消息,以后在重新發(fā)送它;、簡單重放:攻擊者簡單復制一條消息,以后在重新發(fā)送它;2、可被日志記錄的復制品:攻擊者可以在一個合法有效的時間、可被日志記錄的復制品:攻擊者可以在一個合法有效的時間 窗內(nèi)重放一個帶時間戳的消息;窗內(nèi)重放一個帶時間戳的消息;3、不能被檢測到的復制品:這種情況可能出現(xiàn),原因是原始信、不能被檢測到的復制品:這種情況可能出現(xiàn),原因是原始信 息已經(jīng)被攔截,無法到達目的地,而只有重放的信息到達目息已經(jīng)被攔截,無法到達目的地,而只有重放的信息到達目 的地。的地。4、反向重放,不做修改。向消息發(fā)送者重
26、放。當采用傳統(tǒng)對稱、反向重放,不做修改。向消息發(fā)送者重放。當采用傳統(tǒng)對稱 加密方式時,這種攻擊是可能的。因為消息發(fā)送者不能簡單加密方式時,這種攻擊是可能的。因為消息發(fā)送者不能簡單 地識別發(fā)送的消息和收到的消息在內(nèi)容上的區(qū)別。地識別發(fā)送的消息和收到的消息在內(nèi)容上的區(qū)別。消息重放攻擊:消息重放攻擊:對付重放攻擊的一種方法是對付重放攻擊的一種方法是 在認證交換中使用一個序數(shù)來給每一個在認證交換中使用一個序數(shù)來給每一個消息報文編號。僅當?shù)降南⑿驍?shù)順序合消息報文編號。僅當?shù)降南⑿驍?shù)順序合法時才接受之。但這種方法的困難是要求法時才接受之。但這種方法的困難是要求雙方必須保持上次消息的序號。雙方必須保持上
27、次消息的序號。1、時間戳:、時間戳:A接受一個新消息僅當該消息包含一個時間戳,該時間戳接受一個新消息僅當該消息包含一個時間戳,該時間戳 在在A看來,是足夠接近看來,是足夠接近A所知道的當前時間;這種方法要求不同參所知道的當前時間;這種方法要求不同參 與者之間的時鐘需要同步。與者之間的時鐘需要同步。2、盤問、盤問/應答方式。(應答方式。(Challenge/Response)A期望從期望從B獲得一個新消息獲得一個新消息 ,首先發(fā)給,首先發(fā)給B一個臨時值一個臨時值(challenge),并要求后續(xù)從,并要求后續(xù)從B收到的消息(收到的消息( response)包含正確的這個臨時值。)包含正確的這個臨
28、時值。對付重放攻擊更為一般的方法方法是:對付重放攻擊更為一般的方法方法是:時間戳方法似乎不能用于面向連接的應用。時間戳方法似乎不能用于面向連接的應用。(1) 某些協(xié)議需要在各種處理器時鐘中維持同步。該協(xié)議必須既要容某些協(xié)議需要在各種處理器時鐘中維持同步。該協(xié)議必須既要容 錯以對付網(wǎng)絡出錯,又要安全以對付重放攻擊。錯以對付網(wǎng)絡出錯,又要安全以對付重放攻擊。(2) 由于某一方的時鐘機制故障可能導致臨時失去同步,這將增大攻由于某一方的時鐘機制故障可能導致臨時失去同步,這將增大攻 擊成功的機會。擊成功的機會。(3) 由于變化的和不可預見的網(wǎng)絡延遲的本性,不能期望分布式時鐘由于變化的和不可預見的網(wǎng)絡延遲
29、的本性,不能期望分布式時鐘 保持精確的同步。因此,任何基于時間戳的過程必須采用時間窗保持精確的同步。因此,任何基于時間戳的過程必須采用時間窗 的方式來處理:一方面時間窗應足夠大以包容網(wǎng)絡延遲,另一方的方式來處理:一方面時間窗應足夠大以包容網(wǎng)絡延遲,另一方 面時間窗應足夠小以最大限度地減小遭受攻擊的機會。面時間窗應足夠小以最大限度地減小遭受攻擊的機會。盤問盤問/應答方法不適應非連接性的應用。應答方法不適應非連接性的應用。因為它要求在傳輸開始之前因為它要求在傳輸開始之前先有握手的額外開銷,這就抵消了無連接通信的主要特點。先有握手的額外開銷,這就抵消了無連接通信的主要特點。安全的時間服務器用以實現(xiàn)時
30、鐘同步可能是最好的方法。安全的時間服務器用以實現(xiàn)時鐘同步可能是最好的方法。1、A KDC:IDA|IDB|N12、KDC A:EKakKs|IDB|N1|EKbkKs|IDA3、A B: EKbkKs|IDA4、B A: EKsN25、A B: EKsf(N2)保密密鑰保密密鑰Ka和和Kb分別是分別是A和和KDC、B和和KDC之間共享的密鑰。之間共享的密鑰。本協(xié)議的目的就是要安全地分發(fā)一個會話密鑰本協(xié)議的目的就是要安全地分發(fā)一個會話密鑰Ks給給A和和B。A在第在第2步安全地得到了一個新的會話密鑰,第步安全地得到了一個新的會話密鑰,第3步只能由步只能由B解密、解密、并理解。第并理解。第4步表明步
31、表明B已知道已知道Ks了。第了。第5步表明步表明B相信相信A知道知道Ks并且并且消息不是偽造的。消息不是偽造的。第第4,5步目的是為了防止某種類型的重放攻擊。但是,如果敵方步目的是為了防止某種類型的重放攻擊。但是,如果敵方能夠在第能夠在第3步捕獲該消息,并重放之,這將在某種程度上干擾破壞步捕獲該消息,并重放之,這將在某種程度上干擾破壞B方的運行操作。方的運行操作。一個使用一個使用KDC進行密鑰分配的方案進行密鑰分配的方案 Needham/Schroeder Protocol上述方法盡管有第上述方法盡管有第4,5步的握手,但仍然有漏洞。步的握手,但仍然有漏洞。 假定攻擊方假定攻擊方C已經(jīng)掌握已經(jīng)
32、掌握A和和B之間通信的一個老的會話密鑰。之間通信的一個老的會話密鑰。C可以在第可以在第3步冒充步冒充A利用老的會話密鑰欺騙利用老的會話密鑰欺騙B。除非。除非B記住所有記住所有以前使用的與以前使用的與A通信的會話密鑰,否則通信的會話密鑰,否則B無法判斷這是一個重放無法判斷這是一個重放攻擊。如果攻擊。如果C可以中途阻止第可以中途阻止第4步的握手信息,則可以冒充步的握手信息,則可以冒充A在在第第5步響應。從這一點起,步響應。從這一點起,C就可以向就可以向B發(fā)送偽造的消息而對發(fā)送偽造的消息而對B來來說認為是用認證的會話密鑰與說認為是用認證的會話密鑰與A進行的正常通信。進行的正常通信。(作業(yè):有何安全漏
33、洞?)(作業(yè):有何安全漏洞?)Denning Protocol (對(對Needham/Schroeder protocol 的的改進)改進):1、A KDC:IDA|IDB2、KDC A:EKaKs|IDB|T|EKbKs|IDA|T3、A B: EKbKs|IDA|T4、B A: EKsN15、A B: EKsf(N1)| Clock - T | S: ReqChal, Cc S-C: Cs 2. C、S計算會話密鑰計算會話密鑰 Ks = E(PW9.15,E(PW0.6,Add(Cc,Cs) 3.3.C: Rc = Cred(Ks,Cc) C: Rc = Cred(Ks,Cc) C-S
34、Authenticate, RcC-S Authenticate, Rc4.4. S: assert(Rc = Cred(Ks,Cc) S: assert(Rc = Cred(Ks,Cc) Rs = Cred(Ks,Cs), Rs = Cred(Ks,Cs), S-C Rs S-C Rs C: assert(Rs = Cred(Ks,Cs)C: assert(Rs = Cred(Ks,Cs)From From NT Domain Authentication身份認證實例身份認證實例-Kerberos引言引言 Greek Kerberos: 古古希臘神話故事中一種三個希臘神話故事中一種三個頭的狗
35、,還有一個蛇形尾巴。是地獄之門的頭的狗,還有一個蛇形尾巴。是地獄之門的守護者。守護者。 Modern Kerberos: 意指有三個組成部分的網(wǎng)絡意指有三個組成部分的網(wǎng)絡之門的保衛(wèi)者。之門的保衛(wèi)者?!叭^三頭”包括:包括: 認證認證(authentication) 帳目清算帳目清算(accounting) 審計審計(audit) (認證、數(shù)據(jù)完整性、保密性認證、數(shù)據(jù)完整性、保密性)!.Kerberos認證協(xié)議認證協(xié)議 歷史歷史 80年代中期年代中期 是是MIT(.Massachusettes Institute of Technology (美國美國)麻省理工學院麻省理工學院)的的Athena
36、 工程的產(chǎn)物工程的產(chǎn)物( part of Project Athena at MIT) 版本版本 前三個版本僅用于內(nèi)部前三個版本僅用于內(nèi)部 第四版得到了廣泛的應用第四版得到了廣泛的應用 第五版于第五版于1989年開始設計年開始設計 1993年確定年確定 標準標準Kerberos 解決的問題解決的問題 認證、數(shù)據(jù)完整性、保密性認證、數(shù)據(jù)完整性、保密性問題問題 在一個開放的分布式網(wǎng)絡環(huán)境中,用戶通過工在一個開放的分布式網(wǎng)絡環(huán)境中,用戶通過工作站訪問服務器上提供的服務。作站訪問服務器上提供的服務。 服務器應能夠限制非授權用戶的訪問并能夠認證服務器應能夠限制非授權用戶的訪問并能夠認證對服務的請求。對服
37、務的請求。 工作站不能夠被網(wǎng)絡服務所信任其能夠正確地認定工作站不能夠被網(wǎng)絡服務所信任其能夠正確地認定用戶,即工作站存在三種威脅。用戶,即工作站存在三種威脅。 一個工作站上一個用戶可能冒充另一個用戶操作;一個工作站上一個用戶可能冒充另一個用戶操作; 一個用戶可能改變一個工作站的網(wǎng)絡地址,從而冒充另一個用戶可能改變一個工作站的網(wǎng)絡地址,從而冒充另一臺工作站工作;一臺工作站工作; 一個用戶可能竊聽他人的信息交換,并用重放攻擊獲得一個用戶可能竊聽他人的信息交換,并用重放攻擊獲得對一個服務器的訪問權或中斷服務器的運行。對一個服務器的訪問權或中斷服務器的運行。Kerberos要解決的問題要解決的問題 所有
38、上述問題可以歸結為一個非授權用戶能夠獲所有上述問題可以歸結為一個非授權用戶能夠獲得其無權訪問的服務或數(shù)據(jù)。得其無權訪問的服務或數(shù)據(jù)。 不是為每一個服務器構造一個身份認證協(xié)議,不是為每一個服務器構造一個身份認證協(xié)議,Kerberos提供一個中心認證服務器,提供用戶到提供一個中心認證服務器,提供用戶到服務器和服務器到用戶的認證服務。服務器和服務器到用戶的認證服務。 Kerberos采用傳統(tǒng)加密算法采用傳統(tǒng)加密算法(不用公鑰加密不用公鑰加密)。 Kerberos Version4和和Version5 。信息系統(tǒng)資源保護的動機信息系統(tǒng)資源保護的動機 單用戶單機系統(tǒng)單用戶單機系統(tǒng):用戶資源和文件受到物理
39、上的用戶資源和文件受到物理上的安全保護;安全保護; 多用戶分時系統(tǒng)多用戶分時系統(tǒng):操作系統(tǒng)提供基于用戶標識的操作系統(tǒng)提供基于用戶標識的訪問控制策略,并用訪問控制策略,并用logon過程來標識用戶。過程來標識用戶。 Client/Server網(wǎng)絡結構網(wǎng)絡結構:由一組工作站和一組分由一組工作站和一組分布式服務器或中心式服務器組成。布式服務器或中心式服務器組成。Client/Server網(wǎng)絡結構三種可能的安全方案網(wǎng)絡結構三種可能的安全方案相信每一個單獨的客戶工作站可以保證對其用相信每一個單獨的客戶工作站可以保證對其用戶的識別,并依賴于每一個服務器強制實施一戶的識別,并依賴于每一個服務器強制實施一個基
40、于用戶標識的安全策略。個基于用戶標識的安全策略。 要求客戶端系統(tǒng)將它們自己向服務器作身份認證,要求客戶端系統(tǒng)將它們自己向服務器作身份認證,但相信客戶端系統(tǒng)負責對其用戶的識別。但相信客戶端系統(tǒng)負責對其用戶的識別。要求每一個用戶對每一個服務證明其標識身份,要求每一個用戶對每一個服務證明其標識身份,同樣要求服務器向客戶端證明其標識身份。同樣要求服務器向客戶端證明其標識身份。Kerberos的解決方案的解決方案 在一個分布式的在一個分布式的client/server體系機構中采體系機構中采用一個或多個用一個或多個Kerberos服務器提供一個認證服務器提供一個認證服務。服務。Kerberos系統(tǒng)應滿足
41、的要求系統(tǒng)應滿足的要求 安全:網(wǎng)絡竊聽者不能假冒其它用戶獲得必要安全:網(wǎng)絡竊聽者不能假冒其它用戶獲得必要信息以;信息以;Kerberos應足夠強壯以至于潛在的敵應足夠強壯以至于潛在的敵人無法找到它的弱點連接。人無法找到它的弱點連接。 可靠:可靠:Kerberos應高度可靠,并且應借助于一應高度可靠,并且應借助于一 個分布式服務器體系結構,使得一個系統(tǒng)能夠個分布式服務器體系結構,使得一個系統(tǒng)能夠備份另一個系統(tǒng)。備份另一個系統(tǒng)。 透明:理想情況下,用戶除了要求輸入口令以外透明:理想情況下,用戶除了要求輸入口令以外應感覺不到認證的發(fā)生。應感覺不到認證的發(fā)生。 可伸縮:系統(tǒng)應能夠支持大數(shù)量的客戶和服務
42、可伸縮:系統(tǒng)應能夠支持大數(shù)量的客戶和服務器。器。Kerberos協(xié)議中一些概念協(xié)議中一些概念Principal(安全個體安全個體)被認證的個體,有一個名字被認證的個體,有一個名字(name)和口令和口令(password)KDC(Key distribution center)是一個網(wǎng)絡服務,提供是一個網(wǎng)絡服務,提供ticket和臨時的會話密鑰和臨時的會話密鑰Ticket(票據(jù))(票據(jù))一個記錄,客戶可以用它來向服務器證明自己的身份,其中包括一個記錄,客戶可以用它來向服務器證明自己的身份,其中包括客戶的標識、會話密鑰、時間戳,以及其他一些信息。客戶的標識、會話密鑰、時間戳,以及其他一些信息。T
43、icket 中的中的大多數(shù)信息都被加密,密鑰為服務器的密鑰大多數(shù)信息都被加密,密鑰為服務器的密鑰Authenticator(認證)(認證)一個記錄,其中包含一些最近產(chǎn)生的信息,產(chǎn)生這些信息需要用一個記錄,其中包含一些最近產(chǎn)生的信息,產(chǎn)生這些信息需要用到客戶和服務器之間共享的會話密鑰到客戶和服務器之間共享的會話密鑰Credentials(證書)(證書)一個一個ticket加上一個秘密的會話密鑰加上一個秘密的會話密鑰Kerberos Version4 引入一個信任的第三方認證服務,它使用的協(xié)引入一個信任的第三方認證服務,它使用的協(xié)議建立在議建立在Needham & Schroeder協(xié)議的
44、基礎協(xié)議的基礎上。上。 采用采用DES,精心設計協(xié)議,提供認證服務。,精心設計協(xié)議,提供認證服務。 引入身份認證服務器引入身份認證服務器(AS),它知道所有用戶的口令并將它們存儲在一個中央數(shù)據(jù),它知道所有用戶的口令并將它們存儲在一個中央數(shù)據(jù)庫中。庫中。AS與每一個服務器共有一個唯一的保密密鑰。這些密鑰已經(jīng)用物理方式或更安與每一個服務器共有一個唯一的保密密鑰。這些密鑰已經(jīng)用物理方式或更安全的方式發(fā)出去了。全的方式發(fā)出去了??紤]以下假定的對話:考慮以下假定的對話:(1) C AS: IDC | PC | IDV(2) AS C: Ticket(3) C V : IDC | TicketTicket
45、 = EKVIDC | ADC | IDV其中:C: clientAS : Authentication Server V : serverIDC: identifier of user on C IDV: identifier of VPC: password of user on CADC: network address of CKV: AS與與V共有的保密密鑰共有的保密密鑰CVAS(1)(2)(3)一個簡單的認證對話在Tiket中: IDC 指明消息由指明消息由C發(fā)出發(fā)出 ADC 防止用防止用IDC 的名稱從另一個工作站轉(zhuǎn)發(fā)的名稱從另一個工作站轉(zhuǎn)發(fā)message(3) IDV V可以驗
46、證加密的正確性可以驗證加密的正確性 更安全的認證對話更安全的認證對話 兩個主要問題兩個主要問題 希望用戶輸入口令的次數(shù)最少。希望用戶輸入口令的次數(shù)最少。(每天用多次或每天用多次或訪問不同的服務器訪問不同的服務器) 口令以明文傳送會被竊聽??诹钜悦魑膫魉蜁桓`聽。 解決辦法解決辦法 可重復使用的票據(jù)可重復使用的票據(jù) (ticket reusable) 票據(jù)授予服務器票據(jù)授予服務器 (ticket-granting server)(TGS)每個用戶登錄會話一次每個用戶登錄會話一次(Once per user logon session)(1) C AS : IDC | IDtgs(2) AS C
47、: EKCTickettgs TGS: 票據(jù)授予服務器(3)(KC 由用戶口令生成的密鑰由用戶口令生成的密鑰,當回應到達當回應到達C 時客戶機提時客戶機提(4) 示示C 輸入口令輸入口令,這樣就不用傳輸明文口令這樣就不用傳輸明文口令)每個服務類型一次每個服務類型一次(Once per type of service)(3) C TGS : IDC | IDv | Tickettgs(4) TGS C : TicketV(5) 每個服務對話一次每個服務對話一次(Once per service session)(5) C V : IDC | TicketVTickettgs = EKtgsIDC
48、|ADC|IDtgs|TS1|Lifetime1TicketV = EKVIDC|ADC|IDV|TS2|Lifetime2 KV: AS與與V共有的保密密鑰共有的保密密鑰 Ktgs : AS與與TGS共有的保密密鑰共有的保密密鑰 CVAS(1)(2)(3)TGS(4)(5)Kerberos改進后的假想對話:改進后的假想對話:Kerberos V4 Authentication Dialogue 兩個問題兩個問題 與與ticket-granting ticket相關的相關的Lifetime問題;問題; 需要服務器向客戶進行認證;需要服務器向客戶進行認證; 解決方案解決方案 會話密鑰會話密鑰 (
49、session key)(a) Authentication Service Exchange: to obtain ticket-granting ticket (1) C AS : IDC | IDtgs | TS1 (2) AS C : EKCKc,tgs | IDtgs | TS2 | Lifetime2 | TickettgsTickettgs = EKtgs Kc,tgs | IDC | ADC | IDtgs | TS2 | Lifetime2(b) Ticket-granting Service Exchange: to obtain service-granting tick
50、et (3) C TGS : IDV | Tickettgs | Authenticatorc (4) TGS C : EKc,tgsKc,v | IDV | TS4 | TicketvTickettgs = EKtgsKc,togs| IDC| ADC| IDtgs | TS2 | Lifetime2Ticketv = EKVKc,v|IDC|ADC| IDv|TS4|Lifetime4Authenticatorc = EKc,tgsIDc|ADc|TS3(c) Client/Server Authentication Exchange: To obtain service (5) C V
51、: Ticketv | Authenticatorc (6) V C : EKc,vTS5+1 ( for mutual authentication)Ticketv = EKVKc,v|IDc|ADc|IDv|TS4|Lifetime4Authenticatorc = EKc,vIDc|ADc|TS5 Kerberos Version 4 消息交換小結消息交換小結Summary of Kerberos Version 4 Message Exchanges(a) Authentication Service ExchangeMessage(1)Client 請求請求 ticket-grant
52、ing ticket IDC : 告訴告訴AS本本client端的用戶標識;端的用戶標識; IDtgs :告訴告訴AS用戶請求訪問用戶請求訪問TGS; TS1 :讓讓AS驗證驗證client端的時鐘是與端的時鐘是與AS的時鐘同步的;的時鐘同步的;Message(2)AS返回返回ticket-granting ticket EKC :基于用戶口令的加密,使得基于用戶口令的加密,使得AS和和client可以驗證口令,可以驗證口令,并保護并保護Message(2)。 Kc,tgs : session key的副本,由的副本,由AS產(chǎn)生,產(chǎn)生,client可用于在可用于在AS與與client之間信息的
53、安全交換,而不必共用一個永久的之間信息的安全交換,而不必共用一個永久的key。 IDtgs : 確認這個確認這個ticket是為是為TGS制作的。制作的。 TS2 :告訴告訴client該該ticket簽發(fā)的時間。簽發(fā)的時間。 Lifetime2:告訴告訴client該該ticket的有效期;的有效期; Tickettgs:client用來訪問用來訪問TGS的的ticket。 Rationale for the Elements of the Kerberos Version 4 Protocol(b) Ticket-granting Service ExchangeMessage(3)cli
54、ent 請求請求service-granting ticket IDv:告訴告訴TGS用戶要訪問服務器用戶要訪問服務器V; Tickettgs :向向TGS證實該用戶已被證實該用戶已被AS認證;認證;Authenticatorc:由由client生成,用于驗證生成,用于驗證ticket;Message(4)TGS返回返回service-granting ticket EKc,tgs :僅由僅由C和和TGS共享的密鑰;用以保護共享的密鑰;用以保護Message(4); Kc,tgs: session key的副本,由的副本,由TGS生成,供生成,供client和和server之間之間信息的安全交
55、換,而無須共用一個永久密鑰。信息的安全交換,而無須共用一個永久密鑰。 IDv :確認該確認該ticket是為是為server V簽發(fā)的;簽發(fā)的; TS4 :告訴告訴client該該ticket簽發(fā)的時間;簽發(fā)的時間; TicketV :client用以訪問服務器用以訪問服務器V的的ticket; Tickettgs:可重用,從而用戶不必重新輸入口令;可重用,從而用戶不必重新輸入口令; EKtgs : ticket用只有用只有AS和和TGS才知道的密鑰加密,以預防篡改;才知道的密鑰加密,以預防篡改; Kc,tgs : TGS可用的可用的session key副本,用于解密副本,用于解密authe
56、nticator,從而從而認證認證ticket; IDc :指明該指明該ticket的正確主人;的正確主人;Kerberos處理過程概要CVAS(1)(2)(3)TGS(4)(5)Kerberos(6) Kerberos中中ticket示意圖示意圖Kerberos管轄范圍與多重服務管轄范圍與多重服務一個完整的一個完整的Kerberos環(huán)境包括一個環(huán)境包括一個Kerberos服務器,一組工作站,和一服務器,一組工作站,和一組應用服務器,滿足下列要求:組應用服務器,滿足下列要求: Kerberos服務器必須在其數(shù)據(jù)庫中擁有所有參與服務器必須在其數(shù)據(jù)庫中擁有所有參與用戶的用戶的ID(UID)和口令散
57、列和口令散列(hash)表。所有用戶均表。所有用戶均在在Kerberos服務器上注冊。服務器上注冊。 Kerberos服務器必須與每一個服務器之間共享一個保密服務器必須與每一個服務器之間共享一個保密密鑰。所有服務器均在密鑰。所有服務器均在Kerberos服務器上注冊。服務器上注冊。這樣的環(huán)境被視為一個領域這樣的環(huán)境被視為一個領域(realm)。 每一個轄區(qū)的每一個轄區(qū)的Kerberos 服務器與其它轄區(qū)內(nèi)的服務器與其它轄區(qū)內(nèi)的Kerberos服務器之間共享一個保密密鑰。兩個服務器之間共享一個保密密鑰。兩個Kerberos服務器互相注冊。服務器互相注冊。請求另一領域的服務請求另一領域的服務(1) C AS :IDC | IDtgs | TS1 (2) AS C :EKCKc,tgs | IDtgs | TS2 | Lifetime2 | Tickettgs(3) C TGS:IDtgsrem | Tick
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 甲供材料合同范本
- 幼兒園托管協(xié)議合同8篇
- 居間合同居間合同
- 2025年克拉瑪依c1貨運從業(yè)資格證考試內(nèi)容
- 工程施工監(jiān)理合同
- 專項工程承包合同文本
- 建筑工程項目分包合同
- 增加附錄條款魚種購銷合同
- 運輸水合同范本
- 卷煙戰(zhàn)略市場規(guī)劃報告
- 2024年宜春職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 2025年交通運輸部廣州打撈局招聘事業(yè)編制人員13人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 202403青少年軟件編程Python等級考試試卷三級真題(含答案和解析)
- 校園養(yǎng)成教育
- 研究生考試考研思想政治理論(101)試題與參考答案(2024年)
- 2025全國保安員考試題庫(含答案)
- 保安員資格考試復習題庫及答案(800題)
- 危重患者的安全轉(zhuǎn)運課件
- 醫(yī)院藥事管理法律法規(guī)
- 幼兒園中班美術《開心帽》課件
- 2024解析:第九章液體壓強-基礎練(解析版)
評論
0/150
提交評論