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

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

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

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

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

[root@mars:~]
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

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

[root@mars:~]
# rpm -qa |grep gpg-pubkey
gpg-pubkey-e8562897-459f07a4

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

[root@mars:~]
# rpm -e gpg-pubkey-e8562897-459f07a4

・同じkeyを複数インストールしている場合

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

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

[sola@mars:~]
$ 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.19.tar.bz2
httpd-2.2.19.tar.bz2.md5

[sola@mars:~]
$ cat httpd-2.2.19.tar.bz2.md5
832f96a6ec4b8fc7cf49b9efd4e89060 *httpd-2.2.19.tar.bz2

・md5sumのチェック

$ md5sum --check httpd-2.2.19.tar.bz2.md5
httpd-2.2.19.tar.bz2: OK

・または

$ openssl md5 httpd-2.2.19.tar.bz2
MD5(httpd-2.2.19.tar.bz2)= 832f96a6ec4b8fc7cf49b9efd4e89060

○sha1sumのチェック

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

openssl-1.0.0d.tar.gz.sha1
openssl-1.0.0d.tar.gz

・sha1sumのチェック

[sola@mars:~]
$ cat openssl-1.0.0d.tar.gz.sha1
32ca934f380a547061ddab7221b1a34e4e07e8d5
$ sha1sum openssl-1.0.0d.tar.gz
32ca934f380a547061ddab7221b1a34e4e07e8d5  openssl-1.0.0d.tar.gz

・または

$ openssl sha1 openssl-1.0.0d.tar.gz
SHA1(openssl-1.0.0d.tar.gz)= 32ca934f380a547061ddab7221b1a34e4e07e8d5

○GnuPG(pgp)のチェック

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

例1

pgpkey2009.txt

・http://www.isc.org/files/pgpkey2009.txt を保存

bind-9.8.0-P4.tar.gz.asc

・ftp://ftp.isc.org/isc/bind9/9.8.0-P4/ から bind-9.8.0-P4.tar.gz.asc を右クリックして保存

bind-9.8.0-P4.tar.gz

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

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

・gpgチェック

$ gpg --verify bind-9.8.0-P4.tar.gz.asc
gpg: Signature made Tue Jun 28 07:19:23 2011 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.8p2.tar.gz
openssh-5.8p2.tar.gz.asc

・gpgチェック

[sola@mars:~]
$ gpg openssh-5.8p2.tar.gz.asc
gpg: Signature made Tue May  3 09:08:30 2011 JST using DSA key ID 86FF9C48
gpg: Can't check signature: public key not found

・公開鍵のインストール

$ gpg --keyserver wwwkeys.us.pgp.net --recv-keys 86FF9C48

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

$ gpg --fingerprint 86FF9C48
$ 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チェック

$ gpg --verify openssh-5.8p2.tar.gz.asc
gpg: Signature made Tue May  3 09:08:30 2011 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.