doc/ja_JP.eucJP/man/man1/pkg_sign.1
SUZUKI Koichi 3947840b05 Catch up with 5.3-BETA1.
Interpretation of a chunk in cut.1
  was helped by: Yoshihiko Sarumaru <mistral@imasy.or.jp>, hrs
2004-09-24 06:50:37 +00:00

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
が追加しました。