數據完整性是指系統中信息的準確性、合法性和一致性。在發送信息時,尤其是使用不可靠媒介時,數據完整性可以確保該信息未被篡改。
非法數據的潛在成因是什么?
數據完整性能防止出現數據違背系統的指令被篡改等系列問題。其中一些潛在的問題包括:
物理故障:用不好的媒介傳輸大量數據可能會毀壞數據。例如,無線信號可能會暫時丟失,或者線路可能遭到噪聲電信號的干擾。
數據問題:負責傳達信息的軟件可能有一些漏洞,無意間使信息的子集發生變異。
惡意篡改:可能有中間人正在更改信息,以迷惑通訊員或者學習有價值的信息。
解決辦法-校驗和
校驗和可以解決以上三個潛在的數據完整性問題。校驗和是從信息數據中衍生出的一個確定值,可以單獨傳輸,這意味著給定信息的校驗和總是相同的。
信息接受者可以從該信息中生成校驗和,如果生成的校驗和與發送信息的校驗和匹配,那么發送的信息就不會被篡改。
需要注意的是,如果獲取校驗和的媒介不可靠,那么信息和校驗和都可能被中間人篡改。通常較好的做法是在校驗和上簽署數字簽名,數字簽名就能證明校驗和的發送者的身份。
什么是好的校驗和?
校驗和的類型很多,但是最好的校驗和通常是加密哈希函數。哈希函數能生成很好地校驗和驗證數據的完整性,以下是它的性質:
確定性:同一信息的哈希值始終相同,不存在隨機性。
速度快:無需使用不必要的資源計算校驗和(KDF是一種低效的校驗和)。
幾乎不重合:兩條不同的信息生成相同的校驗和的可能性幾乎為零。
精簡:哈希的結果(又稱“摘要”)應該很簡短,無需浪費大量數據。
SHA-256哈希函數通常用于創建校驗和摘要。
示例 –驗證實際的校驗和
校驗和的常見用例是對下載的驗證。在本例中,我們將下載比特幣核心節點軟件并驗證其完整性。假設你使用的是Mac OS,對于其他OS(操作系統),請按照下載頁面的說明進行操作。
下載程序:https://bitcoincore.org/bin/bitcoin-core-0.19.1/bitcoin-0.19.1-osx.dmg?ref=hackernoon.com
下載校驗和:https://bitcoin.org/bin/bitcoin-core-0.19.1/SHA256SUMS.asc?ref=hackernoon.com
打開終端并下載文件夾:
cd ~/Downloads
計算并打印下載的dmg文件的校驗和:
shasum -a 256 bitcoin-0.19.1-osx.dmg
應該打印:
206d8d92189d22e735393abebeb7a2e7237a119dd448b4a40df8c357da1287b2 bitcoin-0.19.1-osx.dmg
然后打印下載的(預期的)校驗和:
catSHA256SUMS.asc | grep bitcoin-0.19.1-osx.dmg
應該匹配:
206d8d92189d22e735393abebeb7a2e7237a119dd448b4a40df8c357da1287b2 bitcoin-0.19.1-osx.dmg
如果能夠匹配,那么恭喜你!你的下載已經通過驗證。你下載的程序沒有經過惡意篡改。
此外,請記住,要驗證提供給你的校驗和未被篡改,你還需要驗證GPG簽名。
責編AJX
-
數據
+關注
關注
8文章
7139瀏覽量
89576 -
校驗和
+關注
關注
0文章
3瀏覽量
6559 -
數據完整性
+關注
關注
0文章
14瀏覽量
5117
發布評論請先 登錄
相關推薦
評論