網絡安全(3): 數據完整性校驗


    之前講了身份認證數據加解密,身份認證可以保證數據源沒有問題,數據加解密可以保證數據被竊聽者獲取也能防止竊聽者知道數據的內容,要做到數據的安全傳輸,還需要確定收到的數據沒有經過竊聽者的篡改,這就涉及到數據的完整性校驗。

哈希

    哈希是一種不可逆的映射,可以將數據經過哈希算法計算得到一個哈希值,而無法再將該哈希值反映射得到原始的數據。一般來說,不同的數據得到的哈希值是不同的,但也有極少的可能會出現碰撞,這極小的概率在這里不予考慮。 
    在網絡數據完整性校驗中使用的哈希算法通常包括:MD5, SHA。

數據完整性校驗

    數據完整性校驗一般使用哈希算法和密鑰對數據進行哈希得到數據的一個哈希值,然后將該哈希值和數據一塊發送給對方,對方收到數據之后,對數據使用相同的哈希算法和密鑰進行哈希得到哈希值,如果得到的哈希值和對方發過來的相同,那么就說明數據沒有經過篡改。 
    有人可能會想,常用的哈希算法就幾類,假設竊聽者截獲了數據,修改了數據區的某些字節,然后再用哈希算法進行再一次哈希得到新的哈希值,放入數據包中哈希值的位置傳給接收者,接收者收到之后,對數據進行哈希,得到的哈希值就是竊聽者發過來的那個哈希值。從而竊聽者實現了雖然沒有獲取信息,但是破壞了信息的目的。這就是為什么需要在哈希的時候使用密鑰:通信雙方進行身份認證之后,交換密鑰,包括對稱性加密的密鑰,哈希算法的密鑰,還有其他.... 在哈希的時候用上哈希密鑰,而竊聽者沒有哈希的密鑰,因此他最后偽造的哈希值是無法通過檢驗的。


免責聲明!

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



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