見出し画像

TWSNMP FC: ダウンロード数を公式サイトに表示、Dockerイメージに署名した

昨日v1.7.0をリリースしました。AppleやMicrosoftのアプリストアに公開することは今回実現できませんでした。起動ツールを作りインストーラーを改善して公開申請できる形にいはできたように思います。来年の楽しみにとっておきます。
ソフトウェアを作って公開しているとダウンロード数が気になります。自分で使うためのソフトなので気にしなても良さそうですが煩悩には勝てません。DockerやGitHUBからのダウンロード数を取得するプログラムは前に作ったのでこれを改造してTWSNMPの更新サイト

にダウンロード数を表示できるようにしました。

TWSNMP FCのダウンロード数

こうしてみると圧倒的にWindowsで使っている人が多いようです。
Dockerもそこそこの数です。
今朝は、ソフトウェアデザイン12月号(先月)

の最新用語解説に載っていた、ソフトウェアの配布で私が作ったものをダウンロードした人が検証するためのデジタル署名の仕組み

のcosign

を使ってDockerのイメージに署名してみました。インストールは

を参考にしました。
MacOSだと

%brew install cosign
%cosign generate-key-pair
%cosign sign --key cosign.key twsnmp/twsnmpfc:v1.7.0

で署名できました。検証は

% cosign verify --key cosign.pub twsnmp/twsnmpfc:v1.7.0

Verification for index.docker.io/twsnmp/twsnmpfc:v1.7.0 --
The following checks were performed on each of these signatures:
  - The cosign claims were validated
  - The signatures were verified against the specified public key
  - Any certificates were verified against the Fulcio roots.

[{"critical":{"identity":{"docker-reference":"index.docker.io/twsnmp/twsnmpfc"},"image":{"docker-manifest-digest":"sha256:3d7539b4f611dce1c493219ecc60576cedd5503864aa568911691cc3eeb56d37"},"type":"cosign container image signature"},"optional":null}]

のような感じで検証できます。何となく安全になったような気がします。
検証用の公開鍵は、公式サイトで

cosignの公開鍵

で配布していますが、ここにも添付しておきます。

検証するためには、cosignをインストールする必要があるので不便なように思います。
cosignを試した後、同じソフトウェアデザインのDockerの特集の「攻撃に強いイメージの作り方」に書いてあった。docker trustも試してみました。

MacOSでは、


%docker trust key generate twsnmp
%docker trust signer add --key twsnmp.pub twsnmp twsnmp/twsnmpfc
%docker trust sign twsnmp/twsnmpfc:v1.7.0

のような感じでtwsnmp/twsnmpfc:v1.7.0に署名できました。
Dockerイメージ検証したければ、

%export DOCKER_CONTENT_TRUST=1
%docker pull twsnmp/twsnmpfc:v1.7.0

でできます。署名を検証できないものは

docker: No valid trust data for latest.

のエラーがでます。
最初に試したcosignよりdocker trustのほうが簡単です。
今後のリリースは、docker trustで署名しようと思います。
Dockerに比べてWindowsやMac OSのソフトウェア配布はかなり厄介に思えてきました。気持ち的にはDocker版だけの開発に専念したくなってきました。

明日に続く


開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。