計算機網(wǎng)絡(luò)安全原理(第2版)課件 第3章 消息認(rèn)證與身份認(rèn)證_第1頁
計算機網(wǎng)絡(luò)安全原理(第2版)課件 第3章 消息認(rèn)證與身份認(rèn)證_第2頁
計算機網(wǎng)絡(luò)安全原理(第2版)課件 第3章 消息認(rèn)證與身份認(rèn)證_第3頁
計算機網(wǎng)絡(luò)安全原理(第2版)課件 第3章 消息認(rèn)證與身份認(rèn)證_第4頁
計算機網(wǎng)絡(luò)安全原理(第2版)課件 第3章 消息認(rèn)證與身份認(rèn)證_第5頁
已閱讀5頁,還剩192頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章消息認(rèn)證與身份認(rèn)證問題針對信息的被動攻擊,如監(jiān)聽或截獲加密的方法針對信息的主動攻擊,比如:信息內(nèi)容進(jìn)行更改、刪除、添加;改變信息的源點、目的點、信息的順序;偽造消息;利用曾經(jīng)發(fā)送過或存儲過的信息(重放);…問題:如何來應(yīng)對上述主動攻擊呢??認(rèn)證:概念(1/2)認(rèn)證(Authentication,又稱為鑒別、確認(rèn))是證實信息交換過程合法有效的一種手段,主要解決以下一些問題:信息的訪問者是不是系統(tǒng)的合法用戶?A和B在進(jìn)行信息交換時,A和B都必須對對方的身份進(jìn)行認(rèn)證,以保證所收到的信息是由確定的實體發(fā)送的;A向B發(fā)送信息,B作為接收方,必須確定信息在A發(fā)出以后是否被修改過;認(rèn)證:概念(2/2)認(rèn)證主要解決的問題(Cont.):對收到的信息,B必須確定是過時的信息還是某種信息的重放,還是偽造的消息;發(fā)送方不能否認(rèn)它所發(fā)送過的信息;認(rèn)證是保證上述幾種情況真實性的方法認(rèn)證的類型一般可將認(rèn)證分為以下幾種身份認(rèn)證報文認(rèn)證(消息認(rèn)證):內(nèi)容認(rèn)證(完整性檢測)順序認(rèn)證發(fā)送方認(rèn)證(數(shù)字簽名)內(nèi)容提綱消息認(rèn)證2身份認(rèn)證3散列函數(shù)1為什么要學(xué)習(xí)散列函數(shù)?問題登錄時的口令是怎樣傳輸?shù)模繂栴}Linux的口令是怎樣存儲的?問題殺毒軟件是怎樣檢測病毒的?樣本散列值樣本散列值樣本散列值基本樣本散列值的檢測基本樣本散列值的檢測我們該怎樣檢查從第三方下載的軟件是否與官網(wǎng)一致?問題Windows操作系統(tǒng)以及一些安全軟件是如何防止系統(tǒng)中的重要文件、升級包被攻擊者替換、篡改?密鑰是如何生成的?問題生成密鑰SSL/TLS協(xié)議:生成主密鑰(參見第7章)生成密鑰‘A’PMCRSR‘BB’PMCRSR‘CCC’PMCRSRSHA-1SHA-1SHA-1PM散列PM散列PM散列MD5MD5MD5散列散列散列PM:預(yù)備主密鑰SR:服務(wù)器隨機數(shù)CR:客戶端隨機數(shù)主密鑰(48字節(jié))SSL/TLS協(xié)議:密鑰參數(shù)生成(參見第7章)生成密鑰‘A’MCRSR‘BB’MCRSR‘···’MCRSRSHA-1SHA-1SHA-1M散列M散列M散列MD5MD5MD5散列散列散列M:主密鑰SR:服務(wù)器隨機數(shù)CR:客戶端隨機數(shù)密鑰參數(shù)······實際應(yīng)用中,很多加密密鑰產(chǎn)生算法與散列函數(shù)有關(guān)某智能門鎖對稱會話密鑰產(chǎn)生方法:使用time函數(shù)得到當(dāng)前的系統(tǒng)時間,然后對系統(tǒng)時間加上其它一些參數(shù)進(jìn)行MD5計算得到生成密鑰比特幣的原理是什么?問題散列函數(shù)與比特幣該怎樣確保通信內(nèi)容沒有被篡改?問題問題安全消息消息安全消息消息秘密信息秘密信息安全相關(guān)變換安全相關(guān)變換發(fā)送方接收方可信第三方(如仲裁者、秘密信息的分配者)信息通道攻擊者網(wǎng)絡(luò)通信安全模型散列函數(shù)(hashfunction)是現(xiàn)代密碼學(xué)的重要組成部分h=H(M):h稱為散列值、散列碼、報文摘要(MessageDigest)或消息摘要,對于特定的散列函數(shù)H,h的長度是固定的散列函數(shù)王小云院士在在2020中關(guān)村論壇上做“密碼技術(shù)與區(qū)塊鏈”主題演講中提到::哈希函數(shù)支撐三大安全性散列函數(shù)散列函數(shù)密碼學(xué)上的散列函數(shù)(安全的散列函數(shù))與數(shù)據(jù)結(jié)構(gòu)中的散列函數(shù)兩個重要特性唯一性:兩個不同的輸入產(chǎn)生不同的輸出,如果輸入不同但輸出相同,則產(chǎn)生了“碰撞(collision)”雪崩效應(yīng)(avalancheeffect):消息中的一個微小變化,甚至只是改變一個比特位,都可能會在輸出中產(chǎn)生一個明顯的變化散列函數(shù)散列函數(shù)H的安全性需求散列函數(shù)另一種安全屬性的表述散列函數(shù)密碼學(xué)Hash函數(shù)應(yīng)用消息認(rèn)證確保消息沒有被修改、插入、刪除或重放確保消息發(fā)送方聲稱的身份真實有效文件完整性校驗:判斷文件是否被修改數(shù)字簽名保護(hù)消息完整性,驗證消息發(fā)送方身份單向口令文件入侵檢測和病毒檢測區(qū)塊鏈

散列函數(shù)各種數(shù)據(jù)完整性應(yīng)用中的散列函數(shù)安全性需求報文摘要(MessageDigest,MD)算法是由Rivest從20世紀(jì)80年代末所開發(fā)的系列散列算法的總稱,歷稱MD2、MD3、MD4和最新的MD5MDMD5MD5是對MD4的改進(jìn)輸入:任意長的報文;輸出:128位的報文摘要過程:對輸入按512位進(jìn)行分組,并以分組為單位進(jìn)行處理:填充報文初始化緩沖區(qū)執(zhí)行算法主循環(huán)(核心是壓縮函數(shù))輸出MD5的輸入為512位分組,輸出是4個32位字的級聯(lián)(128位散列值),過程如下:首先,消息被拆成若干個512位的分組,其中最后512位分組是“消息尾+填充字節(jié)(100…0)+64位消息長度”,以確保對于不同長度的消息,該分組不相同。4個32位寄存器字初始化為A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210,它們將始終參與運算并形成最終的散列結(jié)果MD5關(guān)于A,B,C,D初始化值MD5小端模式大端模式MD5的輸入為512位分組,輸出是4個32位字的級聯(lián)(128位散列值),過程如下:接著,各個512位消息分組以16個32位字的形式進(jìn)入算法的主循環(huán),512位消息分組的個數(shù)決定了循環(huán)的次數(shù)。主循環(huán)有4輪,每輪分別用到的非線性函數(shù)如下:MD5MD5的輸入為512位分組,輸出是4個32位字的級聯(lián)(128位散列值),過程如下:這4輪變換是對進(jìn)入主循環(huán)的512位消息分組的16個32位字分別進(jìn)行如下操作:將A、B、C、D的副本a、b、c、d中的3個經(jīng)F、G、H、I運算后的結(jié)果與第4個相加,再加上32位字和一個32位字的加法常數(shù),并將所得之值循環(huán)左移若干位,最后將所得結(jié)果加上a、b、c、d之一,并回送至ABCD,完成一次循環(huán)MD5MD5MD5的輸入為512位分組,輸出是4個32位字的級聯(lián)(128位散列值),過程如下:當(dāng)所有512位分組都運算完畢后,ABCD的級聯(lián)將被輸出為MD5散列的結(jié)果MD5MD52004年國際密碼學(xué)會議(Crypto’2004)上,王小云教授做了破譯MD5、HAVAL-128、MD4和RIPEMD算法的報告,提出了密碼哈希函數(shù)的碰撞攻擊理論,即模差分比特分析法。王教授的相關(guān)研究成果提高了破解包括MD5、SHA-1在內(nèi)的5個國際通用的哈希函數(shù)算法的概率,給出了系列消息認(rèn)證碼MD5-MAC等的子密鑰恢復(fù)攻擊和HMAC-MD5的區(qū)分攻擊方法。MD5SHA(SecureHashAlgorithm)算法是使用最廣泛的Hash函數(shù),由美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)和美國國家安全局(NSA)設(shè)計,包括5個算法,分別是SHA-1、SHA-224、SHA-256、SHA-384和SHA-512,后四個算法有時并稱為SHA-2。SHA-1在許多安全協(xié)議中廣為使用,如TLS和SSL、PGP、SSH、S/MIME和IPsec等SHASHA算法建立在MD4算法之上,其基本框架與MD4類似。SHA-1算法產(chǎn)生160bit的散列值,因此它有5個參與運算的32位寄存器字,消息分組和填充方式與MD5相同,主循環(huán)也同樣是4輪,但每輪進(jìn)行20次操作,非線性運算、移位和加法運算也與MD5類似,但非線性函數(shù)、加法常數(shù)和循環(huán)左移操作的設(shè)計有一些區(qū)別。SHASHA-2與SHA-1類似,都使用了同樣的迭代結(jié)構(gòu)和同樣的模算法運算與二元邏輯操作。SHA2/SHA256動畫演示網(wǎng)站SHA-1的安全性2005年2月,王小云等人發(fā)表了對SHA-1的攻擊,只需少于269的計算復(fù)雜度,就能找到一組碰撞,而此前的利用生日攻擊法找到碰撞需要280的計算復(fù)雜度SHANIST在2007年公開征集新一代NIST的Hash函數(shù)標(biāo)準(zhǔn),稱為SHA-3,并于2012年10月公布了設(shè)計算法的優(yōu)勝者,未來將逐漸取代SHA-2。SHA-3的設(shè)計者使用一種稱為海綿結(jié)構(gòu)的迭代結(jié)構(gòu)方案SHA3SM3是我國政府采用的一種密碼散列函數(shù)標(biāo)準(zhǔn),由國家密碼管理局于2010年12月17日發(fā)布,相關(guān)標(biāo)準(zhǔn)為“GM/T0004-2012《SM3密碼雜湊算法》”SM3算法增加了多種新設(shè)計技術(shù),從而在安全性和效率上具有優(yōu)勢。在保障安全性的前提下,SM3算法的綜合性能指標(biāo)與SHA-256在同條件下相當(dāng)。SM3已經(jīng)被認(rèn)為不安全的散列算法MD5、HAVAL-128、MD4、RIPEMD、SHA-1一些標(biāo)準(zhǔn)已禁用不安全的散列算法,但還有很多應(yīng)用在用,對網(wǎng)絡(luò)安全會有什么影響嗎?散列函數(shù)安全性討論有人說“所有的散列函數(shù)都存在產(chǎn)生碰撞的問題,很不安全”,你認(rèn)同這一觀點嗎?為什么?散列函數(shù)安全性討論用對上述MD5值進(jìn)行破解,有時很快就能出結(jié)果,是該網(wǎng)站找到了MD5算法的漏洞,還是采用了別的什么辦法?散列函數(shù)安全性討論內(nèi)容提綱消息認(rèn)證2身份認(rèn)證3散列函數(shù)1問題的提出:消息可能是攻擊者偽造身份發(fā)送的,消息在網(wǎng)絡(luò)傳輸過程中可能遭受篡改,消息也可能是過時消息的重放或排序被打亂后的消息消息認(rèn)證,也稱為報文認(rèn)證、消息鑒別,指的是通信雙方對各自接收的消息進(jìn)行驗證,確定消息的一些屬性是否真實的過程,如被驗證的消息屬性包括發(fā)送方的身份、內(nèi)容的完整性以及消息的順序等等消息認(rèn)證一、消息內(nèi)容認(rèn)證消息內(nèi)容的認(rèn)證是指接收方在接收到消息以后對消息進(jìn)行檢查,確保自己接收的消息與發(fā)送方發(fā)送的消息相同(沒有被篡改,也不是一條偽造的消息),即消息在傳輸過程中的完整性沒有受到破壞,也稱為“完整性檢測”。消息內(nèi)容認(rèn)證如果直接對消息加密,則需要解決如何判斷解密是否成功的問題?完整性檢測:加密方法對完整消息進(jìn)行加密的方法完整性檢測:加密方法(b)用公開密碼算法實現(xiàn)消息內(nèi)容認(rèn)證:機密性、完整性?(a)用對稱密碼算法實現(xiàn)消息內(nèi)容認(rèn)證:機密性、完整性MEKDKMA||C=E

(K,M||h)hMhCHh=H

(M)Hh

比較BMEDMA||C=E

(PKB,M||h)hMhCHh=H

(M)Hh

比較BPKBSKBMEDMA||C=E

(SKA,M||h)hMhCHh=H

(M)Hh

比較BSKAPKA(c)用公開密碼算法實現(xiàn)消息內(nèi)容認(rèn)證:不可否認(rèn)性、完整性1、方案(b)和(c)用公開密碼算法對消息直接進(jìn)行加密操作,有什么問題嗎?2、方案(b)能保證完整性嗎?只對消息散列值進(jìn)行加密的方案只對散列值進(jìn)行加密,既解決了消息是否被篡改的問題,又提高了性能完整性檢測:加密方法(b)用公開密碼算法實現(xiàn)消息內(nèi)容認(rèn)證:完整性?(a)用對稱密碼算法實現(xiàn)消息內(nèi)容認(rèn)證:完整性MEKDKMA||C

=E

(K,h)hMCHh=H

(M)Hh

比較B(c)用公開密碼算法實現(xiàn)消息內(nèi)容認(rèn)證:不可否認(rèn)性、完整性MCh

=D

(K,C)MEDSKBM||C

=E

(PKB,h)hMCHh=H

(M)Hh

比較BMCh

=D

(SKB,C)APKBMEDPKAM||C

=E

(SKA,h)hMCHh=H

(M)Hh

比較BMCh

=D

(PKA,C)ASKA討論一:如果只是在消息后附加消息散列值發(fā)送給接收方,而不對消息或散列值加密保護(hù),能保護(hù)消息的完整性嗎?討論二:除了散列碼,使用通信中常用的檢驗和(Checksum,如CRC)是否也可以檢測完整性?如果可以,與散列碼相比,有什么優(yōu)缺點?完整性檢測:加密方法完整性檢測:MAC消息認(rèn)證碼(MessageAuthenticationCode,MAC):通信雙方需要共享一個密鑰,以K來表示。同時,需要用于生成消息認(rèn)證碼的函數(shù)F。對于消息M,其消息認(rèn)證碼MACM與M和K相關(guān),可以表示為:

MACM

=F(M,K)

不管消息的長短,都生成固定大小的數(shù)據(jù)塊完整性檢測:MAC基于MAC的完整性檢測發(fā)送者接收者M(jìn)ACM=F(M,K)MKMACM′

=F(M′,K)KM||MACMMACM′相等丟棄MACMMACM比較不等能保障哪些安全屬性?完整性檢測:MAC基于MAC的完整性檢測消息認(rèn)證碼(MAC)有很多方法可以生成MAC,NIST標(biāo)準(zhǔn)FIPSPUB113推薦使用DES。用DES生成密文,將密文的最后若干個比特用作MAC。典型的有16或32比特的MAC散列消息認(rèn)證碼(HMAC):F為散列函數(shù)完整性檢測:MACHMAC完整性檢測:MAC討論:MAC與Hash的區(qū)別完整性檢測討論:MAC與加密的區(qū)別完整性檢測二、消息順序認(rèn)證如何解決重放攻擊?消息順序的認(rèn)證機制序列號時間戳挑戰(zhàn)及響應(yīng)(challenge/response)消息順序的認(rèn)證現(xiàn)時(Nonce)Nonce是Numberusedonce或Numberonce的縮寫,是一個隨時間而改變的參數(shù),在密碼學(xué)中通常是一個只被使用一次的任意或非重復(fù)的隨機數(shù)值消息順序的認(rèn)證真隨機數(shù)真隨機數(shù)數(shù)列是不可預(yù)測的,因而也不可能重復(fù)產(chǎn)生兩個相同的真隨機數(shù)數(shù)列真隨機數(shù)只能用某些隨機物理過程來產(chǎn)生。例如:擲錢幣、骰子、轉(zhuǎn)輪、放射性衰變、電子設(shè)備的熱噪音、宇宙射線的觸發(fā)時間、量子力學(xué)等這樣的隨機數(shù)發(fā)生器叫做物理性隨機數(shù)發(fā)生器計算機理論上可以產(chǎn)生統(tǒng)計意義上的真隨機數(shù)。實現(xiàn)方法:簡單的講就是軟硬結(jié)合,或者說,引入系統(tǒng)外的變量(把計算機想象成一個封閉的系統(tǒng)),如機器運行環(huán)境中產(chǎn)生的硬件噪音。真隨機數(shù)偽隨機數(shù)采用隨機變化的種子產(chǎn)生偽隨機數(shù),得到的結(jié)果更隨機些,但它還是偽隨機數(shù)。因為如果重復(fù)這個過程(給同樣值的種子),得到的結(jié)果是重復(fù)的“我只要知道偽隨機數(shù)用的是哪種算法,就能準(zhǔn)確的知道下一個數(shù)將是什么”是對的,例如用時間做種子,你只要給入同樣的時間,就能得到同樣的結(jié)果偽隨機數(shù)因為種子一樣,如果平臺一樣,下例每次運行生成的隨機數(shù)就是一樣的。偽隨機數(shù)偽隨機數(shù)安全問題在加密函數(shù)中使用不安全的隨機數(shù)進(jìn)行加密操作導(dǎo)致可預(yù)測的加密密鑰,如果攻擊者能夠登錄到系統(tǒng)的話,就可能計算出前一個和下一個加密密鑰偽隨機數(shù)安全問題從2018年1月至2019年3月,CVE中共有11條漏洞信息與隨機數(shù)相關(guān)偽隨機數(shù)安全問題示例代碼偽隨機數(shù)安全問題示例代碼偽隨機數(shù)安全問題修復(fù)代碼DEFCON29:IoT設(shè)備的硬件隨機數(shù)生成器存在漏洞,研究員稱影響幾乎每一臺IoT設(shè)備IoT設(shè)備中的隨機數(shù)安全問題現(xiàn)時(Nonce)的應(yīng)用Nonce在很多加密方法的初始向量和加密散列函數(shù)中發(fā)揮著重要作用在各類認(rèn)證協(xié)議中被用來確保認(rèn)證信息不被重復(fù)使用以對抗重放攻擊。Nonce也用于流密碼加密過程中,如果需要使用相同的密鑰加密一個以上的消息,就需要Nonce來確保不同的消息與該密鑰加密的密鑰流不同消息順序的認(rèn)證三、消息發(fā)送方認(rèn)證(數(shù)字簽名)消息內(nèi)容和順序認(rèn)證可以保護(hù)信息交換雙方不受第三方的攻擊,但是它不能處理通信雙方自己產(chǎn)生的攻擊(偽造和否認(rèn))消息的發(fā)送方認(rèn)證問題:1、B可以偽造一條消息,說是A發(fā)給自己的;2、A給B發(fā)了一條消息,但事后否認(rèn)是自己發(fā)的MEKDKMA||C

=E

(K,h)hMCHh=H

(M)Hh

比較BMCh

=D

(K,C)簽名簽名是證明當(dāng)事者的身份和數(shù)據(jù)真實性的一種信息,既然簽名是一種信息,因此簽名可以用不同的形式來表現(xiàn):如傳統(tǒng)的手印、手簽、印章,現(xiàn)代的數(shù)字簽名等。在傳統(tǒng)的以書面文件為基礎(chǔ)的事務(wù)處理中,采用書面簽名的形式,對用戶的身份進(jìn)行認(rèn)證,具有一定的法律意義。以計算機文件為基礎(chǔ)的現(xiàn)代事務(wù)處理(電子商務(wù)、電子政務(wù)、電子金融)中,需要采用電子形式的簽名進(jìn)行用戶身份認(rèn)證,即數(shù)字簽名(DigitalSignature)。法國是世界上第一個制定并通過數(shù)字簽名法律的國家,美國也有一些州已經(jīng)通過數(shù)字簽名法,我國正在制定。

簽名的基本要求一個完善的數(shù)字簽名應(yīng)滿足以下條件:簽名不能偽造:簽名是簽名者對文件內(nèi)容合法性的認(rèn)同、證明和標(biāo)記,其他人的簽名無效;簽名不可抵賴:這是對簽名者的約束,簽名者的認(rèn)同、證明、標(biāo)記是不可否認(rèn)的;簽名不可改變:文件簽名后是不可改變的,這保證了簽名的真實性、可靠性;簽名容易驗證:對于簽名的文件,一旦發(fā)生糾紛,任何第三方都可以準(zhǔn)確、有效地進(jìn)行驗證數(shù)字簽名要解決的問題設(shè)用戶A要向用戶B發(fā)送文件M,數(shù)字簽名主要研究解決這一過程中的以下問題:A如何在文件M上簽名?B如何驗證A的簽名的真?zhèn)?B如何阻止A簽名后又抵賴?數(shù)字簽名:基本原理數(shù)字簽名利用密碼技術(shù)進(jìn)行,其安全性取決于密碼體制的安全程度。簽名體制包括兩個方面:施加簽名;驗證簽名。施加簽名:設(shè)施加簽名的算法為SIG,產(chǎn)生簽名的密鑰為K,被簽名的數(shù)據(jù)為M,產(chǎn)生的簽名的信息為S,則有:驗證簽名:算法為VER,對簽名S進(jìn)行驗證:數(shù)字簽名:要求在計算機中若也象書面文件那樣簡單地把簽名信息附加在文件內(nèi)容之后,則簽名必須滿足:當(dāng)M′≠M時,有:

SIG(K

,M′)≠

SIG(K,M),即S≠S′

簽名S只能簽名者產(chǎn)生,否則別人便可偽造,于是簽名者就可以抵賴;收信者可以驗證簽名S的真?zhèn)?,使得?dāng)簽名S為假時收信者不致上當(dāng),為真時又可阻止簽名者的抵賴。(a)用公開密碼算法實現(xiàn)數(shù)字簽名(對整個消息簽名)MESKAC=E

(SKA,M)DPKAM發(fā)送者(A)接收者(B)CMM

sHh

比較SKAME||Hh=H

(M)sDPKAhh

=D

(PKA,S)

s發(fā)送者(A)接收者(B)(b)用公開密碼算法實現(xiàn)數(shù)字簽名(對消息散列值簽名)兩種公開密碼算法簽名方式數(shù)字簽名:實現(xiàn)算法有很多算法可以應(yīng)用于數(shù)字簽名:利用RSA密碼實現(xiàn)數(shù)字簽名利用EIGamal密碼實現(xiàn)數(shù)字簽名利用橢圓曲線密碼實現(xiàn)數(shù)字簽名利用RSA實現(xiàn)數(shù)字簽名DSKAPKA用公開密鑰核實簽名

用秘密密鑰進(jìn)行簽名M發(fā)送者A接收者BD(M,SKA)MEPKA={e,n},SKA=6111616A對M的簽名:

SA=D(M,SKA)=Mdmodn驗證簽名:

E(SA,PKA)=(Md)emodn=M利用EIGamal實現(xiàn)數(shù)字簽名利用ECC實現(xiàn)數(shù)字簽名實際應(yīng)用中,為什么數(shù)字簽名總是對信息、證書、文件等的散列值進(jìn)行簽名?性能上的考慮實現(xiàn)完整性保護(hù)散列函數(shù)在數(shù)字簽名中的作用實際應(yīng)用中,為什么數(shù)字簽名總是對信息、證書、文件等的散列值進(jìn)行簽名?性能上的考慮實現(xiàn)完整性保護(hù)散列函數(shù)在數(shù)字簽名中的作用實際應(yīng)用中,為什么數(shù)字簽名總是對信息、證書、文件等的散列值進(jìn)行簽名?性能上的考慮實現(xiàn)完整性保護(hù)散列函數(shù)在數(shù)字簽名中的作用PGP中的數(shù)字簽名補充:其它數(shù)字簽名不可否認(rèn)簽名:在得不到簽名者配合的情況下,其他人不能進(jìn)行簽名驗證,從而防止非法復(fù)制和擴散簽名者所簽署的文件。對于保護(hù)軟件等知識產(chǎn)權(quán)有積極意義。否認(rèn)簽名:簽名者可以利用執(zhí)行否認(rèn)協(xié)議向公眾證明某一個文件的簽名是假的。盲簽名:需要某個人對某數(shù)據(jù)簽名,而又不能讓他知道數(shù)據(jù)的內(nèi)容。四、小結(jié)與討論Windows操作系統(tǒng)以及一些安全軟件是如何防止系統(tǒng)中的重要文件、升級包被攻擊者替換、篡改?討論數(shù)字簽名除了保證不可否認(rèn)性,還能保證什么安全屬性?大部分應(yīng)用場景下,數(shù)字簽名的目的是保證真實性(發(fā)送方身份是真實的)、完整性(沒有被篡改,與散列碼結(jié)合)討論除了對消息的散列碼進(jìn)行簽名,還可以使用其他能反映消息特征的碼進(jìn)行簽名嗎?如果可以,這樣的碼要滿足什么樣的要求?討論用公開密碼算法實現(xiàn)加密與實現(xiàn)數(shù)字簽名有什么區(qū)別?目的不同:加密是機密性,而簽名則是真實性和完整性實現(xiàn)方式不同:發(fā)送方用接收方的公鑰進(jìn)行加密,接收方用自己的私鑰解密;而簽名是簽名者用自己的私鑰簽名,接收方用簽名者的公鑰驗證簽名討論:公鑰算法加密與簽名消息認(rèn)證涉及安全性質(zhì):機密性、完整性、可鑒別性【保證信息的真實狀態(tài)是可以鑒別的,即信息沒有被篡改(完整性)、身份是真實的(真實性)、對信息的操作是不可抵賴的(不可抵賴性),重放的信息算什么屬性?】,抗不同攻擊:偽造、重放、篡改、否認(rèn)等,要用到防護(hù)技術(shù):加密(對稱、公開)、簽名、散列、MAC、現(xiàn)時(Nonce)等,組合太多,要根據(jù)用戶的需求選擇最佳方法消息認(rèn)證小結(jié)內(nèi)容提綱消息認(rèn)證2身份認(rèn)證3散列函數(shù)1身份認(rèn)證一個系統(tǒng)的安全性常常依賴于對終端用戶身份的正確識別與檢查。對計算機系統(tǒng)的訪問必須根據(jù)訪問者的身份施加一定的限制,這些是最基本的安全問題。身份認(rèn)證一般涉及兩方面的內(nèi)容:識別和驗證。識別:識別是指要明確訪問者是誰,即必須對系統(tǒng)中的每個合法用戶都有識別能力。要保證識別的有效性,必須保證任意兩個不同的用戶都不能具有相同的識別符。驗證:驗證是指在訪問者聲稱自己的身份后(向系統(tǒng)輸入它的識別符),系統(tǒng)還必須對它所聲稱的身份進(jìn)行驗證,以防假冒。身份認(rèn)證個人身份驗證方法可以分成四種類型:所知:驗證他知道什么,如密碼、口令所有:驗證他擁有什么,如身份證、護(hù)照、信用卡、智能門卡所在:驗證他在什么位置,如IP、辦公室地址用戶特征:驗證他的生物特征(如指紋、虹膜、DNA等)、行為特征(如擊鍵、筆跡)四種方式:口令認(rèn)證信物認(rèn)證地址認(rèn)證用戶特征認(rèn)證密碼學(xué)認(rèn)證身份認(rèn)證汪定2015:口令認(rèn)證汪定2015:口令認(rèn)證汪定2015:口令認(rèn)證汪定2015:口令認(rèn)證汪定2015:口令認(rèn)證口令有什么科學(xué)規(guī)律嗎?著名口令安全研究專家汪定教授所在團(tuán)隊的研究成果口令規(guī)律312每年5月的第一個星期四世界口令(密碼)日(WorldPasswordDay)一、口令認(rèn)證用戶在注冊階段生成用戶名和初始口令,系統(tǒng)在其用戶文件或數(shù)據(jù)庫中保存用戶的信息(用戶名和口令)。當(dāng)用戶登錄認(rèn)證時,將自己的用戶名和口令上傳給服務(wù)器,服務(wù)器通過查詢其保存的用戶信息來驗證用戶上傳的認(rèn)證信息是否和保存的用戶信息相匹配。如果匹配則認(rèn)為用戶是合法用戶,否則拒絕服務(wù),并將認(rèn)證結(jié)果回傳給客戶端。用戶定期改變口令,以保證安全性。這種口令因其實現(xiàn)簡單、使用方便,得到了廣泛的應(yīng)用。靜態(tài)口令動態(tài)口令也稱為一次性口令,其基本原理:在用戶登錄過程中,基于用戶口令加入不確定因子,對用戶口令和不確定因子進(jìn)行單向散列函數(shù)變換,所得的結(jié)果作為認(rèn)證數(shù)據(jù)提交給認(rèn)證服務(wù)器。認(rèn)證服務(wù)器接收到用戶的認(rèn)證數(shù)據(jù)后,把用戶的認(rèn)證數(shù)據(jù)和自己用同樣的散列算法計算出的數(shù)值進(jìn)行比對,從而實現(xiàn)對用戶身份的認(rèn)證。動態(tài)口令按生成原理可分為非同步和同步兩種認(rèn)證技術(shù)。非同步認(rèn)證技術(shù)生成的動態(tài)口令主要是依據(jù)挑戰(zhàn)-響應(yīng)原理來實現(xiàn)。同步認(rèn)證技術(shù)包括與時間有關(guān)的時鐘同步認(rèn)證技術(shù)和與時間無關(guān)的事件同步認(rèn)證技術(shù)。動態(tài)口令分類動態(tài)口令認(rèn)證過程挑戰(zhàn)—響應(yīng)機制圖形口令圖形口令圖形口令二、密碼學(xué)認(rèn)證常用的密碼學(xué)認(rèn)證協(xié)議有一次性口令認(rèn)證、基于共享密鑰的認(rèn)證、基于公鑰證書的認(rèn)證、零知識證明和標(biāo)識認(rèn)證等密碼學(xué)認(rèn)證(一)一次性口令認(rèn)證一次性口令(One-TimePassword,OTP),一般使用雙運算因子來實現(xiàn)固定因子,即用戶的口令或口令散列值動態(tài)因子,每次不一樣的因子,如時間,事件序列,挑戰(zhàn)/應(yīng)答(challenge/response)。每種各有優(yōu)缺點一次性口令認(rèn)證一次性口令認(rèn)證協(xié)議S/KEY:1991年貝爾通信研究中心研制S/KEY迭代值(IC)

種子(seed)

秘密口令散列函數(shù)f

64位OTP6個單詞(每個11位)2位檢驗和編碼基本原理S/KEY中,服務(wù)器產(chǎn)生挑戰(zhàn)(challenge)信息。挑戰(zhàn)信息由迭代值(IterationCount,IC)和種子(seed)組成。迭代值,指定散列計算的迭代次數(shù),為1~100之間的數(shù),每執(zhí)行一次挑戰(zhàn)/響應(yīng)過程,IC減1(當(dāng)IC為1時,則必須重新進(jìn)行初始化)。種子由兩個字母和5個數(shù)字組成。例如,挑戰(zhàn)信息“05xa13783”表示迭代值為05,種子為“xa13783”。客戶端收到挑戰(zhàn)后,要將秘密口令與種子“xa13783”拼接后,做5次散列運算。S/KEY基本原理S/KEY中支持三種散列函數(shù),即MD4,MD5和SHA。OTP服務(wù)器將散列函數(shù)的固定輸出折疊成64位(OTP的長度)。64位OTP可以被轉(zhuǎn)換為一個由6個英文單詞組成的短語,每個單詞由1~4個字母組成,被編碼成11位,6個單詞共66位,其中最后2位(11*6-64=2)用于存儲校驗和。S/KEY基本原理S/KEY安全性分析用戶的秘密口令沒有在網(wǎng)絡(luò)上傳輸,傳輸?shù)闹皇且淮涡钥诹?,并且一次性口令即使在傳輸過程中被竊取,也不能再次使用;客戶端和服務(wù)器存儲的是用戶秘密口令的散列值,即使客戶端和服務(wù)器被攻陷導(dǎo)致口令散列值被竊取,也需破解口令散列才能獲得明文口令S/KEY安全性分析用戶登錄一定次數(shù)后,客戶和服務(wù)器必須重新初始化口令序列;為了防止重放攻擊,系統(tǒng)認(rèn)證服務(wù)器具有唯一性,不適合分布式認(rèn)證單向認(rèn)證(即服務(wù)器對客戶端進(jìn)行認(rèn)證),不能保證認(rèn)證服務(wù)器的真實性S/KEY使用的種子和迭代值采用明文傳輸,攻擊者可以利用小數(shù)攻擊來獲取一系列口令冒充合法用戶S/KEY小數(shù)攻擊原理S/KEY改進(jìn)的S/KEY協(xié)議核心思想:不在網(wǎng)絡(luò)中傳輸一次性口令散列值。使用用戶的口令散列對挑戰(zhàn)進(jìn)行散列,并將計算結(jié)果發(fā)送給服務(wù)器。服務(wù)器收到后,同樣使用服務(wù)器保存的用戶口令散列對挑戰(zhàn)進(jìn)行散列計算,并與客戶端發(fā)來的應(yīng)答進(jìn)行比較,如果相同則認(rèn)證通過,否則拒絕Windows2000及其之后版本中的NTLM認(rèn)證所實現(xiàn)的挑戰(zhàn)/響應(yīng)機制就使用了這個改進(jìn)的S/KEY協(xié)議S/KEY改進(jìn)的S/KEY?WindowsNTLM改進(jìn)的S/KEY(2)WindowsNTLM改進(jìn)的S/KEY(1)(2)(3)(4)WindowsNTLM(另一張參考圖)改進(jìn)的S/KEY安全性分析:用戶很容易求出正確的一次性口令,采用一次性口令的匹配通過服務(wù)器的身份認(rèn)證;攻擊者即使截獲一次性口令,也不能破解出用戶口令散列;攻擊者不能預(yù)測下一次一次性口令,也不能重放成功。改進(jìn)的S/KEY協(xié)議安全性分析:能夠避免監(jiān)聽和重放,但不能防范攔截和修改數(shù)據(jù)包、會話劫持等攻擊。

網(wǎng)絡(luò)系統(tǒng)的安全僅等同于使用的最弱散列算法的安全強度。

沒有完整性保護(hù)機制,也無法防范內(nèi)部攻擊。不能對服務(wù)器的身份進(jìn)行認(rèn)證。改進(jìn)的S/KEY協(xié)議(二)其于共享密鑰的認(rèn)證Needham-Schroeder雙向鑒別協(xié)議密鑰分配中心KDC發(fā)起者A響應(yīng)者B(2)E(Ka,[Ks||IDB||N1||E(Kb,[Ks||IDA])])(3)E(Kb,[Ks||IDA])(4)E(Ks,N2)(5)E(Ks,f(N2))(1)IDA||IDB||N1問題1:執(zhí)行完上述三個步驟后,A和B已得到了由KDC分配的一次性會話密鑰,可用于后續(xù)的保密通信,為什么還要增加后面兩個步驟?問題2:第(5)步中,為什么要問個題f(N2),而不是直接用N2?Needham-Schroeder雙向鑒別協(xié)議安全性分析及改進(jìn)思路Needham-Schroeder雙向鑒別協(xié)議Kerberos認(rèn)證協(xié)議以N-S協(xié)議為基礎(chǔ),通過可信第三方進(jìn)行客戶和服務(wù)器間的相互認(rèn)證,交換會話密鑰,以建立客戶和服務(wù)器間的信任和安全傳輸信道,由MIT首先提出并實現(xiàn)。共有5個主要版本,V1~V3主要在校內(nèi)使用,V4在MIT校外得到了廣泛應(yīng)用。V5于1993年成為IETFRFC(RFC1510),后經(jīng)多次修訂(RFC1964,4120,4121,4757),最新是2012年7月頒布的RFC6649。Windows從Windows2000就開始支持基于Kerberos的認(rèn)證協(xié)議。Kerberos認(rèn)證協(xié)議Kerberos認(rèn)證協(xié)議協(xié)議認(rèn)證過程KerberosV5對V4做了多處改進(jìn),主要改進(jìn)如下:第1步:V5中將V4中的生命期(Lifetime,8位長,每單位表示5分鐘,因此最長1280分鐘)修改為精確的起止時間,允許許可證擁有任意長的生命期。第2步:V4只使用IP地址,V5中用類型和長度標(biāo)記網(wǎng)絡(luò)地址,允許使用任何類型的網(wǎng)絡(luò)地址第5步:V5對V4的客戶與應(yīng)用服務(wù)器間的認(rèn)證交換進(jìn)行了改進(jìn),增加了兩個新的域:子密鑰(Subkey)和序列號(seq#)。V4只支持DES,V5支持多種加密算法Kerberos認(rèn)證協(xié)議Kerberos認(rèn)證協(xié)議分布式認(rèn)證安全性分析一旦用戶獲得過訪問某個服務(wù)器的許可證,只要在許可證的有效期內(nèi),該服務(wù)器就可根據(jù)這個許可證對用戶進(jìn)行認(rèn)證,而無需KDC的再次參與;實現(xiàn)了客戶和服務(wù)器間的雙向認(rèn)證;支持跨域認(rèn)證;應(yīng)用廣泛,互操作性好。Kerberos認(rèn)證協(xié)議安全性分析Kerberos認(rèn)證中使用的時間戳機制依賴于域內(nèi)時鐘同步,如果時間不同步存在較大的安全風(fēng)險;Kerberos無法應(yīng)付口令猜測攻擊;主體必須保證他們的私鑰的安全;Kerberos中AS和TGS采用集中式管理,容易形成瓶頸。Kerberos認(rèn)證協(xié)議Windows2000Server中的KerberosKerberos認(rèn)證協(xié)議Windows2000Server中的Kerberos1、如何獲得“認(rèn)購權(quán)證”Kerberos認(rèn)證協(xié)議Windows2000Server中的Kerberos2、如何通過“認(rèn)購權(quán)證”購買“入場券”?Kerberos認(rèn)證協(xié)議Windows2000Server中的Kerberos3、憑票入場Kerberos認(rèn)證協(xié)議參考講解(來自謝希仁教授的《計算機網(wǎng)絡(luò)》)Kerberos認(rèn)證協(xié)議目前最出名的密鑰分配協(xié)議是KerberosV5。Kerberos既是鑒別協(xié)議,同時也是KDC,它已經(jīng)變得很普及,現(xiàn)在是互聯(lián)網(wǎng)建議標(biāo)準(zhǔn)。Kerberos使用比DES更加安全的高級加密標(biāo)準(zhǔn)AES進(jìn)行加密。KerberosKerberos認(rèn)證協(xié)議ABKerberosA

ASTGSKTG

KAA,KSKS,Kerberos認(rèn)證協(xié)議ABKerberosA

ASTGSKTG

KAA,KSKS,A并不保存密鑰KA

。A需鍵入正確口令,利用適當(dāng)?shù)乃惴ㄉ擅荑€KA

。這個口令隨即被銷毀。Kerberos認(rèn)證協(xié)議ABKerberosA

ASTGSTKAB,

A,KABKBT+1KAB

A,KSTKS,B,KTGA,KABKB,

B,KABKSKTG

KAA,KSKS,Kerberos認(rèn)證協(xié)議Kerberos密鑰分配說明A用明文(包括登記的身份)向鑒別服務(wù)器AS表明自己的身份。AS向A發(fā)送用A的對稱密鑰KA

加密的報文,這個報文包含A和TGS通信的會話密鑰KS,以及AS要發(fā)送給TGS的票據(jù)(這個票據(jù)是用TGS的對稱密鑰KTG

加密的)。Kerberos認(rèn)證協(xié)議Kerberos密鑰分配說明A向TGS發(fā)送三個項目:轉(zhuǎn)發(fā)鑒別服務(wù)器AS發(fā)來的票據(jù)。服務(wù)器B的名字。這表明A請求B的服務(wù)。請注意,現(xiàn)在A向TGS證明自己的身份并非通過鍵入口令(因為入侵者能夠從網(wǎng)上截獲明文口令),而是通過轉(zhuǎn)發(fā)AS發(fā)出的票據(jù)(只有A才能提取出)。票據(jù)是加密的,入侵者偽造不了。用

KS

加密的時間戳T。它用來防止入侵者的重放攻擊。Kerberos認(rèn)證協(xié)議Kerberos密鑰分配說明TGS發(fā)送兩個票據(jù),每一個都包含A和B通信的會話密鑰KAB。給A的票據(jù)用

溫馨提示

  • 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

提交評論