現在位置: ホーム / みらくるブログ / Linux OS のセキュリティ-1

Linux OS のセキュリティ-1

こんにちは、ニックネーム たいちょう です。 セキュリティ編をはじめたいと思います。 特に体系的にするのではなく、思いついたまま書いていきます。 今日は、GnuPG についてです。

こんにちは、ニックネーム たいちょう です。

セキュリティ編をはじめたいと思います。
特に体系的にするのではなく、思いついたまま書いていきます。
今日は、PGP、GnuPG についてです。

Linux Mint のサイトが乗っ取られ、改竄された iso が置かれていたという話が飛び込んできました。
なんと犯人は、checksum も改竄していたそうです。
ある1日だけに限られたそうですので、大きな被害はなかったかもですが、知らずに使い続けている人がいるかもしれませんね。

この場合、検証手段は署名の確認しかなさそうです。

そういえば、先日、CentOS-7-x86_64-Minimal-1511.iso をダウンロードしていたんですが、署名の確認をしてなかったな。大丈夫だろうか。
どうやって確認すればいいのかな?

次の手順でやってみました。

自分の公開鍵を以下のコマンドで作成しておきます。

$ gpg --gen-key

公開鍵を確認します。

$ gpg --list-keys
/home/taichou/.gnupg/pubring.gpg
---------------------------------
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: 鍵F4A80EB5: 公開鍵"CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"をインポートしました
gpg:           処理数の合計: 1
gpg:             インポート: 1  (RSA: 1)

公開鍵を確認します。

$ gpg --list-keys
/home/taichou/.gnupg/pubring.gpg
---------------------------------
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: 2015年12月11日 00時41分44秒 JSTにRSA鍵ID F4A80EB5で施された署名
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: 2015年12月11日 00時41分44秒 JSTにRSA鍵ID F4A80EB5で施された署名
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
907e5755f824c5848b9c8efbb484f3cd945e93faa024bad6ba875226f9683b16  CentOS-7-x86_64-DVD-1511.iso
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 
f90e4d28fa377669b2db16cbcb451fcb9a89d2460e3645993e30e137ac37d284  CentOS-7-x86_64-Minimal-1511.iso

おー、どうやら大丈夫だったみたいです。
今度からは、ちゃんと .asc ファイルをダウンロードして、gpg コマンドで署名を確認することにします。

(謝辞)和歌山大学 システム工学部 情報通信システム学科 村川先生(研究室)の以下のページを参考にしました。
大変わかりやすい内容になっていますので、皆さんも参考にしてみてください。

 

お疲れさまです。第1日目の終了です。ニックネーム たいちょう でした。

次回もお楽しみに。

 

タグ: