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

・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が利用できる場合はオリジナルファイルと一致するか確認する事ができます。

ntp-4.2.8p10.tar.gz
ntp-4.2.8p10.tar.gz.md5

[sola@mars:~]
$ cat ntp-4.2.8p10.tar.gz.md5
745384ed0dedb3f66b33fe84d66466f9  ntp-4.2.8p10.tar.gz

・md5sumのチェック

$ md5sum --check ntp-4.2.8p10.tar.gz.md5
ntp-4.2.8p10.tar.gz: OK

・または

$ openssl md5 ntp-4.2.8p10.tar.gz
MD5(ntp-4.2.8p10.tar.gz)= 745384ed0dedb3f66b33fe84d66466f9

○sha1sumのチェック

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

httpd-2.4.26.tar.bz2
httpd-2.4.26.tar.bz2.sha1

[sola@mars:~]
$ cat httpd-2.4.26.tar.bz2.sha1
b10b0f569a0e5adfef61d8c7f0813d42046e399a *httpd-2.4.26.tar.bz2

・sha1sumのチェック

$ sha1sum --check httpd-2.4.26.tar.bz2.sha1
httpd-2.4.26.tar.bz2: OK

・または

$ openssl sha1 httpd-2.4.26.tar.bz2
SHA1(httpd-2.4.26.tar.bz2)= b10b0f569a0e5adfef61d8c7f0813d42046e399a

○sha256sumのチェック

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

openssl-1.0.2l.tar.gz
openssl-1.0.2l.tar.gz.sha256

[sola@mars:~]
$ cat openssl-1.0.2l.tar.gz.sha256
ce07195b659e75f4e1db43552860070061f156a98bb37b672b101ba6e3ddf30c
$ sha256sum openssl-1.0.2l.tar.gz
ce07195b659e75f4e1db43552860070061f156a98bb37b672b101ba6e3ddf30c  openssl-1.0.2l.tar.gz

・または

$ openssl sha256 openssl-1.0.2l.tar.gz
SHA256(openssl-1.0.2l.tar.gz)= ce07195b659e75f4e1db43552860070061f156a98bb37b672b101ba6e3ddf30c

○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-P1.tar.gz.asc

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

bind-9.11.1-P1.tar.gz

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

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

・gpgチェック

$ gpg --verify bind-9.11.1-P1.tar.gz.asc bind-9.11.1-P1.tar.gz
gpg: Signature made Tue Jun  6 03:31:44 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.