Linux OS のセキュリティ-1
こんにちは、ニックネーム たいちょう です。
セキュリティ編をはじめたいと思います。
特に体系的にするのではなく、思いついたまま書いていきます。
今日は、PGP、GnuPG についてです。
Linux Mint のサイトが乗っ取られ、改竄された iso が置かれていたという話が飛び込んできました。
なんと犯人は、checksum も改竄していたそうです。
ある1日だけに限られたそうですので、大きな被害はなかったかもですが、知らずに使い続けている人がいるかもしれませんね。
この場合、検証手段は署名の確認しかなさそうです。
そういえば、先日、CentOS-7-x86_64-Minimal-1511.iso をダウンロードしていたんですが、署名の確認をしてなかったな。大丈夫だろうか。
どうやって確認すればいいのかな?
次の手順でやってみました。
自分の公開鍵を以下のコマンドで作成しておきます。
$ gpg --gen-key
公開鍵を確認します。
$ gpg --list-keys
---------------------------------
pub 4096R/XXXXXXXX 2016-02-28
uid Foo Bar <foo.bar@example.com>
以下のサイトを表示させます。
http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-CentOS-7
これは CentOS7 の公開鍵です。出て来た文字をコピーして、以下のファイルにします。
ファイル名は任意です。
$ vim CentOS-7-key.txt
貼り付けて、保存します。
確認します。
$ cat CentOS-7-key.txt
gpg コマンドで公開鍵をインポートします。
$ gpg --import CentOS-7-key.txt
gpg: 処理数の合計: 1
gpg: インポート: 1 (RSA: 1)
公開鍵を確認します。
$ gpg --list-keys
---------------------------------
pub 4096R/XXXXXXXX 2016-02-28
uid Foo Bar <foo.bar@example.com>
pub 4096R/F4A80EB5 2014-06-23
uid CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>
CentOS 7 の公開鍵がインポートされました。
以下のリンクをクリックします。
http://ftp.riken.jp/Linux/centos/7.2.1511/isos/x86_64/
sha256sum.txt.asc ファイルをダウンロードします。
以下のコマンドを実行します。
$ gpg sha256sum.txt.asc
gpg: "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"からの正しい署名
gpg: *警告*: この鍵は信用できる署名で証明されていません!
gpg: この署名が所有者のものかどうかの検証手段がありません。
主鍵フィンガー・プリント: 6341 AB27 53D7 8A78 A7C2 7BB1 24C6 A8A7 F4A8 0EB5
あれ?検証手段がない、と言われてしまいました。
なんでだろう。
どうやらこれは、自分の秘密鍵でCentOSの公開鍵に署名していないかららしいです。
では、署名します。
$ gpg --sign-key 0xF4A80EB5
自分の秘密鍵のパスフレーズを求められるので、入力します。
では、もう一度実施します。
$ gpg sha256sum.txt.asc
gpg: 信用データベースの検査
gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル
gpg: 深さ: 0 有効性: 1 署名: 1 信用: 0-, 0q, 0n, 0m, 0f, 1u
gpg: 深さ: 1 有効性: 1 署名: 0 信用: 1-, 0q, 0n, 0m, 0f, 0u
gpg: "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"からの正しい署名
sha256sum.txt ができています。
ということは、この sha256sum.txt は信用してもよさそうです。
中身を確認します。
$ cat sha256sum.txt
148449e661535f52aa846aa4a0112798f9153df8526b83e76075560a1de3accf CentOS-7-x86_64-Everything-1511.iso
10dccb7c028d7afafbe1ade59dacf809edb3af2f24b1b69bafce9e6ec3c6ee17 CentOS-7-x86_64-LiveGNOME-1511.iso
ba9fed39d7e5398f4cd6b96497ba28da9979be12a4e0424d3030277d716c9e3f CentOS-7-x86_64-LiveKDE-1511.iso
f90e4d28fa377669b2db16cbcb451fcb9a89d2460e3645993e30e137ac37d284 CentOS-7-x86_64-Minimal-1511.iso
9ed9ffb5d89ab8cca834afce354daa70a21dcb410f58287d6316259ff89758f5 CentOS-7-x86_64-NetInstall-1511.iso
では、先日ダウンロードした iso ファイルの checksum を確認してみます。
ドキドキ。
$ sha256sum CentOS-7-x86_64-Minimal-1511.iso
おー、どうやら大丈夫だったみたいです。
今度からは、ちゃんと .asc ファイルをダウンロードして、gpg コマンドで署名を確認することにします。
お疲れさまです。第1日目の終了です。ニックネーム たいちょう でした。
次回もお楽しみに。