消息認證概述


在網絡環境中的攻擊類型

  消息保密性范疇:    1、泄密  2、傳輸分析  

  消息認證/數字簽名:     3、偽裝  4、內容修改 插入/刪除/轉換/修改(消息內容) 5、順序修改 插入/刪除/重排(以消息為單位) 6、計時修改  延時/重播

  數字簽名:         7、發送方否認  8、接收方否認

消息認證函數

  該函數用來產生認證符,可分成三類

  1、Hash函數--以Hash值為認證符

  2、消息加密--以整個信息加密后的密文作為認證符

  3、消息認證符(MAC)--以消息和密鑰作輸入,產生定長值作為認證符

 消息加密

  1、對稱加密

    

    可行性:既提供了保密性,又提供了認證。保密性源自加密和密鑰共享,認證則來自於密鑰共享。

    不足:若明文合法性難以判定(如圖片或二進制文件等),則僅滿足保密性,卻無法認證。根源在於沒有能夠識別的結構對明文合法性進行驗證。

    解決辦法:因為進行傳輸前只有發送方A知道明文M,A用函數F計算M生成錯誤檢測碼FCS,附在M后,然后一起加密發送給B。第三方在不能破解密文情況下不知道明文M,因此也就無法偽造出符合條件的FCS,而接收方也就能夠根據FCS進行身份認證。

    

  2、公鑰加密

    

     A用B的公鑰加密,B用自己的私鑰解密。由於任何人都能獲取B的公鑰,僅此無法判斷消息是從哪里發過來的,即無法認證。

 

    

     A用自己的私鑰加密或者簽名,由於B只能用A的公鑰解密(約定明文合法性),因此有認證和簽名的功能。由於任何人都可以得到A的公鑰,因此不具有保密性。

    

    A用自己的私鑰簽名,然后再用B的公鑰加密。由於只有B能夠用自己的私鑰解密,因此保證了保密性。而又只有A的公鑰能夠驗證簽名,因此還有認證和簽名的功能。

 

消息認證碼(MAC)   Message Authentication Codes

  MAC = C(K , M)

  M是輸入消息;C是MAC函數;K是共享密鑰;

  A計算出MAC后,將之附在不加密的明文M后面一起發送給B。B根據K和M重新計算MAC進行比對認證。

  MAC有以下三種基本模式:

  

  MAC函數與加密的區別:MAC算法不要求可逆,而加密算法必須可逆。

  MAC函數與Hash函數的區別:MAC算法的輸入包含密鑰,而Hash不包含。

  由於MAC基於共享密鑰,因此不能提供數字簽名。

  使用MAC的優點:

    1、MAC將加密性與認證分離開來,可以滿足只需要認證不需要加密的需求。同時MAC使得層次結構更加靈活,如可以在傳輸的不同的層次來分別完成加密和認證。

    2、MAC不影響明文的讀取,可以一直附在明文后面,在需要的時候靈活認證。也可以延長對消息的保護時間,而不僅僅只是在傳輸的時候。也正是基於這一點,上圖b方案比c方案要更好一些。

  MAC的安全性:

  由於認證函數的數學性質,與加密相比,認證函數更不易被攻破。

  因為MAC函數是一種多對一的函數,在窮舉攻擊下,給定明文和MAC值,攻擊者須遍歷所有可能的K以重現MAC值。由於可能有許多K都可以重現MAC值,因而並不能確定具體的認證密鑰,還必須再用新的明文MAC對再做驗證,直到K只剩下一種可能。

  MAC函數應具有的性質:

    1、攻擊者在已知M和MAC值以及MAC函數的情況下,要構造滿足MAC(K , M') = MAC(K , M)的消息M'在計算上不可行

      該要求是防止攻擊者不知道密鑰的情況下也能夠構造出與給定MAC匹配的新消息。

    2、對隨機的消息M和M',MAC(K , M) = MAC(K , M')的概率是2-n,其中n是MAC的位數

      該要求是使MAC函數具有均勻分布的特點,對於選擇明文的窮舉攻擊平均都需要2n-1步才能找到具有給定MAC的消息

    3、設M' = f(M),例如f可能是將M的一位或者多位取反,要求Pr[MAC(K , M) = MAC(K , M')] = 2-n

      該要求是認證算法不應對消息的某些部位比其他部位的處理不均勻。

  常見的MAC函數實現:

    1、基於Hash函數的MAC--HMAC

    2、基於分組密碼的MAC--DAA和CMAC

    3、認證加密:CCM和GCM

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM