Solaris スマートカードのこの機能を使用するには、認証管理インフラストラクチャ (AMI) のような公開鍵インフラストラクチャ (PKI) を使ってサイトを設定する必要があります。
1 枚のスマートカードには、1 つの非公開鍵しか格納できません。
この手順は、Java ベースの iButton と Cyberflex のスマートカードに当てはまります。Payflex のカードには非公開鍵を格納できません。
PKI 用の適切なコマンドを使用して、ユーザー用に 1 組の公開 / 非公開鍵を作成します。
鍵の組み合わせのうち、非公開鍵の部分を別のファイルにエクスポートします。
非公開鍵属性を設定する際にこのファイルの完全修飾パス名を指定する必要があるので、そのパス名を記録します。
スマートカードの初期化に使用するマシンにスーパーユーザーとしてログインします。
カードをスマートカードリーダーに挿入します。
次のように入力して、Java セキュリティディレクトリにアクセスします。
# /usr/java1.2/jre/lib/security |
ファイル内で、security.provider 定義を探します。
This is the "master security properties file". # . . # Each provider must implement a subclass of the Provider class. # To register a provider in this master security properties file, # specify the Provider subclass name and priority in the format # security.provider.<n>=<className> |
コメント記号 (#) が security.provider.<n>=<className> の前に置かれていることを確認します。
次のようにファイルを編集します。
# Each provider must implement a subclass of the Provider class. # To register a provider in this master security properties file, # specify the Provider subclass name and priority in the format # # security.provider.<n>=<className> security.provider.2=com.sun.ami.common.SunAMI |
次のように入力してサーバーを再起動します。
# /etc/init.d/ocfserv stop # /etc/init.d/amiserv stop # /etc/init.d/ocfserv start # /etc/init.d/amiserv start |
次のように 1 行に入力して、カードを初期化します。
# smartcard -c init -A A000000062030400 -P `PIN_number' privatekey=keyfile_name |
PIN_number - カードに割り当てられた PIN を表します。
keyfile_name - ユーザーの非公開鍵が入ったファイルのフルパス名です。
SolarisAuthApplet では、証明書属性の完全な実装は提供されていません。
カードの PIN とパスワードを認証すると、ocfserv サーバーは keyfile_name で指定されたファイルをスマートカードにコピーします。以後、追加的な認証としてデータに署名するとき、この非公開鍵を利用できます。ユーザーがデータに署名するコマンド (AMI では amisign) を実行すると、非公開鍵により、スマートカード上に署名付きデータが作成されます。
サイトポリシーによっては、ユーザーの非公開鍵ファイルをホストから削除したい場合があります。削除すると、その非公開鍵はユーザーのスマートカード上にしか存在しないことになります。