はじめに
Apache のソースビルドをしようとしたときに、Apache Portable Runtime(APR)の署名、ハッシュ値の検証をした。
その際に、ドキュメントを見ても公開鍵が見当たらなくて困ったので記事にする。
今回検証したのは、APR 1.7.0
です。
結論
- 鍵 ID
1E1F909911C78735
- フィンガープリント
B1B9 6F45 DFBD CCF9 7401 9235 193F 180A B55D 9977
の公開鍵を鍵サーバーから取得することで署名を検証できた。
やったこと
https://apr.apache.org/download.cgi を見ながら、ソースコードをダウンロード。
$ curl -L -O https://dlcdn.apache.org//apr/apr-1.7.0.tar.gz
分離署名になっているため、署名ファイルもダウンロード。
$ curl -L -O https://www.apache.org/dist/apr/apr-1.7.0.tar.gz.asc
署名検証をしようと公開鍵はどれか探してみたが、見つからず...
とりあえず鍵 ID を確認
$ gpg --verify apr-1.7.0.tar.gz.asc apr-1.7.0.tar.gz
gpg: Signature made 2019年04月02日 02時56分25秒 JST
gpg: using RSA key 1E1F909911C78735
gpg: Can't check signature: No public key
鍵サーバーを検索してみる
$ gpg --keyserver pgpkeys.mit.edu --search-keys 1E1F909911C78735
gpg: data source: http://pgpkeys.mit.edu:11371
(1) William A. Rowe, Jr. <wrowe@apache.org>
William A. Rowe, Jr. <wrowe@pivotal.io>
William A. Rowe, Jr. <wrowe@vmware.com>
William A. Rowe, Jr. <wrowe@rowe-clan.net>
William A. Rowe, Jr. <william.rowe@springsource.com>
4096 bit RSA key 193F180AB55D9977, created: 2008-04-09, expires: 2020-07-08 (expired)
メールアドレス「wrowe@apache.org
」はそれっぽい。
https://httpd.apache.org/dev/verification.html#Validating によると、https://people.apache.org/keys/committer/ に Apache 開発者のフィンガープリントが公開されているらしい。
フィンガープリントを確認してみる。
$ gpg --fingerprint 1E1F909911C78735
pub rsa4096 2008-04-09 [SC] [expired: 2020-07-08]
B1B9 6F45 DFBD CCF9 7401 9235 193F 180A B55D 9977
uid [ expired] William A. Rowe, Jr. <wrowe@rowe-clan.net>
uid [ expired] William A. Rowe, Jr. <wrowe@apache.org>
uid [ expired] William A. Rowe, Jr. <wrowe@pivotal.io
B1B9 6F45 DFBD CCF9 7401 9235 193F 180A B55D 9977
を検索してみると、、
いた!
有効期限が切れているが、この公開鍵は本物の様。
署名検証をしてみると、、
$ gpg --verify apr-1.7.0.tar.gz.asc apr-1.7.0.tar.gz
gpg: Signature made 2019年04月02日 02時56分25秒 JST
gpg: using RSA key 1E1F909911C78735
gpg: Good signature from "William A. Rowe, Jr. <wrowe@rowe-clan.net>" [expired]
gpg: aka "William A. Rowe, Jr. <wrowe@apache.org>" [expired]
gpg: aka "William A. Rowe, Jr. <wrowe@pivotal.io>" [expired]
gpg: Note: This key has expired!
Primary key fingerprint: B1B9 6F45 DFBD CCF9 7401 9235 193F 180A B55D 9977
Subkey fingerprint: 41E0 4A4F 57D8 2401 C81F 4FED 1E1F 9099 11C7 8735
正しく署名を確認できた。
さいごに
公開鍵の有効期限が切れてしまっているが、どこに報告すればいいのかハッキリわかっていない。(メーリングリストでいいのか?)
もし、適切そうな報告先がわかる方がいましたら教えていただけると幸いです。