3947840b05
Interpretation of a chunk in cut.1 was helped by: Yoshihiko Sarumaru <mistral@imasy.or.jp>, hrs
223 lines
6 KiB
Groff
223 lines
6 KiB
Groff
.\" %FreeBSD: src/usr.sbin/pkg_install/sign/pkg_sign.1,v 1.7 2004/07/02 23:12:53 ru Exp %
|
|
.\" $OpenBSD: pkg_sign.1,v 1.6 2000/04/15 02:15:20 aaron Exp $
|
|
.\"
|
|
.\" Copyright (c) 1999 Marc Espie.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by Marc Espie for the OpenBSD
|
|
.\" Project.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE OPENBSD PROJECT AND CONTRIBUTORS
|
|
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBSD
|
|
.\" PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
.\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.\"WORD: certificate 証明書
|
|
.\"WORD: verification 検証
|
|
.\"
|
|
.Dd September 24, 1999
|
|
.Dt PKG_SIGN 1
|
|
.Os
|
|
.Sh 名称
|
|
.Nm pkg_sign ,
|
|
.Nm pkg_check
|
|
.Nd package の署名を扱う
|
|
.Sh 書式
|
|
.Nm
|
|
.Op Fl sc
|
|
.Op Fl t Ar type
|
|
.Op Fl u Ar id
|
|
.Op Fl k Ar key
|
|
.Op Ar
|
|
.Nm pkg_check
|
|
.Op Fl sc
|
|
.Op Fl u Ar id
|
|
.Op Fl k Ar cert
|
|
.Op Ar
|
|
.Sh 解説
|
|
.Nm
|
|
ユーティリティは暗号化された署名を gzip ファイル
|
|
.Ar file
|
|
に埋めこみます。
|
|
.Ar type
|
|
には
|
|
.Cm pgp
|
|
(デフォルト),
|
|
.Cm sha1 ,
|
|
.Cm x509
|
|
が指定できます。
|
|
.Ar type
|
|
を
|
|
.Cm pgp
|
|
にすると、
|
|
pgp 秘密鍵の利用を可能にするための
|
|
パスフレーズ入力を促すプロンプトが表示されます。
|
|
パスフレーズを設定していなくても表示されます
|
|
(これはいずれにせよ良くない状況ですが)。
|
|
.Ar type
|
|
が
|
|
.Cm sha1
|
|
の場合は、
|
|
.Ar id
|
|
を指定する必要があります。これは package
|
|
(訳注: FreeBSD の package system におけるパッケージを指す場合にこう表記します)
|
|
の名前として記録され、SHA1 チェックサムとして表示されます。
|
|
.Pp
|
|
.Nm pkg_check
|
|
ユーティリティは暗号化された署名をチェックします。
|
|
現在は
|
|
.Ar type
|
|
を無視し、一番上 (topmost) の署名だけをチェックします。
|
|
.\"translator: topmost の意味/訳語は?
|
|
.Cm sha1
|
|
に対しては、
|
|
.Nm pkg_check
|
|
はファイルのチェックサムを取り、
|
|
結果が
|
|
.Pa /var/db/pkg/SHA1
|
|
に記録されているチェックサムのリストにマッチするかどうか確認します。
|
|
.Pp
|
|
オプション
|
|
.Fl s
|
|
および
|
|
.Fl c
|
|
は「package への署名」モードおよび「署名チェック」モードを強制します。
|
|
.\"nakano: pkg_sign -c = pkg_check, pkg_check -s = pkg_sign, ということ?
|
|
.Pp
|
|
.Cm pgp
|
|
では、
|
|
package への署名や署名チェックに用いる
|
|
.Ar id
|
|
を
|
|
.Fl u
|
|
で指定できます。
|
|
.Pp
|
|
.Cm x509
|
|
では、
|
|
署名キーまたは検証する証明書 (certificate) を
|
|
.Fl k
|
|
オプションで指定できます。
|
|
指定しないと、package は以下で記述している
|
|
デフォルトのキーで署名 (デフォルトの証明書で検証) されます。
|
|
.Pp
|
|
.Ar file
|
|
がダッシュひとつ
|
|
.Pq Sq Fl
|
|
だったり指定されなかった場合は、
|
|
.Nm
|
|
は標準入力から読み込みます。
|
|
.Pp
|
|
package への署名では gzip 形式の特徴を利用しています。
|
|
これは、gzip のヘッダには
|
|
.Dv EXTRA_FIELD
|
|
というフラグを設定でき、余分のデータを
|
|
gzip ヘッダと圧縮ファイルの間に保存できる、というものです。
|
|
.Ox
|
|
の署名機構では、
|
|
.Sq Li SIGPGP
|
|
+ length
|
|
や
|
|
.Sq CKSHA1
|
|
+ length
|
|
のような 8 バイトのマーカを署名に用いています
|
|
(これらのマーカは伝統的に 8 バイト長となっています)。
|
|
.Sh 診断
|
|
.Nm
|
|
および
|
|
.Nm pkg_check
|
|
のユーティリティは、
|
|
.Ar file
|
|
のいずれかになにか問題があると、0 より大きい終了コードを返します。
|
|
.Nm pkg_check
|
|
の場合、これは通常 package が署名されていない、
|
|
あるいは署名が捏造されていることを意味します。
|
|
.Bl -diag
|
|
.It "File %s is already signed"
|
|
その gzip ファイルには、既に署名が埋めこまれています。
|
|
.Nm
|
|
ユーティリティは今のところ複数の署名を扱いません。
|
|
.It "File %s is not a signed gzip file"
|
|
この package には署名がありません。
|
|
.It "File %s is not a gzip file"
|
|
gzip ヘッダが見つかりませんでした。
|
|
.It "File %s contains an unknown extension"
|
|
gzip ファイルの拡張領域が、別の何らかの用途に既に使われていました。
|
|
.It "File %s uses old signatures, no longer supported"
|
|
この gzip ファイルは、非常に古い版の
|
|
(かなり遅くなる) package 署名を用いています。
|
|
.El
|
|
.Sh バグ
|
|
.Xr pgp 1
|
|
ユーティリティはあまり設計の良くないプログラムで、
|
|
インタフェースを取るのが難しいです。
|
|
例えば pgp が提供しているといっている
|
|
「分離署名機能 (separate signing scheme)」
|
|
は不便極まりないもので、パイプを通しての利用ができません。
|
|
したがって
|
|
.Nm pgp_sign
|
|
ではこれをなんとかするために、
|
|
pgp 署名の長さを知っていることにして、
|
|
pgp を「シームレス」署名モードで起動し、
|
|
ファイル本体は圧縮しないで署名のみを取出しています。
|
|
.\"translator: kludge it の適切な訳がちょっとわかりませんでした。
|
|
.Pp
|
|
チェック動作ではあまり複雑なことはしていません。
|
|
pgp に入力するファイルをその場で再ビルドしています。
|
|
.\"translator: 逆か? -> little less convoluted
|
|
.Pp
|
|
.Nm pgp
|
|
およびチェックサムファイルへのパスは不正利用を妨げるために
|
|
ハードコードされています。そのため柔軟性は損なわれています。
|
|
.Sh 関連ファイル
|
|
.Bl -tag -width "/usr/local/bin/pgp" -compact
|
|
.It Pa file.sign
|
|
.Nm
|
|
が
|
|
.Ar file
|
|
からビルドする一時ファイル
|
|
.It Pa /usr/local/bin/pgp
|
|
.Xr pgp 1
|
|
のデフォルトのパス
|
|
.It Pa /var/db/pkgs/SHA1
|
|
記録済みのチェックサム
|
|
.It Pa /etc/ssl/pkg.key
|
|
デフォルトの package への署名キー
|
|
.It Pa /etc/ssl/pkg.crt
|
|
デフォルトの package 検証用証明書
|
|
.El
|
|
.Sh 関連項目
|
|
.Xr gzip 1 ,
|
|
.Xr pgp 1 ,
|
|
.Xr pkg_add 1 ,
|
|
.Xr sha1 1
|
|
.Sh 作者
|
|
.An -nosplit
|
|
.Nm
|
|
ユーティリティは
|
|
.An Marc Espie
|
|
が
|
|
.Ox
|
|
プロジェクトのために作成しました。
|
|
X.509 署名と
|
|
.Fx
|
|
サポートは
|
|
.An Wes Peters Aq wes@softweyr.com
|
|
が追加しました。
|