消息認證
出自 MBA智库百科(https://wiki.mbalib.com/)
消息認證(message authentication)
目錄 |
什麼是消息認證[1]
消息認證就是驗證消息的完整性,當接收方收到發送方的報文時,接收方能夠驗證收到的報文是真實的和未被篡改的。它包含兩層含義:一是驗證信息的發送者是真正的而不是冒充的,即數據起源認證;二是驗證信息在傳送過程中未被篡改、重放或延遲等。
數據完整性機制有兩種類型:一種用來保護單個數據單元的完整性;另一種既保護單個數據單元的完整性,又保護整個連接上所有數據單元流序列的完整性。
消息認證的檢驗內容[1]
消息認證的檢驗內容應包括:認證報文的信源和信宿、報文內容是否遭到偶然或有意篡改、報文的序號是否正確、報文的到達時間是否在指定的期限內。總之,消息認證使接收者能識別報文的源、內容的真偽、時間有效性等。這種認證只在相互通信的雙方之間進行,而不允許第三者進行上述認證。
為了防止人工操作和傳輸過程中的偶然錯誤,可採用多次輸入和多次傳輸比較法進行校驗,也可採用冗餘校驗法進行檢測。這些都是比較簡單的保持完整性的方法。
在數據塊中加入冗餘信息的過程稱為差錯編碼。只具有檢錯功能,但不能確定錯誤位置,也不能糾正錯誤,這種碼稱檢錯碼。具有糾錯功能,將無效碼字恢覆成距離它最近的有效碼字,但不是100%正確,這種碼稱糾錯碼。檢錯碼和糾錯碼都是檢驗數據完整性的簡單易行的有效方法。
消息認證目的[2]
消息認證是防止主動攻擊的重要技術,消息認證的目的主要有兩個:
①驗證信息的發送者是真實的,而不是冒充的,也稱為信源認證;
②驗證信息的完整性,即信息在傳送和存儲過程中未被篡改、重放和延遲等。
消息認證系統的模型[2]
消息認證系統的一般模型如圖1所示。相對於密碼系統,認證系統更強調的是完整性。消息由發送者發出後,經由密鑰控制或無密鑰控制的認證編碼器變換,加入認證碼,將消息連同認證碼一起在公開的無擾通道進行傳輸,有密鑰控制時還需要將密鑰通過一個安全通道傳輸至接收方。接收方在收到所有數據後,經由密鑰控制或無密鑰控制的認證解碼器進行認證,判定消息是否完整。消息在整個過程中以明文形式或某種變形方式進行傳輸,但並不一定要求加密,也不一定要求內容對第三方保密。攻擊者能夠截獲和分析通道中傳送的消息內容,而且可能偽造消息送給接收者進行欺詐。攻擊者不再像保密系統中的密碼分析者那樣始終處於消極被動地位,而是主動攻擊者。
圖1所示的認證編碼器和認證解碼器可以抽象為認證方法。一個安全的消息認證系統,必須選擇合適的認證函數,該函數產生一個鑒別標誌,然後在此基礎上建立合理的認證協議,使接收者完成消息的認證。
- 圖1 消息認證系統模型
消息認證中常見的攻擊和對策[2]
①重放攻擊:截獲以前協議執行時傳輸的信息,然後在某個時候再次使用。對付這種攻擊的一種措施是在認證消息中包含一個非重覆值,如序列號、時戳、隨機數或嵌入目標身份的標誌符等。
②冒充攻擊:攻擊者冒充合法用戶發佈虛假消息。為避免這種攻擊可採用身份認證技術。
③重組攻擊:把以前協議執行時一次或多次傳輸的信息重新組合進行攻擊。為了避免這類攻擊,把協議運行中的所有消息都連接在一起。
④篡改攻擊:修改、刪除、添加或替換真實的消息。為避免這種攻擊可採用消息認證碼MAC或hash函數等技術。



