網絡安全密鑰是什么?小編教你安全密匙的加密消息認證碼詳解[推薦]( 二 )


五、防止數據篡改與消息認證碼
假設有個壞家伙H,雖然不能發現A和B交換的秘密,但是他可以干預并且破壞他們的對話 。
舉例來說,如果H位于A和B之間,他可以選擇讓大多數的消息返回以及向前繼續傳輸沒有改變,但是破壞了特定位的消息 。
A--> H hello
H--> B hello
B--> H Hi, I‘m B, B’s-certificate
H--> A Hi, I‘m B, B’s-certificate
A--> H prove it
H--> B prove it
B--> H A, This Is B{ digest[A, This Is B] } B‘s-private-key
H--> A A, This Is B{ digest[A, This Is B] } B’s-private-key
A--> H ok B, here is a secret B‘s-public-key
H--> B ok B, here is a secret B’s-public-key
B--> H {some message}secret-key
H--> A Garble[ {some message}secret-key ]
H一直讓數據沒有改變的通過,直到A和B分享一個秘密 。 然后H通過改變B發送給A的消息來進入這個方式中 。 這時候A是相信B的,因此她就可能相信這個改變的消息,然后按照它來做 。 注意H并不知道這個秘密-他能做的所有事就是破壞用這個秘密的密鑰加密的數據 。 他可能不能利用這個協議制造出一條有效的消息,但是下一次,他可能會幸運一點 。
為了防止這種破壞,A和B在他們的協議中引入了一種消息認證碼(MAC) 。 MAC是根據秘密的密鑰和傳輸的數據計算出來的,上面描述的摘要算法的屬性正好可以用于構造抵抗H的MAC功能 。
MAC := Digest[ some message, secret ]
因為H不知道這個秘密的密鑰,所以他無法計算出這個摘要的正確數值 。 即使H隨機的改變消息,如果摘要數據很大的話,他成功的可能性也很小 。 舉例來說,通過使用MD5,A和B能和他們的消息一起發送128位的MAC值 。 H猜中這個正確的MAC值的幾率是 18,446,744,073,709,551,616 分之1 。
下面是樣本協議,又訂正了一次:
A--> B hello
B--> A Hi, I‘m B, B’s-certificate
A--> B prove it
B--> A {digest[A, This Is B] } B‘s-private-key
ok B, here is a secret B’s-public-key
{some message,MAC}secret-key
H現在有麻煩了,H可以改變任何的消息,但是MAC的計算將揭露他的欺詐行為 。 A和B能發現偽造的MAC值并停止會話,H就不能偽造B的消息了 。
但是這樣同樣不能防范H鸚鵡學舌 。 如果H記錄了會話的過程,他雖然可能不知道會話的內容,但是他可以重放這些會話 。 實際上,H能在A和B之間做一些真正齷齪的事 。
【網絡安全密鑰是什么?小編教你安全密匙的加密消息認證碼詳解[推薦]】以上內容就是關于網絡安全密鑰是什么?小編教你安全密匙的加密消息認證碼詳解[推薦]的詳細內容,更過關于電腦系統百科的教程請關注我們!

推薦閱讀