日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MAC攻击及缺陷

發(fā)布時(shí)間:2024/2/28 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MAC攻击及缺陷 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

MAC攻擊及缺陷

  • MAC有好幾種實(shí)現(xiàn)方式
  • 對(duì)MAC的攻擊
    • 重放攻擊
    • 重放攻擊的防護(hù)
    • 密鑰推測(cè)攻擊
  • MAC算法的缺陷
    • 第三方證明
    • 防止否認(rèn)

前面我們?cè)谥vHMAC的時(shí)候簡(jiǎn)單講過了什么是MAC消息認(rèn)證碼。

簡(jiǎn)單點(diǎn)說MAC(Message Authentication Code)是一種確認(rèn)完整性并進(jìn)行認(rèn)證的技術(shù),取三個(gè)單詞的首字母,簡(jiǎn)稱MAC。它是一種與密鑰相關(guān)聯(lián)的函數(shù)。 HMAC就是MAC的一種實(shí)現(xiàn)。

MAC有好幾種實(shí)現(xiàn)方式

  • 使用單向散列函數(shù)實(shí)現(xiàn)
    比如HMAC。

  • 使用分組密碼實(shí)現(xiàn)
    使用AES之類的分組密碼可以實(shí)現(xiàn)消息認(rèn)證碼。關(guān)于分組密碼的詳細(xì)內(nèi)容,后面我們會(huì)做詳細(xì)說明。

  • 其他實(shí)現(xiàn)
    其他實(shí)現(xiàn)方法如:流密碼和公鑰密碼等。

對(duì)MAC的攻擊

雖然MAC可以同時(shí)驗(yàn)證消息的完整性和來源,但是仍然有多種攻擊方式。

重放攻擊

什么是重放攻擊?顧名思義,重放攻擊就是將之前的信息或者通信再次請(qǐng)求。我們舉個(gè)例子。

  • 小明跟小剛在做借款通信,但是這個(gè)通信被小紅監(jiān)聽到了。
  • 小明向小剛發(fā)起借款100元,在MAC中假設(shè)小明和小剛共享了密鑰,小明通過密鑰根據(jù)請(qǐng)求消息計(jì)算出了MAC,并將MAC和消息一起發(fā)送給小剛。
  • 小剛收到了消息和MAC,根據(jù)自己存儲(chǔ)的密鑰計(jì)算出MAC,將整個(gè)MAC和收到的MAC做對(duì)比,如果兩個(gè)MAC相等,那么小剛就知道這個(gè)是小明發(fā)起的合法請(qǐng)求,于是做出借款100元的操作。
  • 因?yàn)樾〖t監(jiān)聽到了小明跟小剛的通信,所以小紅獲取到了請(qǐng)求消息和生成的MAC,并保持起來。
  • 小紅將第4步收到的消息和MAC再次發(fā)送給小剛。
  • 小剛收到消息和MAC后,驗(yàn)證發(fā)現(xiàn)MAC是正確的值,然后再次出借100元。
  • 重復(fù)5,6的步驟。
  • 有上面的具體例子可以看出,只要監(jiān)聽者能夠拿到消息和MAC值,既可實(shí)現(xiàn)重放攻擊。

    重放攻擊的防護(hù)

    • 制定唯一的序號(hào)
      在每次消息中,添加一個(gè)唯一的序號(hào),序號(hào)遞增,這樣計(jì)算出來的MAC每次都是不一樣的,即使能夠拿到消息和MAC,在第二次重放的時(shí)候,由于消息和MAC都應(yīng)該發(fā)送變化,從而使重放攻擊失效。

    • 時(shí)間戳
      在消息里面包含了當(dāng)前的時(shí)間,在服務(wù)器校驗(yàn)的時(shí)候去檢查這個(gè)時(shí)間戳,如果相隔時(shí)間很短的話即認(rèn)可這個(gè)消息。這里會(huì)有個(gè)雙方時(shí)鐘同步的問題,同時(shí)要預(yù)留一個(gè)間隔時(shí)間區(qū)間。如果在這個(gè)時(shí)間區(qū)間內(nèi)發(fā)生了重放,還是會(huì)攻擊成功。

    • 隨機(jī)數(shù)nonce
      在雙方通信之前,服務(wù)器先發(fā)送一個(gè)隨機(jī)數(shù)給發(fā)送者,發(fā)送者在消息中包含這個(gè)隨機(jī)數(shù),并計(jì)算MAC值。因?yàn)槊看握?qǐng)求的隨機(jī)數(shù)都會(huì)變化,所以重發(fā)MAC攻擊不成立。但是會(huì)增加額外的通信請(qǐng)求成本。

    密鑰推測(cè)攻擊

    密鑰推測(cè)攻擊實(shí)際上是一種暴力破解的方法,即通過MAC來反向推導(dǎo)出密鑰。這就需要我們的MAC算法具有很好的抗暴力破解性。

    MAC算法的缺陷

    MAC算法的關(guān)鍵是發(fā)送者和接受者之間共享密鑰,從而實(shí)現(xiàn)對(duì)消息完整性和認(rèn)證的確認(rèn)。但是MAC算法不能解決”第三方證明“ 和 ”防止否認(rèn)“ 的問題。

    第三方證明

    假如小明給小剛發(fā)送了消息,小剛想向第三方機(jī)構(gòu)證明這條消息確實(shí)是小明發(fā)出來的,但是MAC無法做到。

    因?yàn)镸AC是通過小明和小剛共享的密鑰生成出來的,所以第三方機(jī)構(gòu)只能確認(rèn)這個(gè)MAC是由共享密鑰生成的,但是不能確定是小明生成的還是小剛自己生成的。

    防止否認(rèn)

    假如小明給小剛發(fā)送了消息,小剛收到消息之后做MAC驗(yàn)證,通過后知道消息是小明發(fā)出來的。

    但是小明完全可以否認(rèn)自己發(fā)送了這條消息,因?yàn)樾倱碛型瑯拥拿荑€,可以偽造出同樣的消息出來。

    所以MAC算法無法做到防止否認(rèn)。

    更多精彩內(nèi)容且看:

    • 區(qū)塊鏈從入門到放棄系列教程-涵蓋密碼學(xué),超級(jí)賬本,以太坊,Libra,比特幣等持續(xù)更新
    • Spring Boot 2.X系列教程:七天從無到有掌握Spring Boot-持續(xù)更新
    • Spring 5.X系列教程:滿足你對(duì)Spring5的一切想象-持續(xù)更新
    • java程序員從小工到專家成神之路(2020版)-持續(xù)更新中,附詳細(xì)文章教程

    更多教程請(qǐng)參考flydean的博客

    總結(jié)

    以上是生活随笔為你收集整理的MAC攻击及缺陷的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。