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

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

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

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

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

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

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

[root@mars:~]
# rpm -qa |grep gpg-pubkey
gpg-pubkey-c105b9de-4e0fd3a3

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

[root@mars:~]
# rpm -e gpg-pubkey-c105b9de-4e0fd3a3

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

# rpm -e --allmatches gpg-pubkey-c105b9de-4e0fd3a3

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

[sola@mars:~]
$ rpm --checksig -v acpid-1.0.10-3.el6.i686.rpm
acpid-1.0.10-3.el6.i686.rpm:
    Header V3 RSA/SHA1 Signature, key ID c105b9de: OK
    Header SHA1 digest: OK (18f39ead1b08db15ec9f007fc8a07869a0912f3d)
    V3 RSA/SHA1 Signature, key ID c105b9de: OK
    MD5 digest: OK (594ef3d382ba4e579a62254b6e506d7e)

○md5sumのチェック

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

httpd-2.4.25.tar.bz2
httpd-2.4.25.tar.bz2.md5

[sola@mars:~]
$ cat httpd-2.4.25.tar.bz2.md5
2826f49619112ad5813c0be5afcc7ddb *httpd-2.4.25.tar.bz2

・md5sumのチェック

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

・または

$ openssl md5 httpd-2.4.25.tar.bz2
MD5(httpd-2.4.25.tar.bz2)= 2826f49619112ad5813c0be5afcc7ddb

○sha1sumのチェック

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

openssl-1.0.2k.tar.gz.sha1
openssl-1.0.2k.tar.gz

・sha1sumのチェック

[sola@mars:~]
$ cat openssl-1.0.2k.tar.gz.sha1
5f26a624479c51847ebd2f22bb9f84b3b44dcb44
$ sha1sum openssl-1.0.2k.tar.gz
5f26a624479c51847ebd2f22bb9f84b3b44dcb44  openssl-1.0.2k.tar.gz

・または

$ openssl sha1 openssl-1.0.2k.tar.gz
SHA1(openssl-1.0.2k.tar.gz)= 5f26a624479c51847ebd2f22bb9f84b3b44dcb44

○GnuPG(pgp)のチェック

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

例1

pgpkey2017.txt

・http://www.isc.org/downloads/にアクセス
[ ISC’s OpenPGP public key ]をクリックして、"ISC Code Signing Key 2017 & 2018"を表示し
エディタでコピー&ペーストして保存します
(-----BEGIN PGP PUBLIC KEY BLOCK----- から -----END PGP PUBLIC KEY BLOCK----- まで)

bind-9.11.1.tar.gz.asc

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

bind-9.11.1.tar.gz

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

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

・gpgチェック

$ gpg --verify bind-9.11.1.tar.gz.asc bind-9.11.1.tar.gz
gpg: Signature made Thu Apr 20 02:05:20 2017 JST using RSA key ID 5CF02E57
gpg: Good signature from "Internet Systems Consortium, Inc. (Signing key, 2017-2018)
<codesign@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: BE0E 9748 B718 253A 28BB  89FF F1B1 1BF0 5CF0 2E57

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


例2

openssh-7.5p1.tar.gz
openssh-7.5p1.tar.gz.asc

・gpgチェック

[sola@mars:~]
$ gpg openssh-7.5p1.tar.gz.asc
gpg: Signature made Mon Mar 20 18:53:10 2017 JST using RSA key ID 6D920D30
gpg: Can't check signature: No public key

・公開鍵のインストール

$ gpg --keyserver keys.gnupg.net --recv-keys 6D920D30

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

$ gpg --fingerprint 6D920D30
$ gpg --edit-key 6D920D30

gpg> 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

gpg> quit

・gpgチェック

[sola@mars:~]
$ gpg openssh-7.5p1.tar.gz.asc
gpg: Signature made Mon Mar 20 18:53:10 2017 JST using RSA key ID 6D920D30
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: next trustdb check due at 2021-01-01
gpg: Good signature from "Damien Miller <djm@mindrot.org>"

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