mac演算法的缺陷
前面我們在講hmac的時候簡單講過了什麼是mac訊息認證碼。
簡單點說mac(message authentication code)是一種確認完整性並進行認證的技術,取三個單詞的首字母,簡稱mac。它是一種與金鑰相關聯的函式。 hmac就是mac的一種實現。
雖然mac可以同時驗證訊息的完整性和**,但是仍然有多種攻擊方式。
什麼是重放攻擊?顧名思義,重放攻擊就是將之前的資訊或者通訊再次請求。我們舉個例子。
小明跟小剛在做借款通訊,但是這個通訊被小紅監聽到了。
小明向小剛發起借款100元,在mac中假設小明和小剛共享了金鑰,小明通過金鑰根據請求訊息計算出了mac,並將mac和訊息一起傳送給小剛。
小剛收到了訊息和mac,根據自己儲存的金鑰計算出mac,將整個mac和收到的mac做對比,如果兩個mac相等,那麼小剛就知道這個是小明發起的合法請求,於是做出借款100元的操作。
因為小紅監聽到了小明跟小剛的通訊,所以小紅獲取到了請求訊息和生成的mac,並保持起來。
小紅將第4步收到的訊息和mac再次傳送給小剛。
小剛收到訊息和mac後,驗證發現mac是正確的值,然後再次出借100元。
重複5,6的步驟。
有上面的具體例子可以看出,只要監聽者能夠拿到訊息和mac值,既可實現重放攻擊。
金鑰推測攻擊實際上是一種暴力破解的方法,即通過mac來反向推導出金鑰。這就需要我們的mac演算法具有很好的抗暴力破解性。
mac演算法的關鍵是傳送者和接受者之間共享金鑰,從而實現對訊息完整性和認證的確認。但是mac演算法不能解決」第三方證明「 和 」防止否認「 的問題。
假如小明給小剛傳送了訊息,小剛想向第三方機構證明這條訊息確實是小明發出來的,但是mac無法做到。
因為mac是通過小明和小剛共享的金鑰生成出來的,所以第三方機構只能確認這個mac是由共享金鑰生成的,但是不能確定是小明生成的還是小剛自己生成的。
假如小明給小剛傳送了訊息,小剛收到訊息之後做mac驗證,通過後知道訊息是小明發出來的。
但是小明完全可以否認自己傳送了這條訊息,因為小剛擁有同樣的金鑰,可以偽造出同樣的訊息出來。
所以mac演算法無法做到防止否認。
MAC泛洪攻擊
先來解釋一下啥是泛洪攻擊 交換機裡有一張專門記錄mac位址的表,為了完成資料的快速 該錶具有自動學習機制 泛洪攻擊即是攻擊者利用這種學習機制不斷傳送不同的mac位址給交換機,充滿整個mac表,此時交換機只能進行資料廣播,攻擊者憑此獲得資訊。簡單的來說就是將學習mac的表佔滿,然後如果有正常的資料過來...
無線安全專題 攻擊篇 MAC泛洪攻擊
內部mac表是將主機的mac位址和連線到交換機上的埠號進行繫結,這樣可以根據mac位址找到埠進行 2.一開始的時候,沒有主機連線,交換機內的mac表是空白的,這時候就要進行學習。下面咱們幻想出乙個場景 pc1這時候想往pc2傳送資料,資料幀經過交換機的時候,交換機會把資料幀中的源mac位址和進入的埠...
無線安全專題 攻擊篇 MAC泛洪攻擊
出版了,大家可以看一下樣章 一.mac泛洪攻擊的原理 mac泛洪攻擊主要是利用區域網交換機的mac學習和老化機制。1.1交換機的工作流程如下 區域網中的pc1傳送資料幀給pc2,經過交換機時,交換機會在內部mac位址表中查詢資料幀中的目標mac位址,如果找到就將該資料幀傳送到相應的埠,如果找不到,交...