使用gpg進行安全簽名來驗證下載的檔案是否完整

來源:互聯網
上載者:User

/*********************************************************************
 * Author  : Samson
 * Date    : 04/04/2014
 * Test platform:
 *              Linux ubuntu 3.2.0-58-generic-pae
 *              GNU bash, version 4.2.39
 * *******************************************************************/


數位簽章是什嗎?

數位簽章,就是只有資訊的寄件者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對資訊的寄件者發送資訊真實性的一個有效證明。數位簽章是非對稱金鑰密碼編譯技術與數字摘要技術的應用。

主要功能是什嗎?

保證資訊傳輸的完整性、寄件者的身份認證、防止交易中的抵賴發生。數位簽章技術是將摘要資訊用寄件者的私密金鑰加密,與原文一起傳送給接收者。接收者只有用寄件者的公開金鑰才能解密被加密的摘要資訊,然後用HASH函數對收到的原文產生一個摘要資訊,與解密的摘要資訊對比。如果相同,則說明收到的資訊是完整的,在傳輸過程中沒有被修改,否則說明資訊被修改過,因此數位簽章能夠驗證資訊的完整性。數位簽章是個加密的過程,數位簽章驗證是個解密的過程。

下面將用一個例子來說明如何來進行簽名的驗證,以確保下載的檔案是沒有經過修改的,防止被非作者進行修改後重新打的包(這裡面的文章可大了,你懂的:_()

如何使用gpg進行安全簽名來驗證下載的檔案是否完整,以mediawiki為例:

首先,到mediawiki official web download:

mediawiki-1.22.5.tar.gz 

再得到上版本的簽名檔案,再得到pubkey,網頁上的擷取點如:


得到MediaWiki 1.22.5 GPG安全簽名檔案:mediawiki-1.22.5.tar.gz.sig

能過的 MediaWiki的GPG的公開金鑰 得到pubkey檔案,並儲存到檔案mediawiki_pubkey.txt中;

匯入公開金鑰到當前系統中:

 fuckids@debian-IDS:~/wiki$ gpg --import mediawiki_pubkey.txt
gpg: /home/fuckids/.gnupg/trustdb.gpg: trustdb created
gpg: key 7F901A30: public key "Mark A. Hershberger <mah@everybody.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
gpg: no ultimately trusted keys found


//列出當前的公開金鑰,檢查 是否匯入 成功
fuckids@debian-IDS:~/wiki$ gpg -k
/home/fuckids/.gnupg/pubring.gpg
--------------------------------
pub   2048R/7F901A30 2009-07-01 [expires: 2019-06-29]
uid                  Mark A. Hershberger <mah@everybody.org>
sub   2048R/84896BEA 2009-07-01 [expires: 2019-06-29]

//使用簽名檔案對下載的檔案進行驗證:

fuckids@debian-IDS:~/wiki$ gpg --verify mediawiki-1.22.5.tar.gz.sig mediawiki-1.22.5.tar.gz
gpg: Signature made Fri 28 Mar 2014 08:21:11 AM CST using RSA key ID 7F901A30
gpg: Good signature from "Mark A. Hershberger <mah@everybody.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 3CEF 8262 806D 3F0B 6BA1  DBDD 7956 EE47 7F90 1A30

其中 gpg: Good signature from "Mark A. Hershberger <mah@everybody.org>" 這一行表示簽名檔案是正確的,表示下載的包並沒有被中間修改過;


關於gpg相關的請參考:

http://www.gnupg.org

http://www.ruanyifeng.com/blog/2013/07/gpg.html

http://hi.baidu.com/hs_fish/item/8eb09d0b1bab79006c9048c9

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.