■gnupgの署名の検証
「.dsc」で行っているが、「.asc」でも手順は同じ。
パッケージも行えるが、ソースの方が「.dsc」ファイルがついてくるので簡単。
$ sudo apt-get source --download-only gnupg
$ ls gnupg_1.4.10*
$ ls gnupg_1.4.12*
gnupg_1.4.12-7.debian.tar.gz gnupg_1.4.12-7.dsc gnupg_1.4.12.orig.tar.gz
$ gpg -d gnupg_1.4.12-7.dsc
Format: 3.0 (quilt)
Source: gnupg
Binary: gnupg, gnupg-curl, gpgv, gnupg-udeb, gpgv-udeb, gpgv-win32
Architecture: any all
Version: 1.4.12-7
Maintainer: Debian GnuPG-Maintainers <pkg-gnupg-maint@lists.alioth.debian.org>
Uploaders: Sune Vuorela <debian@pusling.com>, Daniel Leidert <dleidert@debian.org>, Thijs Kinkhorst <thijs@debian.org>
Homepage: http://www.gnupg.org
Standards-Version: 3.9.3
Vcs-Browser: http://svn.debian.org/wsvn/pkg-gnupg/gnupg/
Vcs-Svn: svn://svn.debian.org/svn/pkg-gnupg/gnupg/trunk/
Build-Depends: debhelper (>> 7), libz-dev, libldap2-dev, libbz2-dev, libusb-dev [!hurd-i386], libreadline-dev, file, gettext, libcurl4-gnutls-dev
Build-Depends-Indep: mingw-w64
Package-List:
gnupg deb utils important
gnupg-curl deb utils optional
gnupg-udeb udeb debian-installer extra
gpgv deb utils important
gpgv-udeb udeb debian-installer extra
gpgv-win32 deb utils extra
Checksums-Sha1:
790587e440ec7d429b120db7a96a237badc638fd 4939171 gnupg_1.4.12.orig.tar.gz
ff054dc49db8081005e25c06261945f4d1ec5c3e 92800 gnupg_1.4.12-7.debian.tar.gz
Checksums-Sha256:
bb94222fa263e55a5096fdc1c6cd60e9992602ce5067bc453a4ada77bb31e367 4939171 gnupg_1.4.12.orig.tar.gz
95c339745e3fde8ad21aad39c1b83ce318fea348cab2d6f3437ef1ac7df549ab 92800 gnupg_1.4.12-7.debian.tar.gz
Files:
f9a65ccd7166d3fdb084454cf7427564 4939171 gnupg_1.4.12.orig.tar.gz
8d52378d6cebc32ec40c9726f120cf74 92800 gnupg_1.4.12-7.debian.tar.gz
gpg: 2013年01月03日 04時33分00秒 JSTにRSA鍵ID 401DAC04で施された署名
gpg: 署名を検査できません: 公開鍵が見つかりません
■公開鍵を取得
$ gpg --keyserver pgp.mit.edu --recv-keys 401DAC04
gpg: 鍵401DAC04をhkpからサーバーpgp.mit.eduに要求
gpg: 鍵E1C21845: 公開鍵“Thijs Kinkhorst <thijs@kinkhorst.com>”を読み込みました
gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル
gpg: 深さ: 0 有効性: 1 署名: 1 信用: 0-, 0q, 0n, 0m, 0f, 1u
gpg: 深さ: 1 有効性: 1 署名: 0 信用: 0-, 0q, 0n, 1m, 0f, 0u
gpg: 処理数の合計: 1
gpg: 読込み: 1 (RSA: 1)
■署名の確認
1050個もの公開鍵が不足している。
$ gpg --check-sigs 401DAC04
pub 4096R/E1C21845 2007-01-25
uid Thijs Kinkhorst <thijs@kinkhorst.com>
sig!3 E1C21845 2007-01-25 Thijs Kinkhorst <thijs@kinkhorst.com>
sig!3 E1C21845 2007-01-25 Thijs Kinkhorst <thijs@kinkhorst.com>
uid Thijs Kinkhorst <thijs@uvt.nl>
sig!3 E1C21845 2009-07-18 Thijs Kinkhorst <thijs@kinkhorst.com>
uid Thijs Kinkhorst <thijs@debian.org>
sig!3 E1C21845 2007-01-25 Thijs Kinkhorst <thijs@kinkhorst.com>
uid Thijs Kinkhorst <kink@squirrelmail.org>
sig!3 E1C21845 2007-01-25 Thijs Kinkhorst <thijs@kinkhorst.com>
sub 2048R/401DAC04 2012-06-16 [満了: 2014-06-16]
sig! E1C21845 2012-06-16 Thijs Kinkhorst <thijs@kinkhorst.com>
sub 2048R/1001EBD3 2012-06-16 [満了: 2014-06-16]
sig! E1C21845 2012-06-16 Thijs Kinkhorst <thijs@kinkhorst.com>
鍵がないため1050個の署名を検査しません
■Debian開発者の公開鍵を導入、インポートする
※aptで検証するわけではない点に注意。(APTでの検証はapt-key)
バイナリ形式で、982も処理するので結構時間がかかる。
$ apt-cache search ^debian-keyring
debian-keyring - Debian 開発者の GnuPG 鍵集
$ sudo apt-get install -y debian-keyring
$ dpkg -L debian-keyring | grep "gpg"
/usr/share/keyrings/debian-nonupload.gpg
/usr/share/keyrings/debian-role-keys.gpg
/usr/share/keyrings/debian-maintainers.gpg
/usr/share/keyrings/debian-keyring.gpg
$ gpg --import /usr/share/keyrings/debian-keyring.gpg
...
gpg: 処理数の合計: 982
gpg: 読込み: 980 (RSA: 320)
gpg: 変更なし: 2
■FTP GPG公開鍵をインポートする。
$ gpg --import /usr/share/keyrings/debian-role-keys.gpg
...
gpg: 処理数の合計: 9
gpg: 読込み: 9 (RSA: 3)
gpg: WARNING: digest algorithm MD5 is deprecated
gpg: please see http://www.gnupg.org/faq/weak-digest-algos.html for more information
gpg: 絶対的に信用する鍵が見つかりません
■上記を自動的に設定する方法もある。
$ grep "^#[a-z].*uto-key" ~/.gnupg/gpg.conf
■署名の検証
$ gpg --verify gnupg_1.4.12-7.dsc
gpg: 2013年01月03日 04時33分00秒 JSTにRSA鍵ID 401DAC04で施された署名
gpg: “Thijs Kinkhorst <thijs@kinkhorst.com>”からの正しい署名
gpg: 別名“Thijs Kinkhorst <thijs@uvt.nl>”
gpg: 別名“Thijs Kinkhorst <thijs@debian.org>”
gpg: 別名“Thijs Kinkhorst <kink@squirrelmail.org>”
gpg: 警告: この鍵は信用できる署名で証明されていません!
gpg: この署名が所有者のものかどうかの検証手段がありません。
主鍵の指紋: E0D3 FAAA 6F50 A5DA 9D5B 2938 3396 1588 E1C2 1845
副鍵の指紋: 7803 55B5 EA6B FC82 35A9 9C4B 56F6 1A79 401D AC04
■この公開鍵を信頼すると表示されなくなる。
$ gpg --fingerprint | grep -B 1 "E0D3 FAAA 6F50 A5DA 9D5B 2938 3396 1588 E1C2 1845"
pub 4096R/E1C21845 2007-01-25
指紋 = E0D3 FAAA 6F50 A5DA 9D5B 2938 3396 1588 E1C2 1845
$ gpg --list-key E1C21845
pub 4096R/E1C21845 2007-01-25
uid Thijs Kinkhorst <thijs@kinkhorst.com>
uid Thijs Kinkhorst <thijs@uvt.nl>
uid Thijs Kinkhorst <thijs@debian.org>
uid Thijs Kinkhorst <kink@squirrelmail.org>
sub 2048R/401DAC04 2012-06-16 [満了: 2014-06-16]
sub 2048R/1001EBD3 2012-06-16 [満了: 2014-06-16]
$ gpg --fingerprint E1C21845
pub 4096R/E1C21845 2007-01-25
指紋 = E0D3 FAAA 6F50 A5DA 9D5B 2938 3396 1588 E1C2 1845
uid Thijs Kinkhorst <thijs@kinkhorst.com>
uid Thijs Kinkhorst <thijs@uvt.nl>
uid Thijs Kinkhorst <thijs@debian.org>
uid Thijs Kinkhorst <kink@squirrelmail.org>
sub 2048R/401DAC04 2012-06-16 [満了: 2014-06-16]
sub 2048R/1001EBD3 2012-06-16 [満了: 2014-06-16]
$ gpg --list-sig E1C21845 | grep "201[3-9]-\|20[2-9][0-9]\-"
sig 44E7B6FD 2013-01-19 [ユーザーIDが見つかりません]
sig D745722B 2013-02-21 [ユーザーIDが見つかりません]
sig 2 24FA3FE2 2013-04-24 [ユーザーIDが見つかりません]
sig 44E7B6FD 2013-01-19 [ユーザーIDが見つかりません]
sig D745722B 2013-02-21 [ユーザーIDが見つかりません]
sig 2 24FA3FE2 2013-04-24 [ユーザーIDが見つかりません]
sig 44E7B6FD 2013-01-19 [ユーザーIDが見つかりません]
sig D745722B 2013-02-21 [ユーザーIDが見つかりません]
sig 2 24FA3FE2 2013-04-24 [ユーザーIDが見つかりません]
sig 44E7B6FD 2013-01-19 [ユーザーIDが見つかりません]
sig D745722B 2013-02-21 [ユーザーIDが見つかりません]
sig 2 24FA3FE2 2013-04-24 [ユーザーIDが見つかりません]
sub 2048R/401DAC04 2012-06-16 [満了: 2014-06-16]
sub 2048R/1001EBD3 2012-06-16 [満了: 2014-06-16]
■自分の鍵でローカル署名
4つの公開鍵に署名。
$ gpg --lsign-key 401DAC04
pub 4096R/E1C21845 作成: 2007-01-25 満了: 無期限 利用法: SC
信用: 未知の 有効性: 未知の
sub 2048R/DCBA43DF 作成: 2007-01-25 満了: 2009-01-25 利用法: S
sub 2048R/7AB399FF 作成: 2007-01-25 満了: 2009-01-25 利用法: E
This key was revoked on 2008-06-16 by RSA key E1C21845 Thijs Kinkhorst <thijs@kinkhorst.com>
sub 2048R/EC5DCE28 作成: 2008-06-08 失効: 2008-06-16 利用法: S
This key was revoked on 2008-06-16 by RSA key E1C21845 Thijs Kinkhorst <thijs@kinkhorst.com>
sub 2048R/88CC9563 作成: 2008-06-08 失効: 2008-06-16 利用法: E
sub 2048R/8C55A01C 作成: 2008-06-15 満了: 2010-06-15 利用法: S
sub 2048R/435434E1 作成: 2008-06-15 満了: 2010-06-15 利用法: E
sub 2048R/B6897E7B 作成: 2010-06-15 満了: 2012-06-14 利用法: S
sub 2048R/3861CF70 作成: 2010-06-15 満了: 2012-06-14 利用法: E
sub 2048R/401DAC04 作成: 2012-06-16 満了: 2014-06-16 利用法: S
sub 2048R/1001EBD3 作成: 2012-06-16 満了: 2014-06-16 利用法: E
[ unknown] (1). Thijs Kinkhorst <thijs@kinkhorst.com>
[ unknown] (2) Thijs Kinkhorst <thijs@uvt.nl>
[ unknown] (3) Thijs Kinkhorst <thijs@debian.org>
[ unknown] (4) Thijs Kinkhorst <kink@squirrelmail.org>
本当に全ユーザーIDに署名しますか? (y/N)y
pub 4096R/E1C21845 作成: 2007-01-25 満了: 無期限 利用法: SC
信用: 未知の 有効性: 未知の
主鍵の指紋: E0D3 FAAA 6F50 A5DA 9D5B 2938 3396 1588 E1C2 1845
Thijs Kinkhorst <thijs@kinkhorst.com>
Thijs Kinkhorst <thijs@uvt.nl>
Thijs Kinkhorst <thijs@debian.org>
Thijs Kinkhorst <kink@squirrelmail.org>
本当にこの鍵にあなたの鍵“labunix <labunix@lpic303.test.local>”で署名してよいですか
(D289663B)
署名は、書出し不可に設定されます。
本当に署名しますか? (y/N) y
次のユーザーの秘密鍵のロックを解除するには
パスフレーズがいります:“labunix <labunix@lpic303.test.local>”
2048ビットRSA鍵, ID D289663B作成日付は2013-05-27
パスフレーズを入力:
$ gpg --verify gnupg_1.4.12-7.dsc
gpg: 2013年01月03日 04時33分00秒 JSTにRSA鍵ID 401DAC04で施された署名
gpg: 信用データベースの検査
gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル
gpg: 深さ: 0 有効性: 1 署名: 2 信用: 0-, 0q, 0n, 0m, 0f, 1u
gpg: 深さ: 1 有効性: 2 署名: 32 信用: 1-, 0q, 0n, 1m, 0f, 0u
gpg: 次回の信用データベース検査は、2019-03-22です
gpg: “Thijs Kinkhorst <thijs@kinkhorst.com>”からの正しい署名
gpg: 別名“Thijs Kinkhorst <thijs@uvt.nl>”
gpg: 別名“Thijs Kinkhorst <thijs@debian.org>”
gpg: 別名“Thijs Kinkhorst <kink@squirrelmail.org>”
■ローカル署名のLフラグが4つ確認できる。
$ gpg --list-sig E1C21845 | grep "201[3-9]-\|20[2-9][0-9]\-"
sig 44E7B6FD 2013-01-19 [ユーザーIDが見つかりません]
sig D745722B 2013-02-21 [ユーザーIDが見つかりません]
sig 2 24FA3FE2 2013-04-24 [ユーザーIDが見つかりません]
sig L D289663B 2013-05-27 labunix <labunix@lpic303.test.local>
sig 44E7B6FD 2013-01-19 [ユーザーIDが見つかりません]
sig D745722B 2013-02-21 [ユーザーIDが見つかりません]
sig 2 24FA3FE2 2013-04-24 [ユーザーIDが見つかりません]
sig L D289663B 2013-05-27 labunix <labunix@lpic303.test.local>
sig 44E7B6FD 2013-01-19 [ユーザーIDが見つかりません]
sig D745722B 2013-02-21 [ユーザーIDが見つかりません]
sig 2 24FA3FE2 2013-04-24 [ユーザーIDが見つかりません]
sig L D289663B 2013-05-27 labunix <labunix@lpic303.test.local>
sig 44E7B6FD 2013-01-19 [ユーザーIDが見つかりません]
sig D745722B 2013-02-21 [ユーザーIDが見つかりません]
sig 2 24FA3FE2 2013-04-24 [ユーザーIDが見つかりません]
sig L D289663B 2013-05-27 labunix <labunix@lpic303.test.local>
sub 2048R/401DAC04 2012-06-16 [満了: 2014-06-16]
sub 2048R/1001EBD3 2012-06-16 [満了: 2014-06-16]
■ローカル署名の削除と署名の再読み込み
$ gpg --delete-key thijs@uvt.nl
gpg (GnuPG) 1.4.12; Copyright (C) 2012 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
pub 4096R/E1C21845 2007-01-25 Thijs Kinkhorst <thijs@kinkhorst.com>
この鍵を鍵輪から削除しますか? (y/N) y
$ gpg --delete-keys thijs@kinkhorst.com
$ gpg --delete-keys thijs@debian.org
$ gpg --delete-keys kink@squirrelmail.org
$ gpg --import /usr/share/keyrings/debian-keyring.gpg
...
gpg: 処理数の合計: 982
gpg: 読込み: 2 (RSA: 2)
gpg: 変更なし: 980
gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル
gpg: 深さ: 0 有効性: 1 署名: 0 信用: 0-, 0q, 0n, 0m, 0f, 1u
$ gpg --list-sig E1C21845 | grep "201[3-9]-\|20[2-9][0-9]\-"
sig 44E7B6FD 2013-01-19 [ユーザーIDが見つかりません]
sig D745722B 2013-02-21 [ユーザーIDが見つかりません]
sig 44E7B6FD 2013-01-19 [ユーザーIDが見つかりません]
sig D745722B 2013-02-21 [ユーザーIDが見つかりません]
sig 44E7B6FD 2013-01-19 [ユーザーIDが見つかりません]
sig D745722B 2013-02-21 [ユーザーIDが見つかりません]
sig 44E7B6FD 2013-01-19 [ユーザーIDが見つかりません]
sig D745722B 2013-02-21 [ユーザーIDが見つかりません]
sub 2048R/401DAC04 2012-06-16 [満了: 2014-06-16]
sub 2048R/1001EBD3 2012-06-16 [満了: 2014-06-16]
■余談だが、apt-keyによる公開鍵のリスト
$ sudo apt-key list
/etc/apt/trusted.gpg.d//debian-archive-squeeze-automatic.gpg
------------------------------------------------------------
pub 4096R/473041FA 2010-08-27 [満了: 2018-03-05]
uid Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>
/etc/apt/trusted.gpg.d//debian-archive-squeeze-stable.gpg
---------------------------------------------------------
pub 4096R/B98321F9 2010-08-07 [満了: 2017-08-05]
uid Squeeze Stable Release Key <debian-release@lists.debian.org>
/etc/apt/trusted.gpg.d//debian-archive-wheezy-automatic.gpg
-----------------------------------------------------------
pub 4096R/46925553 2012-04-27 [満了: 2020-04-25]
uid Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>
/etc/apt/trusted.gpg.d//debian-archive-wheezy-stable.gpg
--------------------------------------------------------
pub 4096R/65FFB764 2012-05-08 [満了: 2019-05-07]
uid Wheezy Stable Release Key <debian-release@lists.debian.org>
■apt-keyでのフィンガープリント
$ sudo apt-key finger
/etc/apt/trusted.gpg.d//debian-archive-squeeze-automatic.gpg
------------------------------------------------------------
pub 4096R/473041FA 2010-08-27 [満了: 2018-03-05]
指紋 = 9FED 2BCB DCD2 9CDF 7626 78CB AED4 B06F 4730 41FA
uid Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>
/etc/apt/trusted.gpg.d//debian-archive-squeeze-stable.gpg
---------------------------------------------------------
pub 4096R/B98321F9 2010-08-07 [満了: 2017-08-05]
指紋 = 0E4E DE2C 7F3E 1FC0 D033 800E 6448 1591 B983 21F9
uid Squeeze Stable Release Key <debian-release@lists.debian.org>
/etc/apt/trusted.gpg.d//debian-archive-wheezy-automatic.gpg
-----------------------------------------------------------
pub 4096R/46925553 2012-04-27 [満了: 2020-04-25]
指紋 = A1BD 8E9D 78F7 FE5C 3E65 D8AF 8B48 AD62 4692 5553
uid Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>
/etc/apt/trusted.gpg.d//debian-archive-wheezy-stable.gpg
--------------------------------------------------------
pub 4096R/65FFB764 2012-05-08 [満了: 2019-05-07]
指紋 = ED6D 6527 1AAC F0FF 15D1 2303 6FB2 A1C2 65FF B764
uid Wheezy Stable Release Key <debian-release@lists.debian.org>
■keyringパッケージによるアップデート
$ sudo apt-key update
gpg: 鍵B98321F9:“Squeeze Stable Release Key <debian-release@lists.debian.org>”変更なし
gpg: 鍵473041FA:“Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>”変更なし
gpg: 鍵65FFB764:“Wheezy Stable Release Key <debian-release@lists.debian.org>”変更なし
gpg: 鍵46925553:“Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>”変更なし
gpg: 処理数の合計: 4
gpg: 変更なし: 4