スポンサーリンク

PKG_SIGN(1) FreeBSD 一般コマンドマニュアル PKG_SIGN(1)

名称

pkg_sign, pkg_check − package の署名を扱う

書式

pkg_sign [−sc] [−t type] [−u id] [−k key] [file ...]

pkg_check [−sc] [−u id] [−k cert] [file ...]

解説

pkg_sign ユーティリティは暗号化された署名を gzip ファイル file に埋めこみ ます。 type には pgp (デフォルト), sha1, x509 が指定できます。 typepgp にすると、 pgp 秘密鍵の利用を可能にするためのパスフレーズ入力を促すプ ロンプトが表示されます。パスフレーズを設定していなくても表示されます (こ れはいずれにせよ良くない状況ですが)。 typesha1 の場合は、 id を指定す る必要があります。これは package (訳注: FreeBSD の package system におけ るパッケージを指す場合にこう表記します) の名前として記録され、SHA1 チェッ クサムとして表示されます。

pkg_check ユーティリティは暗号化された署名をチェックします。現在は type を無視し、一番上 (topmost) の署名だけをチェックします。 sha1 に対しては、 pkg_check はファイルのチェックサムを取り、結果が /var/db/pkg/SHA1 に記録 されているチェックサムのリストにマッチするかどうか確認します。

オプション −s および −c は「package への署名」モードおよび「署名チェッ ク」モードを強制します。

pgp では、 package への署名や署名チェックに用いる id−u で指定できま す。

x509 では、署名キーまたは検証する証明書 (certificate) を −k オプションで 指定できます。指定しないと、package は以下で記述しているデフォルトのキー で署名 (デフォルトの証明書で検証) されます。

file がダッシュひとつ (‘’) だったり指定されなかった場合は、 pkg_sign は 標準入力から読み込みます。

package への署名では gzip 形式の特徴を利用しています。これは、gzip のヘッ ダには EXTRA_FIELD というフラグを設定でき、余分のデータを gzip ヘッダと圧 縮ファイルの間に保存できる、というものです。 OpenBSD の署名機構では、 ‘SIGPGP’ + length や ‘CKSHA1’ + length のような 8 バイトのマーカを署名に 用いています (これらのマーカは伝統的に 8 バイト長となっています)。

診断

pkg_sign および pkg_check のユーティリティは、 file のいずれかになにか問 題があると、0 より大きい終了コードを返します。 pkg_check の場合、これは通 常 package が署名されていない、あるいは署名が捏造されていることを意味しま す。

File %s is already signed その gzip ファイルには、既に署名が埋めこまれて います。 pkg_sign ユーティリティは今のところ複数の署名を扱いません。

File %s is not a signed gzip file この package には署名がありません。

File %s is not a gzip file gzip ヘッダが見つかりませんでした。

File %s contains an unknown extension gzip ファイルの拡張領域が、別の何 らかの用途に既に使われていました。

File %s uses old signatures, no longer supported この gzip ファイルは、 非常に古い版の (かなり遅くなる) package 署名を用いています。

バグ

pgp(1) ユーティリティはあまり設計の良くないプログラムで、インタフェースを 取るのが難しいです。例えば pgp が提供しているといっている「分離署名機能 (separate signing scheme)」は不便極まりないもので、パイプを通しての利用が できません。したがって pgp_sign ではこれをなんとかするために、 pgp 署名の 長さを知っていることにして、 pgp を「シームレス」署名モードで起動し、ファ イル本体は圧縮しないで署名のみを取出しています。

チェック動作ではあまり複雑なことはしていません。 pgp に入力するファイルを その場で再ビルドしています。

pgp およびチェックサムファイルへのパスは不正利用を妨げるためにハードコー ドされています。そのため柔軟性は損なわれています。

関連ファイル

       file.sign

pkg_signfile からビルドする一時ファイル
/usr/local/bin/pgp
pgp(1) のデフォルトのパス
/var/db/pkgs/SHA1
記録済みのチェックサム
/etc/ssl/pkg.key
デフォルトの package への署名キー
/etc/ssl/pkg.crt
デフォルトの package 検証用証明書

関連項目

gzip(1), pgp(1), pkg_add(1), sha1(1)

作者

pkg_sign ユーティリティは Marc Espie が OpenBSD プロジェクトのために作成 しました。 X.509 署名と FreeBSD サポートは Wes Peters ⟨wes@softweyr.com⟩ が追加しました。

FreeBSD 10.0 September 24, 1999 FreeBSD 10.0

スポンサーリンク