欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

歡迎來到云服務(wù)器

系統(tǒng)配置

在Linux上如何驗(yàn)證已下載文件的真實(shí)性和完整性

你從互聯(lián)網(wǎng)上下載了某個(gè)文件(比如安裝程序、ISO映像文件或壓縮文件)后,該文件可能因各種錯(cuò)誤情形而遭到損壞,比如由于網(wǎng)絡(luò)連接上的傳輸錯(cuò)誤、下載受到中斷、存儲(chǔ)硬件有故障、文件系統(tǒng)錯(cuò)誤等。拋開此類錯(cuò)誤情形不說,文件還有可能被攻擊者在下載過程中或下載前惡意篡改。比如說,攻擊者對(duì)認(rèn)證中心做手腳后,就能發(fā)動(dòng)中間人(MITM)攻擊,引誘你從假冒的HTTPS網(wǎng)站下載感染了惡意軟件的文件。

為了保護(hù)自己遠(yuǎn)離這些種類的問題,你從互聯(lián)網(wǎng)下載文件時(shí),我們常常建議驗(yàn)證文件的真實(shí)性和完整性。尤其是你下載了相當(dāng)敏感的文件(比如操作系統(tǒng)映像文件、應(yīng)用程序二進(jìn)制代碼和可執(zhí)行的安裝程序等)后,盲目地相信已下載文件可不是一個(gè)好習(xí)慣。

想驗(yàn)證已下載文件的完整性,一個(gè)快速而簡單的辦法就是,使用各種校驗(yàn)和工具(比如md5sum、sha256sum和cksum),計(jì)算并比較校驗(yàn)和(比如MD5、SHA或CRC)。不過,校驗(yàn)和很容易遭到碰撞攻擊,而且無法用來驗(yàn)證文件的真實(shí)性(即所有者)。

如果你既想驗(yàn)證已下載文件的真實(shí)性(所有者),又想驗(yàn)證文件的完整性(內(nèi)容),就要改而依賴加密簽名。我在本教程中將介紹如何使用GnuPG(GNU隱私保護(hù)),檢驗(yàn)文件的真實(shí)性和完整性。

在這個(gè)例子中,我要驗(yàn)證可從https://onionshare.org下載的一個(gè)磁盤映像文件。在該網(wǎng)站上,文件發(fā)布者提供了官方公鑰,還提供了用于驗(yàn)證的指紋。

在Linux上如何驗(yàn)證已下載文件的真實(shí)性和完整性

至于有待下載的文件,發(fā)布者還提供了相應(yīng)的PGP簽名。

在Linux上如何驗(yàn)證已下載文件的真實(shí)性和完整性

安裝GnuPG,生成密鑰對(duì)

我們不妨先將GnuPG安裝到你的Linux系統(tǒng)上。

在Debian、Ubuntu及其他Debian衍生版上:



$ sudo apt-get install gnupg

在Fedora、CentOS或RHEL上:



$ sudo yum install gnupg

安裝完畢后,生成密鑰對(duì),你在本教程中要用到該密鑰對(duì)。



$ gpg --gen-key

在Linux上如何驗(yàn)證已下載文件的真實(shí)性和完整性

密鑰生成過程中,會(huì)要求你提供姓名和電子郵件地址,以及保護(hù)你私鑰的密碼。你還可以選擇密鑰對(duì)何時(shí)到期(默認(rèn)情況下沒有到期日)。密鑰生成過程可能需要幾分鐘或更久,長短取決于你選擇的密鑰大小(1024位到4096位),因?yàn)樗枰占銐驍?shù)量的隨機(jī)性數(shù)據(jù),這些數(shù)據(jù)來自你的桌面活動(dòng)(比如鍵盤鍵入、鼠標(biāo)移動(dòng)、磁盤訪問)。

密鑰生成完畢后,公鑰和私鑰都將存儲(chǔ)在~/.gnupg目錄中,供之后使用。

在Linux上如何驗(yàn)證已下載文件的真實(shí)性和完整性

導(dǎo)入文件所有者的公鑰

驗(yàn)證已下載文件的第一步是,導(dǎo)入文件所有者的公鑰,與所有者建立信任關(guān)系則是可選步驟。

首先,下載文件所有者的公鑰:



$ wget https://onionshare.org/signing-key.asc

然后繼續(xù)使用gpg命令,將公鑰導(dǎo)入到你的密鑰環(huán):



$ gpg --import signing-key.asc

在Linux上如何驗(yàn)證已下載文件的真實(shí)性和完整性

一旦所有者的公鑰導(dǎo)入完畢,它會(huì)輸出一個(gè)密鑰編號(hào)(比如“EBA34B1C”),如上所示。記下這個(gè)密鑰編號(hào)。

現(xiàn)在,運(yùn)行這個(gè)命令,檢查已導(dǎo)入公鑰的指紋:



$ gpg --fingerprint EBA34B1C

在Linux上如何驗(yàn)證已下載文件的真實(shí)性和完整性

你會(huì)看到公鑰的指紋串。將該指紋串與網(wǎng)站上顯示的指紋進(jìn)行比對(duì),看看兩者是否匹配。

通常來說,驗(yàn)證公鑰的所有者確實(shí)是他或她聲稱的那個(gè)人必須經(jīng)歷比簡單的指紋比對(duì)更嚴(yán)格的過程,因?yàn)榫W(wǎng)站有可能經(jīng)過偽造,以便與指紋匹配。只有密鑰已經(jīng)過了全面審查,確實(shí)屬于某個(gè)人(比如你見過那個(gè)人,通過電話聊了聊,以證實(shí)對(duì)方的身份,等等),才可以信任對(duì)方的公鑰。

一旦你通過另外的一些手段驗(yàn)證了公鑰的有效性,并決定信任公鑰,就可以明確將你的信任賦予該密鑰,如下所示。要注意:這一步是可選的,不需要你在使用前賦予明確的信任。



$ gpg --edit-key EBA34B1C

這個(gè)命令會(huì)顯示GPG提示符:

在Linux上如何驗(yàn)證已下載文件的真實(shí)性和完整性

在GPG提示符下鍵入“trust”,這會(huì)讓你可以選擇該密鑰的信任級(jí)別:從1到5。

在Linux上如何驗(yàn)證已下載文件的真實(shí)性和完整性

在這里,我決定賦予信任“4”。之后,鍵入“sign”,用你自己的私鑰來對(duì)它簽名,然后在GPG提示符下鍵入“save”:

在Linux上如何驗(yàn)證已下載文件的真實(shí)性和完整性

同樣,這種明確將信任賦予公鑰的方式不是必需的;通過僅僅導(dǎo)入密鑰表明絕對(duì)信任常常就夠了。

將“完全”信任賦予密鑰帶來的影響是,如果另一個(gè)密鑰X用這個(gè)完全信任的密鑰來簽名,密鑰X也被你認(rèn)為是有效的。通常而言,密鑰驗(yàn)證依賴一種名為“信任網(wǎng)絡(luò)”(web of trust)的復(fù)雜機(jī)制。

回到本教程,現(xiàn)在不妨檢驗(yàn)已導(dǎo)入密鑰列表。



$ gpg --list-keys

在Linux上如何驗(yàn)證已下載文件的真實(shí)性和完整性

你應(yīng)該至少會(huì)看到兩個(gè)密鑰:一個(gè)是深度為0、終極信任(“1u”)的密鑰;另一個(gè)是深度為1、完全信任(“1f“)的密鑰,后者是由你自己早些時(shí)候簽名的密鑰。

驗(yàn)證文件的真實(shí)性/完整性

一旦你使用文件所有者的公鑰與對(duì)方建立起了信任關(guān)系,我們現(xiàn)在就可以準(zhǔn)備驗(yàn)證你從所有者那里下載的某個(gè)文件的真實(shí)性和完整性了。

在我們這個(gè)例子中,文件所有者分開發(fā)布了文件和相應(yīng)的PGP簽名(*.asc)。簽名的作用就是驗(yàn)證文件,并給文件加上時(shí)間戳。

一個(gè)典型的簽名(*.asc)看起來如下。

-----BEGIN PGP SIGNATURE-----

iQIcBAABCgAGBQJUJGhsAAoJEP1yCtnro0sc1jUP/ixNY/lKdrcMIAUoqlWKNE8f

sj4SFiwREMew76w66GASDF03fa5zPX6EsS2kucgx8ZsfEiSmN5T0y2P/aSaXwZqF

kywZVEzirKtca5AJ4DBzu6qrt9GgSw6JBJVv1oBJCMNyO+eAj341paR3MudvnyQz

H/N5tc4Qcilzy6M184opGIzy4ipEmMXfLHsd7WJpAyn+tO/z3uhh9NkNuygZpaFr

olpSWPE8revdDJyfMfSmb3ZrFmhLn7FCEltOi+a7SluvrMclizfnbec9rgLJtjo0

CPDZY7tsWmmL0DA3VvpMVqGvkg/Dyhpn2IIDrNaLAlvGQ5aovf+4tjad5IHvyaWx

4Gds93G6Hqvv5RwGx7OR3hgt2o0Y+qFsVDxVnPxerGhXeJXHzSDwLQMpdj9IoSU

Ae/53XXnxqSN6POZcwHiHvbsv0pdlg0Ea0dDAAN0ZeINNyZf1R0tLjWkcgpvGCtv

qkJuYFF9W9cWHraPY2ov5Hs/JZzPcG0eVpnDdzfOOH1gDKADq9A5D2X5QJCulsh9

WwU3X+E43OqIsoRzBucItD9HhZbEH7t8Q0xAqnAkgU3hriZp3dN4cnMfhM6I9hli

EmpSpLKCceMexu2o9QgzGXVm+AGZJe4QkuwAhRIccp5JDMVny61UlKTasjy6co8h

5GBhhYybPEFM+G1BODMd

=c9wo

-----END PGP SIGNATURE-----

我們不妨下載文件及其簽名:



$ wget https://onionshare.org/files/0.6/OnionShare.dmg
$ wget https://onionshare.org/files/0.6/OnionShare.dmg.asc

現(xiàn)在,驗(yàn)證已下載文件的PGP簽名。



$ gpg --verify OnionShare.dmg.asc OnionShare.dmg

在Linux上如何驗(yàn)證已下載文件的真實(shí)性和完整性

如果該命令的輸出里面含有“Good signature from ”,這表明已下載的.dmg文件已成功通過了驗(yàn)證。要是已下載文件在簽名生成后以任何一種方式而遭到篡改,驗(yàn)證就會(huì)失敗。

現(xiàn)在你大可放心,可以信任那個(gè)已下載文件了。

騰訊云代理

Copyright © 2003-2021 MFISP.COM. 國外vps服務(wù)器租用 夢(mèng)飛云服務(wù)器租用 版權(quán)所有 ? 粵ICP備11019662號(hào)

主站蜘蛛池模板: 米泉市| 东至县| 卓尼县| 鱼台县| 固原市| 合阳县| 天气| 涿州市| 东城区| 库车县| 大渡口区| 郧西县| 浑源县| 甘谷县| 金门县| 东乡族自治县| 临桂县| 隆子县| 曲沃县| 安阳市| 额敏县| 井陉县| 正镶白旗| 昌图县| 西林县| 新田县| 信宜市| 邹平县| 巨野县| 土默特左旗| 清丰县| 凌云县| 邵阳县| 方山县| 莎车县| 西峡县| 吉林市| 信阳市| 容城县| 诸城市| 兴义市|