「こうしす!」2021クラファン企画の支援証明書を検証する

概要

以前参加したクラファン企画から返礼品と署名付きの支援証明書を送付して頂きました。
本記事ではこの署名の検証方法について簡単に解説します。

クラファン名:情報セキュリティをアニメ&マンガで発信 「こうしす!」「伏石ちゃん」制作&宣伝プロジェクト2021 soreosu.animatetimes.com

「こうしす!」とは?

架空の鉄道会社を舞台にIT・セキュリティをテーマにした創作活動をしているプロジェクトおよび作品群。
アニメはYoutube・ニコ動で公開されており、なんと無料で見ることができます!

こうしす! #3.1「セキュリティに完璧を求めるのは間違っているだろうか」(Part1/4) - YouTube

――長く使われた物には魂が宿ると言いますが、このシステムに宿っていたのはゴミでした。 ここは姫路と京都を結ぶ中堅私鉄、京姫鉄道株式会社。 その広報部システム課に配属された新入社員、祝園アカネ(ほうその あかね)は、オフィスワークに喜んだのもつかの間……。今日も今日とてセキュリティトラブルにてんてこ舞い。大丈夫!? 私の会社のセキュリティ。

社内システムエンジニアの悲哀を描く技術系コメディが、ここに始まる!

(公式HP>作品概要より引用, 作品概要 | アニメ「こうしす!」公式サイト, 2022/01/01閲覧)

検証手順

以下手順はUbuntu 20.04.3 LTS (WSL2 on Win11 Pro)で実行しています。

1. 支援証明書をダウンロードする。

 今回は以下様式の証明書が発行されています。

f:id:nasudeng:20220101223727p:plain
支援証明書

2. 証明書中のbase64文字列をdecodeする。

 base64文字列をkosys-opap_sign_b64.txtとして保存しました。

base64 -d ./kosys-opap_sign_b64.txt > ./kosys-opap_sign.asc

 デコードすると以下の署名付き文字列が得られます。

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
pub   rsa4096 2019-10-02 [SC]
{"Id":hoge,"CampaignId":4,"CampaignItemId":"B","CampaignEndDate":"2021-10-31T23:59:00","SupporterName":"hoge","SupporterEmail":"fuga","CertificationDate":"fuga","FormatVersion":1}
-----BEGIN PGP SIGNATURE-----
Version: BCPG C# v50E43:/mywork$

[ASCII文字列]

-----END PGP SIGNATURE-----

3. 証明書署名用の公開鍵をダウンロードする。

 以下サイトにアクセスし、目的別鍵>証明書発行用から公開鍵をダウンロードします。

PGP 公開鍵 | 京姫鉄道合同会社

4. ダウンロードした公開鍵をインポートする

 事前に手順3でダウンロードしたcertification-staff.ascは作業フォルダに移動させています。

user@LAPTOP-FUGA:/mywork$ gpg --import ./certification-staff.asc
gpg: key 19C754DDB1092081: public key "Kyoki Railway LLC (Certification Staff) <certification-staff@kyoki-railway.co.jp>" imported
gpg: Total number processed: 1
gpg:               imported: 1 

 以下で鍵がインポートできたことを確認します。

user@LAPTOP-FUGA:/mywork$ gpg --list-keys
/home/hoge/.gnupg/pubring.kbx
--------------------------------
pub   rsa4096 2019-12-30 [SC]
      8B492E477B3D6D97C9D740F819C754DDB1092081
uid           [ unknown] Kyoki Railway LLC (Certification Staff) <certification-staff@kyoki-railway.co.jp>
sub   rsa4096 2019-12-30 [E]
sub   rsa4096 2019-12-30 [S]

5. 署名を検証する。

 手順2で得た署名付き文字列のファイルを対象としてgpg --verifyコマンドを実行し署名の検証をします。

user@LAPTOP-FUGA:/mywork$ gpg --verify ./kosys-opap_sign.asc
gpg: Signature made Fri Dec 31 01:41:52 2021 JST
gpg:                using RSA key 4A4D62509787AF92
gpg: Good signature from "Kyoki Railway LLC (Certification Staff) <certification-staff@kyoki-railway.co.jp>" [unknown]
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: 8B49 2E47 7B3D 6D97 C9D7  40F8 19C7 54DD B109 2081
     Subkey fingerprint: 3170 5749 4704 9D72 BD02  7584 4A4D 6250 9787 AF92

上記出力から「Kyoki Railway LLC (Certification Staff)」によって署名されていることを確認できました。

おわりに

検証する際に詰まったので備忘録的に残しておきます。
上記手順で出来ない・不適切な記述があればtwitter(@yoiti_3)までお願いします。

↓返礼品のアニメ台本の画