おはようございます。
前回に引き続き、朝の投稿です。
すでにオヤツの時間です(汗)
【経緯】
Linuxを使い始めてから、わからないところはネットで検索しながら少しずつ知識を蓄積してきたのですが、最近公式リポジトリではパッケージのバージョンが古くてソースからより新しいバージョンのソフトウェアをインストールする機会が増えてきました。
ただ、解説サイトでビルド手順を解説してあっても、ファイルの妥当性チェックについては、他のサイトを参照してくださいとか、そもそもファイルの妥当性チェックについて書かれていないことも多く、確認の方法がよく解っていなかったのでファイルの妥当性チェックについて備忘録的にまとめようと思った次第です。
【手順】
1.ソースファイルのダウンロード
cd ~/Downloads
wget https://xxx.yyy.zzz/aaa.tar.xz
2.公式サイトからpgp sign(署名)ファイル(以下、例としてRELEASE.asc)をダウンロード
※サイトによってファイル名が違ったり、そもそもpgp署名ファイルがない(ユーティリティのようなあまりセキュリティに影響しないようなソフトウェアなどの)場合もある。
もし、pgp署名ファイルがない場合はファイルの妥当性チェックは(あれば)sha256ファイルをsha256sumコマンドなどで改ざんされていないかチェックしてください。
3.ファイルの妥当性チェック
gpg --verify RELEASE.asc aaa.tar.xz
gpg: 2022年10月22日 10時57分41秒 JSTに施された署名
gpg: RSA鍵836C886D513EAEC1454FD7BB0EBB8EA6EF2766E1を使用
gpg: 署名を検査できません: 公開鍵がありません
このように、『公開鍵がありません』と表示された場合、手順4を実施する必要があります。
4.公開鍵のダウンロード
ブラウザで『key server』をキーワードに検索すると幾つかキー(公開鍵)サーバが出てくるのですが、次のURLがその中の1つになります。
画面中央にある入力フィールドに手順3で表示されたRSA鍵(836cから66E1まで。検証をおこなうファイルによってこの文字列は変わる)を貼り付け、検索すると該当の公開鍵が一覧で表示されます。
検索結果には該当のユーザID(氏名)がグループで表示されるので、検索一覧の中の『sig sig』の右側の該当するフィールド(RSA鍵)があるグループの先頭にあるuidのリンクをクリックしてください。これで対象の公開鍵ファイル(以下、例でファイル名をpubkey.ascとします。)がダウンロードできるので、わかりやすいところに保存します。
5.公開鍵のインポート
gpg --import pubkey.asc
公開鍵のインポートができたら、次の操作で公開鍵が確かにインポートできたか確認すると良いでしょう。
gpg --list-keys
6.ファイルの(再)妥当性チェック
gpg --verify RELEASE.asc aaa.tar.xz
gpg: 2022年10月22日 13時06分21秒 JSTに施された署名
gpg: RSA鍵D84C69F8D61E0F4212960C75418B7698A4174470を使用
gpg: "Yoshihiro Nakahara <abc@def.jp>"からの正しい署名 [不明の]
gpg: *警告*: この鍵は信用できる署名で証明されていません!
gpg: この署名が所有者のものかどうかの検証手段がありません。
主鍵フィンガープリント: D84C 69F8 D61E 0F42 1296 0C75 418B 7698 A417 4470
3行目に『正しい署名』と表示されたらファイルが改ざんされておらず、署名が正しいということになります。
あとは展開して、ビルドするだけです。
なんか、4-5行目で警告が出てますが、とりあえずファイルを署名するのが目的ではなく、妥当性チェックをすること(!)なので、いまはスルーします。
また時間が出来たときにきちんと調べます。
とりあえず、ざっくり調べたものをまとめただけなので、おかしいところやもっとこうした方が良いというのがあれば、ぜひコメントへお願いします。
参考にしたサイト
http://bluearth.cocolog-nifty.com/blog/2020/03/post-ac76cf.html
https://qiita.com/y518gaku/items/435838097c700bbe6d1b
https://qiita.com/umi/items/2074aac509a6e78c4ef4
さいごまでご覧いただき、ありがとうございます!
それでは、また次の投稿でお愛しましょう!