我見過一個c/C++程序,它使用CRC來檢查從TCP套接字接收到的數據。 我不明白爲什麼在應用程序中使用CRC。我相信只有在第2層到第4層才需要CRC,即鏈路層或傳輸層可能(網絡層也是?)。CRC是否有助於防止安全攻擊或保證數據的完整性?
但今天,我的同事告訴我,CRC有助於防止安全攻擊。他懷疑可能有攻擊者改變數據包。這是他在TCP套接字程序中需要CRC的原因。
但我仍然不能100%同意他。我認爲一個能夠改變數據包的攻擊者,我相信他也可以操縱CRC不被發現。
我認爲RSA是爲了這種安全。它是HTTP中的HTTPS和TCP中的SSL。 如果是這樣 - 如果我是對的 - 不需要CRC。而不是CRC加密算法是真正需要的算法。
我錯過了什麼嗎? CRC在TCP套接字編程中有用嗎?
TCP在每個數據包中已經包含校驗和。這用於保證正確的交付。發生錯誤時,TCP將重新請求數據包。 – PaulG
這個問題似乎是題外話題,因爲它是關於一般安全性,而不是編程。 –
這個問題的重點不在於安全。關於套接字編程中CRC的必要性。我想知道爲什麼套接字程序員在TCP數據上使用CRC。 – Jeonghum