J Business Kitのプラグイン(以降JBKプラグイン)またはJava Plug-inを使用する場合のデジタル署名手順を説明します。署名ツールとしてjavakey(JDKのツール)を使用します。
javakeyの詳細については、JDKのドキュメントを参照してください。
(1)デジタル署名(認定書)の作成
署名者の作成、デジタル署名(認定書)の作成を行います。
署名者の作成
デジタル署名を実施する署名者を作成します。実行例(署名者名:samplesigner)を以下に示します。
javakey -cs samplesigner true
署名者を作成することを指定
署名者の名前を指定
署名者が信用できることを指定
公開鍵・秘密鍵の作成
署名者のキーペア(公開鍵/秘密鍵)を作成します。実行例(鍵のアルゴリズム:DSA、鍵長:512)を以下に示します。
javakey -gk samplesigner DSA 512 sample_pub sample_priv
キーペア作成の指定
署名者の名前を指定
使用するアルゴリズム(デジタル署名アルゴリズム)
鍵の長さを指定
公開鍵用のファイル名を指定
秘密鍵用のファイル名を指定
認定書の作成
キーペアと認定書情報から認定書を作成します。認定書情報は認定書ディレクティブファイルに記述して指定します。以下の実行例では、認定書としてカレントディレクトリにsamplesign.X509が作成されます。
javakey -gc samplesigner_cert
認定書作成指定
使用する認定書ディレクティブファイルを指定
認定書ディレクティブファイル(samplesigner_cert)の記述例と各項目の説明を以下に示します。
issuer.name=samplesigner issuer.cert=1 subject.name=samplesigner subject.real.name=FUJITSU LIMITED subject.org.unit=JAVA PROJECT subject.org=FUJITSU subject.country=JAPAN start.date=1 Jun 2000 end.date=1 Jun 2001 serial.number=1001 out.file=samplesign.X509
各項目の説明
署名者名として、issuer.nameには認定書の署名者名、subject.nameは認定書の発行により、その鍵が認証されるエンティティ名(アイデンティティ名または署名者名)を指定します。
アイデンティティによって認定書を作成する場合、管理データベース(identitydb.obj)に格納された作成する認定書の認定書番号を指定します。自己署名認定書(issuer.nameとsubject.nameが同じ)でない場合に要求されます。
主体の一般的名前、組織単位および国などを指定します。
認定書の有効期間の開始日と終了日を指定します。
特定の発行者にとって、この数字はこの発行者が署名した認定書とその他の認定書を区別するため、一意的なものでなければなりません。
作成される認定書ファイル名を指定します。
ここで作成された認定書と各クライアントマシンでインポートする認定書の作成時刻は、同一である必要があります。同一の認定書ディレクティブファイルを使用しても異なる時刻に作成された認定書は、別の認定書として認識されるため注意してください。
(2)jarアーカイブファイルへの適用
jarアーカイブファイルにデジタル署名を適用します。署名情報は、署名ディレクティブファイルに記述して指定します。jarアーカイブファイルの作成方法は、“5.1.4 Javaクラスファイルのアーカイブ”(プレインストール型Javaライブラリ)/“5.2.4 Javaクラスファイルのアーカイブ”(Portable-ORB)を参照してください。
実行例を以下に示します。
javakey -gs samplesigner_sign Sample.jar
署名を適用することを指定
署名ディレクティブファイル(署名情報を記述)を指定
署名を行うjarアーカイブファイル名を指定
署名ディレクティブファイル(samplesigner_sign)の記述例と各項目を以下に示します。
signer=samplesigner cert=1 chain=0 signature.file=samplesign out.file=samplesign.jar
各項目の説明
署名者の名前を指定します。
認定書番号、認定書作成ファイルで使用した数字と同一番号を指定します。
認定書のチェインを指定します。この項目は現在未サポートであり、0を指定してください。
jarファイル内に格納される署名情報ファイル名を指定します。任意のファイル名を指定してください。この例の場合、META-INF/samplesign.SF,META-INF/samplesign.DSAとなります。
署名されたjarファイルのファイル名を指定します。指定がない場合はコマンドで指定したファイル名に.sigが付加されます。署名されたファイルをjarファイルとして使用するために、拡張子を*.jarに変更してください。たとえば、署名を施す前のSample.jarを削除し、Sample.jar.sigをSample.jarに変名します。#で始まる行はコメントを示します。
同一の署名者で複数のjarアーカイブファイルを作成する場合は、(2)の処理を繰り返してください。
(3)認定書のインポート
(1)で作成した認定書のアプレットをダウンロードするクライアントマシンにインポートします。この作業はクライアントマシンで行います。認定書samplesign.X509を事前にクライアントマシンにコピーしてください。
アイデンティティの作成
デジタル署名されたjarアーカイブファイルの同一性を証明するためのアイデンティティを作成します。実行例(アイデンティティ名:sampleuser)を以下に示します。
javakey -c sampleuser true
アイデンティティ作成指定
アイデンティティ名の指定。任意の文字列を指定してください。
アイデンティティが信用できることを指定
認定書のインポート
アイデンティティが証明する認定書をインポートします。sampleuserがsamplesignerによって署名されたjarアーカイブファイルを証明するため、samplesignerの認定書をインポートする実行例を以下に示します。
javakey -ic sampleuser samplesign.X509
認定書のインポート指定
認定書がインポートされるアイデンティティを指定
インポートする認定書を指定
アイデンティティを作成すると、管理データベース(identitydb.obj)が作成されます。管理データベースが格納先はOSによって異なります。格納先を以下に示します。
OS | 格納先 |
---|---|
Windows(R) 2000 | 環境変数HOMEDRIVE、HOMEPATHの設定値 |
Solaris | ログインユーザのホームディレクトリ |
(4)管理データベースのコピー
(3)で作成した管理データベースを各プラグイン(JBKプラグインまたはJava Plug-in)の認識できる場所へコピーします。管理データベースのコピー先を以下に示します。
クライアントOS | JBKプラグイン | Java Plug-in |
---|---|---|
Windows(R) 2000 | 環境変数HOMEDRIVE、HOMEPATHの設定値 | ログインユーザのプロファイルディレクトリ |
Solaris | ログインユーザのホームディレクトリ | ログインユーザのホームディレクトリ |