GnuPGを使用したファイル署名の検証
作成 : 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 Signingのour 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>" <--- 不正な署名!