ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)

5.8.6 デジタル署名手順(javakey)

  J Business Kitのプラグイン(以降JBKプラグイン)またはJava Plug-inを使用する場合のデジタル署名手順を説明します。署名ツールとしてjavakey(JDKのツール)を使用します。


  javakeyの詳細については、JDKのドキュメントを参照してください。

  デジタル署名は、以下の手順で行います。



(1)デジタル署名(認定書)の作成

  署名者の作成、デジタル署名(認定書)の作成を行います。


署名者の作成

  デジタル署名を実施する署名者を作成します。実行例(署名者名:samplesigner)を以下に示します。

javakey -cs samplesigner true

-cs

  署名者を作成することを指定

samplesigner

  署名者の名前を指定

true

  署名者が信用できることを指定


公開鍵・秘密鍵の作成

  署名者のキーペア(公開鍵/秘密鍵)を作成します。実行例(鍵のアルゴリズム:DSA、鍵長:512)を以下に示します。

javakey -gk samplesigner DSA 512 sample_pub sample_priv

-gk

  キーペア作成の指定

samplesigner

  署名者の名前を指定

DSA

  使用するアルゴリズム(デジタル署名アルゴリズム)

512

  鍵の長さを指定

sample_pub

  公開鍵用のファイル名を指定

sample_priv

  秘密鍵用のファイル名を指定


認定書の作成

  キーペアと認定書情報から認定書を作成します。認定書情報は認定書ディレクティブファイルに記述して指定します。以下の実行例では、認定書としてカレントディレクトリにsamplesign.X509が作成されます。

javakey -gc samplesigner_cert

-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

  署名者名として、issuer.nameには認定書の署名者名、subject.nameは認定書の発行により、その鍵が認証されるエンティティ名(アイデンティティ名または署名者名)を指定します。

issuer.cert

  アイデンティティによって認定書を作成する場合、管理データベース(identitydb.obj)に格納された作成する認定書の認定書番号を指定します。自己署名認定書(issuer.nameとsubject.nameが同じ)でない場合に要求されます。

subject.real.name/subject.org.unit/subject.org/subject.country

  主体の一般的名前、組織単位および国などを指定します。

start.date/end.date

  認定書の有効期間の開始日と終了日を指定します。

serial.number

  特定の発行者にとって、この数字はこの発行者が署名した認定書とその他の認定書を区別するため、一意的なものでなければなりません。

out.file

  作成される認定書ファイル名を指定します。


  ここで作成された認定書と各クライアントマシンでインポートする認定書の作成時刻は、同一である必要があります。同一の認定書ディレクティブファイルを使用しても異なる時刻に作成された認定書は、別の認定書として認識されるため注意してください。


(2)jarアーカイブファイルへの適用

  jarアーカイブファイルにデジタル署名を適用します。署名情報は、署名ディレクティブファイルに記述して指定します。jarアーカイブファイルの作成方法は、“5.1.4 Javaクラスファイルのアーカイブ”(プレインストール型Javaライブラリ)/“5.2.4 Javaクラスファイルのアーカイブ”(Portable-ORB)を参照してください。
  実行例を以下に示します。

javakey -gs samplesigner_sign Sample.jar

-gs

  署名を適用することを指定

samplesigner_sign

  署名ディレクティブファイル(署名情報を記述)を指定

Sample.jar

  署名を行うjarアーカイブファイル名を指定


  署名ディレクティブファイル(samplesigner_sign)の記述例と各項目を以下に示します。

  signer=samplesigner
  cert=1
  chain=0
  signature.file=samplesign
  out.file=samplesign.jar

各項目の説明

signer

  署名者の名前を指定します。

cert

  認定書番号、認定書作成ファイルで使用した数字と同一番号を指定します。

chain

  認定書のチェインを指定します。この項目は現在未サポートであり、0を指定してください。

signature.file

  jarファイル内に格納される署名情報ファイル名を指定します。任意のファイル名を指定してください。この例の場合、META-INF/samplesign.SF,META-INF/samplesign.DSAとなります。

out.file

  署名されたjarファイルのファイル名を指定します。指定がない場合はコマンドで指定したファイル名に.sigが付加されます。署名されたファイルをjarファイルとして使用するために、拡張子を*.jarに変更してください。たとえば、署名を施す前のSample.jarを削除し、Sample.jar.sigをSample.jarに変名します。#で始まる行はコメントを示します。


  同一の署名者で複数のjarアーカイブファイルを作成する場合は、(2)の処理を繰り返してください。


(3)認定書のインポート

  (1)で作成した認定書のアプレットをダウンロードするクライアントマシンにインポートします。この作業はクライアントマシンで行います。認定書samplesign.X509を事前にクライアントマシンにコピーしてください。


アイデンティティの作成

  デジタル署名されたjarアーカイブファイルの同一性を証明するためのアイデンティティを作成します。実行例(アイデンティティ名:sampleuser)を以下に示します。

javakey -c sampleuser true

-c

  アイデンティティ作成指定

sampleuser

  アイデンティティ名の指定。任意の文字列を指定してください。

true

  アイデンティティが信用できることを指定


認定書のインポート

  アイデンティティが証明する認定書をインポートします。sampleuserがsamplesignerによって署名されたjarアーカイブファイルを証明するため、samplesignerの認定書をインポートする実行例を以下に示します。

javakey -ic sampleuser samplesign.X509

-ic

  認定書のインポート指定

sampleuser

  認定書がインポートされるアイデンティティを指定

samplesign.X509

  インポートする認定書を指定


  アイデンティティを作成すると、管理データベース(identitydb.obj)が作成されます。管理データベースが格納先はOSによって異なります。格納先を以下に示します。


OS

格納先

Windows(R) 2000
Windows Server(R) 2003
Windows(R) XP

環境変数HOMEDRIVE、HOMEPATHの設定値
例)HOMEDRIVE=C:、HOMEPATH=\winNTの場合
    “C:\winNT”

Solaris
Linux

ログインユーザのホームディレクトリ


(4)管理データベースのコピー

  (3)で作成した管理データベースを各プラグイン(JBKプラグインまたはJava Plug-in)の認識できる場所へコピーします。管理データベースのコピー先を以下に示します。


クライアントOS

JBKプラグイン

Java Plug-in

Windows(R) 2000
Windows Server(R) 2003
Windows(R) XP

環境変数HOMEDRIVE、HOMEPATHの設定値
例) HOMEDRIVE=C:、HOMEPATH=\winNTの場合
  “C:\winNT”

ログインユーザのプロファイルディレクトリ
例) ログイン名guestの場合
  “C:\Documents and Settings\guest”

Solaris
Linux

ログインユーザのホームディレクトリ

ログインユーザのホームディレクトリ