Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

第6章 アプリケーションの開発(Java言語)> 6.3 アプレットのデジタル署名> 6.3.3 デジタル署名手順

6.3.3.1 javakeyを使用した場合のデジタル署名

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


 javakeyの詳細については、JDKのドキュメントを参照してください。J Business Kitをご使用の場合は、Apworksの“J Business Kit オンラインマニュアル”(“ユーザーズガイド”の“JDK1.1.6ドキュメンテーション”)を参照してください。

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

(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アーカイブファイルの作成方法は、“Javaクラスファイルのアーカイブ”(プレインストール型Javaライブラリ)/“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) 9x
Windows(R) Me
(シングルユーザOS)

使用するJDKのインストールディレクトリ

Windows(R) 2000
(マルチユーザOS)

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

Solaris OE

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

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

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

クライアントOS

JBKプラグイン

Java Plug-in

Windows(R) 9x
Windows(R) Me
(シングルユーザOS)

JDKのインストールディレクトリ

OSのインストールディレクトリ

Windows(R) 2000
(マルチユーザOS)

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

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

Solaris OE

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

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


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005