○ ソースファイルのチェック

*CentOS 5.5の場合です
*md5、sha1、sha256、gpgなどで署名されたファイルの改竄チェックをします

*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます

○RPMパッケージのチェック

:RPM-GPG-KEYのインストール(例)

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

:RPM-GPG-KEYのインストールの確認

# rpm -qa |grep gpg-pubkey
gpg-pubkey-e8562897-459f07a4

:RPM-GPG-KEYのアンインストール(例)

# rpm -e gpg-pubkey-e8562897-459f07a4

:rpmパッケージのチェック

$ rpm --checksig -v acpid-1.0.4-9.el5_4.2.i386.rpm
acpid-1.0.4-9.el5_4.2.i386.rpm:
    Header V3 DSA signature: OK, key ID e8562897
    Header SHA1 digest: OK (5be067b1bccb07336cf9e2ddcb19fac8ce75eae8)
    MD5 digest: OK (0a61005ea0c5197f88fe5d6a95c67d40)
    V3 DSA signature: OK, key ID e8562897

○md5sumのチェック

インターネットのダウンロードサイトからソースパッケージなどをダウンロードするときなど、
md5sumが利用できる場合はオリジナルファイルと一致するか確認する事ができます。

httpd-2.2.16.tar.bz2
httpd-2.2.16.tar.bz2.md5

[sola@venus sola]$ cat httpd-2.2.16.tar.bz2.md5
c8ff2a07c884300bc7766a2e7f662d33 *httpd-2.2.16.tar.bz2

*md5sumのチェック

[soloa@venus sola]$ md5sum --check httpd-2.2.16.tar.bz2.md5
httpd-2.2.16.tar.bz2: OK

*または

[soloa@venus sola]$ openssl md5 httpd-2.2.16.tar.bz2
MD5(httpd-2.2.16.tar.bz2)= c8ff2a07c884300bc7766a2e7f662d33

○sha1sumのチェック

インターネットのダウンロードサイトからソースパッケージなどをダウンロードするときなど、
sha1sumが利用できる場合はオリジナルファイルと一致するか確認する事ができます。

openssl-0.9.8o.tar.gz.sha1
openssl-0.9.8o.tar.gz

*sha1sumのチェック

[sola@venus sola]$ cat openssl-0.9.8o.tar.gz.sha1
80c73afc7dca790cd26936cb392a4dfd14d4e4d7
[sola@venus sola]$ sha1sum openssl-0.9.8o.tar.gz
80c73afc7dca790cd26936cb392a4dfd14d4e4d7  openssl-0.9.8o.tar.gz

*または

[soloa@venus sola]$ openssl sha1 openssl-0.9.8o.tar.gz
SHA1(openssl-0.9.8o.tar.gz)= 80c73afc7dca790cd26936cb392a4dfd14d4e4d7

○GnuPG(pgp)のチェック

インターネットのダウンロードサイトからソースパッケージなどをダウンロードするときなど、
GnuPGが利用できる場合はオリジナルファイルと一致するか確認する事ができます。

例1

pgpkey2009.txt

*https://www.isc.org/about/openpgp から pgpkey2009.txt を右クリックして保存

bind-9.7.1-P2.tar.gz.asc

*ftp://ftp.isc.org/isc/bind9/9.7.1-P2/ から bind-9.7.1-P2.tar.gz.asc を右クリックして保存

bind-9.7.1-P2.tar.gz

*PGP公開鍵をGnuPGのkeyringにインポートします

[sola@venus sola]$ mkdir ~/.gnupg
[sola@venus sola]$ gpg --import pgpkey2009.txt

*gpgチェック

[sola@venus sola]$ gpg --verify bind-9.7.1-P2.tar.gz.asc
gpg: Signature made Fri Jul 16 03:31:10 2010 JST using RSA key ID 0B7BAE00
gpg: Good signature from "Internet Systems Consortium, Inc. (Signing key, 2009)
 <pgpkey2009@isc.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: FA76 7A86 A371 E359 22F6  A5C8 D811 B53F 0B7B AE00

*gpg: Good signatureの行があればOK


例2

openssh-5.5p1.tar.gz
openssh-5.5p1.tar.gz.asc

*gpgチェック

[sola@venus sola]$ gpg openssh-5.5p1.tar.gz.asc
gpg: Signature made Fri Apr 16 09:17:18 2010 JST using DSA key ID 86FF9C48
gpg: Can't check signature: public key not found

*公開鍵のインストール

[sola@venus sola]$ gpg --keyserver wwwkeys.pgp.net --recv-keys 86FF9C48

*公開鍵の指紋のチェック・鍵の信用度の設定
*ここでは実験的に"5 = 絶対的に信用する"に設定しています

[sola@venus sola]$ gpg --fingerprint 86FF9C48
[sola@venus sola]$ gpg --edit-key 86FF9C48
Command> trust

  1 = I don't know or won't say
  2 = I do NOT trust
  3 = I trust marginally
  4 = I trust fully
  5 = I trust ultimately
  m = back to the main menu

Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y

Command> quit

*gpgチェック

[sola@venus sola]$ gpg --verify openssh-5.5p1.tar.gz.asc
gpg: Signature made Fri Apr 16 09:17:18 2010 JST using DSA key ID 86FF9C48
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: Good signature from "Damien Miller (Personal Key) <djm@mindrot.org>"

○ Copyright(c) 528p.com All Rights Reserved.