GnuPGを使用したファイル署名の検証

[サーバの実験室 Windows]

作成 : 2004/06/02

"サーバの実験室"の検索


GnuPGの導入方法

GnuPGを参照。

GnuPGを使用したパッケージ署名の検証

たとえば、Fedora Coreのダウンロードサイトには、ISOイメージファイルとISOイメージファイルのハッシュ値を格納したMD5SUMファイルが置かれている。 md5sumユーティリティを使用して、ISOイメージファイルとMD5SUMファイルに格納されたハッシュ値を比較し、ISOイメージファイルが改変されていないか検証することができる。

しかし、MD5SUMファイルが改変されていては意味がないので、GnuPGで署名の検証を行う。

MD5SUMファイル
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

c366d585853768283dac6cdcefcd3a2d  FC2-i386-disc1.iso    <--- ファイル名とハッシュ値
fc3c926442cc85a469268651bd04c186  FC2-i386-disc2.iso
5ad870e696953f4bbd0a91936873890e  FC2-i386-disc3.iso
c736f8048b12315b5c0b070de1d74867  FC2-i386-disc4.iso
2d8a20014af287bf8c6b29f2da031f98  FC2-i386-DVD.iso
22f4bfca5baefe89f0e04166e738639f  FC2-i386-rescuecd.iso
0c0268f26ed08d24880119e1b44d45e8  FC2-i386-SRPMS-disc1.iso
3d17a40489e8dcd3761f166ff264c712  FC2-i386-SRPMS-disc2.iso
4e798934b399eb78e9e67dec23d946bb  FC2-i386-SRPMS-disc3.iso
5d84eb0aecea8bce8e4857d3e46136c3  FC2-i386-SRPMS-disc4.iso
-----BEGIN PGP SIGNATURE-----    <--- ここから下がGnuPGの署名
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQFAo8uQtEJp0E8qb9IRAjgnAJ92Rl2f6K/1Z1DCHB6qinau88WYXgCggF4P
1xFVxG7HVYVGJenIv1oSdrQ=
=yWK+
-----END PGP SIGNATURE-----

公開鍵の取得

ここでいう公開鍵は、Fedoraの公開鍵。 WEBサイトとかFTPサイトにあるので、探す。 たとえばWEBサイトであれば、http://fedora.redhat.com/about/security/Package Signingour websiteのリンクからFedoraの公開鍵を取得することができる。

pub  1024D/4F2A6FD2 2003-10-27 Fedora Project <fedora@redhat.com>
sub  1024g/FB939E34 2003-10-27

-----BEGIN PGP PUBLIC KEY BLOCK-----    <--- ここからコピー
Version: GnuPG v1.0.7 (GNU/Linux)

mQGiBD+dnTsRBACwnlz4AhctOLlVBAsq+RaU82nb5P3bD1YJJpsAce1Ckd2sBUOJ
D11NUCqH8c7EctOquOZ5zTcWxHiWWbLyKQwUw2SUvnWa5SSbi8kI8q9MTPsPvhwt
gMrQMLenMO+nsrxrSaG6XcD+ssfJNxC7NQVCQAj3pvvg9rKi3ygsM7CXHwCghgsq
X6TOr55HE90DbEsoq3b/jjsD/i8aIZ6urUgrpAkQslcakXdJLKgSdwjRUgVZgvYZ
b7kAx1iPq0t/AhB3NJw3zW4AAKJohGg3xj5K4V8PJEZrSIpoRYlF43Kqlfu2p5gh
WT89SP4YAlWPeTqf0+dTYUYz3b144k2ZFOdRuXIRxunoYNAUr9oMrxBXbJ/eY+0U
QX3pBACYzKizyY4JJgd0zFJmNkcdK9nzcm+btYFnYQo33w5GSE686UNr+9yiXt9t
mPRvNEbj3u+xoAX8B/5k3aZ5NbUhV64/VcKlUdRIxNlFCG7I9KgxeHWAYwi7yqOG
XM3T/v6o7GLdQEB0ChFqS7kUlqmwLV+C3QhlrFe/Cuk26i+Q6rQiRmVkb3JhIFBy
b2plY3QgPGZlZG9yYUByZWRoYXQuY29tPohbBBMRAgAbBQI/nZ07BgsJCAcDAgMV
AgMDFgIBAh4BAheAAAoJELRCadBPKm/S2PAAnRTlhorITphab+oxAHtbxZF9BVyD
AJ9WOVaZUG53IWWIAXOGv3j/cmr3lohGBBMRAgAGBQI/nZ22AAoJECGRgM3bQqYO
R5QAoIp1G+omVktq/snxpmz5UeHjlSYjAKCRr/ea/L7S7ZTxB18cf1TYfad1x4hG
BBARAgAGBQI/ntjgAAoJECnVuiSN9W0FUSUAoJnrone4J0o1HMkRz+6g9KVuO2Fy
AJ0XyebOzVmI9U5OyOfnNmYV0wnQcrkBDQQ/nZ08EAQAugOfLWJbKwMA9vg2mJU5
94TZU0HRJkx/fqYhx0YxWWRpzplrEyvcDXuYcWi1Hwh0tD86T4fR5GV6joWiWClz
D+Hwhhb6gcSdeSGlGLlZAvWYtFSHWiv+3LaI9w8Vtczl99Bh2WiMDNDDGw0RQg6Z
aftldLSe4j1pffpFGQ8SuisAAwUEAKVxqLT7fC5xQ6oclcZ+PhoDlePQ1BiTS7tu
GM07bFF4nNvY91LL7S31pooz3XbGSWP8jxzSv1Fw35YhSmWGOBOEXluqMbVQGJJ5
m8fqJOjC0imbfeWgr/T7zLrJeiljDxvX+6TyawyWQngF6v1Hq6FRV0O0bOp9Npt5
zqCbDGs/iEYEGBECAAYFAj+dnTwACgkQtEJp0E8qb9L//gCcDVYnDegNCOxDn1se
dDwxw+0h8OcAn1CZHof15QqxnTwEnvwF2QeOI5dn
=mJAx
-----END PGP PUBLIC KEY BLOCK-----    <--- ここまでコピー

-----BEGIN PGP PUBLIC KEY BLOCK-----から-----END PGP PUBLIC KEY BLOCK-----までをコピーして、適当な名前のファイルに保存する。 拡張子は.ascとすること。 たとえば、pubkey.ascとか。

公開鍵のインポート

公開鍵をインポートする。

C:\> gpg --import pubkey.asc
gpg: key 4F2A6FD2: public key "Fedora Project <fedora@redhat.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1

署名の検証

MD5SUMファイルの署名を検証する。

C:\> gpg MD5SUM
gpg: MD5SUM: unknown suffix
Enter new filename: (Enter)
gpg: Signature made 05/14/04 04:25:04  using DSA key ID 4F2A6FD2
gpg: Good signature from "Fedora Project <fedora@redhat.com>"    <--- 正しい署名!
gpg: checking the trustdb
gpg: no ultimately trusted keys found
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: CAB4 4B99 6F27 744E 8612  7CDF B442 69D0 4F2A 6FD2

MD5SUMファイルに書かれているハッシュ値を改変すると、次のようになる。

C:\> gpg MD5SUM
gpg: MD5SUM: unknown suffix
Enter new filename: (Enter)
gpg: Signature made 05/14/04 04:25:04  using DSA key ID 4F2A6FD2
gpg: BAD signature from "Fedora Project <fedora@redhat.com>"    <--- 不正な署名!

[サーバの実験室 Windows]