Solaris スマートカードの管理

第 8 章 スマートカードの追加管理 (タスク)

この章では、スマートカードの管理および保守の追加作業について説明します。これらの作業は、SmartCard Console またはコマンド行から行うことができます。

この章では、次の手順について説明します。

スマートカードの追加の管理タスク

スマートカードの PIN を確認するには (コマンド行)

この手順は、Solaris スマートカードがサポートしているすべてのカードに当てはまります。

  1. カードリーダーにスマートカードを挿入します。

  2. スマートカードの PIN を確認します。


    # smartcard -c init -A A000000062030400 -P `PIN_number'

    PIN_number はスマートカードに設定されている PIN です。

    PIN が有効でない場合は「暗証番号 (PIN) が無効です」というメッセージが表示されます。PIN が有効な場合は、何のメッセージも出力されません。

スマートカード上で非公開鍵を作成するには (コマンド行)

この手順は、Java ベースの iButton と CyberFlex のスマートカードに当てはまります。PayFlex スマートカードには非公開鍵を格納できません。

非公開鍵の機能を使用するには、公開鍵インフラストラクチャ (PKI) をサイトに設定しておく必要があります。

  1. サイトの PKI に適切なコマンドを使用して、ユーザー用に 1 組の公開鍵と非公開鍵を作成します。

  2. 鍵の組み合わせから非公開鍵の部分を別のファイルにエクスポートします。

    後で非公開鍵属性を設定する際に絶対パス名を指定する必要があるため、このパス名を記録しておきます。

  3. スマートカードの初期化に使用するシステム上でスーパーユーザーになります。

  4. スマートカードをカードリーダーに挿入します。

  5. Java のセキュリティディレクトリに移動します。


    # cd /usr/java1.2/jre/lib/security
    
  6. java.security ファイルを編集します。

  7. このファイルの中から 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>
  8. 次の行の前にコメント記号 (#) があることを確認します。


    #    security.provider.<n>=<className>
  9. 次のテキストを追加します。


    # 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
    
  10. 次のコマンドを 1 行に入力して、スマートカードを初期化します。


    # smartcard -c init -A A000000062030400 -P `PIN_number' privatekey=key_file_name
    

    PIN_number

    スマートカードに割り当てられている PIN を指定します。 

    key_file_name

    ユーザーの非公開鍵が格納されているファイルのフルパス名を指定します。 


    注 -

    SolarisAuthApplet には、証明書属性の完全な実装は提供されていません。


スマートカードを複数のシステムで使用する

smartcard -c init コマンドを実行してユーザーのスマートカードを初期化すると、システムとスマートカードの両方に対称鍵が作成されます。ocfserv/etc/smartcard/.keys というファイルを作成して、システム上で構成されているすべての秘密鍵に関する情報を格納します。スマートカードが作成されたシステム以外のシステムにユーザーがアクセスする必要がある場合、アクセスする必要があるすべてのシステムに /etc/smartcard/.keys ファイルをエクスポートする必要があります。

システムの鍵ファイルをエクスポートするには (コマンド行)

スマートカードが作成されたシステムから /etc/smartcard/.keys ファイルをエクスポートするには、この手順を使用します。

  1. スマートカードが作成されたシステム上でスーパーユーザーになります。

  2. 当該ユーザー専用の鍵ファイルを別に作成して、/etc/smartcard/.keys の中から、そのユーザーの鍵だけを格納します。

  3. /etc/smartcard/.keys をエクスポートします。


    # smartcard -c admin -k challenge_response -E -o key_file_name
    

    key_file_name

    ユーザーの対称鍵が格納されているファイルを指定します。/etc/smartcard/.keys ファイルまたは当該ユーザー専用の鍵ファイルのどちらかです。

ユーザーの鍵ファイルをインポートするには (コマンド行)

ユーザーのスマートカードが作成されたシステム以外のシステムにユーザーの対称鍵をインポートするには、この手順を使用します。

  1. スマートカードが作成されたシステム以外のシステム上でスーパーユーザーになります。

  2. 鍵ファイルを新しいシステムにインポートします。


    # smartcard -c admin -k challenge_response -I -i key_file_name
    

    key_file_name

    /etc/smartcard/.keys または当該ユーザー専用に作成した鍵ファイルのどちらかです。

  3. ユーザーがスマートカードを使ってアクセスする必要がある各システムについて、手順 1 と手順 2 を繰り返します。

スマートカードの操作での問題の解決

スマートカードを使ってログインするときに障害が発生した場合は、この節を参照してください。

デバッグ属性の設定

スマートカードの動作をシステム上でデバッグするには、デバッグ属性を設定します。Solaris スマートカードは標準的なデバッグ機能を提供します。指定しておけば、ユーザーの動作を詳細に追跡できます。

有効にすると、デバッグ情報がファイルに記録されます。デバッグ情報のレベルおよび量は、0 - 9 段階で制御することができます。デフォルトでは、デバッグは無効になっています。

デバッグを有効にするには (SmartCard Console)

ocfserv のデバッグ属性を設定したい場合は、「デバッグ」フォルダを使用します。デバッグの設定はオプション (省略可能) です。

  1. ナビゲーション区画で「OCF サーバー」を選択します。

  2. ローカルシステムを表すアイコンをダブルクリックします。

  3. 「デバッグ」フォルダを選択します。

  4. OCF デバッグレベルスライダのインジケータを右側に動かして、OCF サーバーのデバッグレベルを示します。

  5. Open Card トレースレベルスライダのインジケータを右側に動かして、OCF サーバーのトレースレベルを示します。

  6. (オプション) デバッグファイルの代わりの名前を指定します。

    1. 「ブラウズ」をクリックして、システム上のファイルシステムを表示します。

    2. 「OCF デバッグファイルの場所」フィールドに、デバッグファイルの絶対パス名を入力します。

  7. 「適用」または「了解」をクリックします。

  8. ocfserv を再起動するようプロンプトが表示された場合は、「OCF を再起動しない」を選択します。

コマンド行からデバッグを有効にする

デフォルトでは、次のデバッグ属性が ocfserv 用に定義されています。


debugging.filename        = /var/run/ocf.log
debugging                 = 0
OpenCard.trace            = com.sun:9 opencard.core:9

注 -

以前のリリースの Solaris 8 を使用している場合は、デバッグログファイルの名前 が /tmp/ocf_debugfile の場合もあります。


/var/run/ocf_log

デバッグ情報を格納するファイル名 

debugging = 0

デバッグが無効であることを示す。debugging = 1 はデバッグが有効であることを示す

OpenCard.trace

OpenCard のトレースレベル 

デバッグを有効にするには (コマンド行)

スマートカードのデバッグを有効にするには、次の手順を使用します。

  1. スーパーユーザーになります。

  2. debugging=1 を設定して、スマートカードのデバッグを有効にします。


    # smartcard -c admin -x modify debugging=1
    

    次の例では、-x modify debugging.filename オプションとデバッグファイルの絶対パスによるファイル名を指定することによって、ocfserv デバッグファイルの位置を変更しています。


    # smartcard -c admin -x modify debugging.filename=/var/tmp/sc.debug
    

スマートカードの操作を無効にするには (コマンド行)

スマートカードの構成エラーによりユーザーのスマートカードでのログインが許可されない場合、またはシステムがスマートカードによるログインを必要としなくなった場合は、システムでスマートカードの操作を無効にする必要が生じることもあります。

  1. スーパーユーザーになります。

  2. システムをシングルユーザーモードにします。


    # shutdown -g180 -y
    
  3. スマートカードの操作を無効にします。


    # smartcard -c disable
    
  4. システムをマルチユーザーモードにして、デスクトップ環境に戻ります。


    Entering System Maintenance Mode
    Sun Microsystems Inc.   SunOS 5.8       Generic February 2000
    # (Press Control-D)
    ENTER RUN LEVEL (0-6, s or S) [3]: 3
    

スマートカードの構成に関する問題を解決するには

スマートカードの重要な構成情報は /etc/smartcard/opencard.properties ファイルに格納されています。このファイルは管理が不要なので、手動で編集しないでください。ただし、SmartCard Console またはコマンド行からスマートカードを構成するときに問題が発生した場合は、/etc/smartcard/opencard.properties ファイルの前のバージョンをコマンド行から復元できます。

  1. スーパーユーザーになります。

  2. /etc/smartcard ディレクトリに移動します。

  3. 最初に現在のバージョンを保存します。


    # cp opencard.properties opencard.properties.bad
    
  4. 前のバージョンを現在のバージョンにコピーします。


    # cp opencard.properties.bak opencard.properties
    

アプレットのダウンロードに関する問題を解決するには

  1. アプレットをスマートカードにダウンロードしようとして、次のメッセージが表示された場合、カードリーダーに挿入されているスマートカードの ATR が (システムが受け付けることができる) 有効な ATR のリストに追加されていない可能性があります。


    SmartcardInvalidCardException
  2. 「スマートカードの ATR を追加または変更するには (SmartCard Console)」の手順に従って、スマートカードの ATR を更新してください。

スマートカードの ATR の紛失に関する問題を解決するには

SmartCard Console を使ってスマートカードを追加しようとすると、カードリーダーに挿入されているスマートカードの ATR が表示されます。表示された ATR が有効な ATR のリストに存在しない場合は、その ATR を「card-name.ATR」属性に追加します。

詳細は、「スマートカードの ATR を追加または変更するには (SmartCard Console)」を参照してください。

使用例 - 紛失したスマートカードの ATR を追加する (コマンド行)

ocfserv 属性を表示して、「card_name.ATR」属性が存在するかどうかを調べます。


# smartcard -c admin

たとえば、ocfserv は「MySCM.0.ATR」属性を表示します。MySCM はカードリーダーのユーザーフレンドリな名前です。この属性は、カードリーダーに挿入されているスマートカードの ATR を反映しています。この属性は一時的なものです。スマートカードをカードリーダーに挿入すると、ocfserv によって追加され、スマートカードをカードリーダーから取り外すと削除されます。

この属性により表示された ATR が有効な ATR のリストに存在しない場合は、その ATR を「card-name.ATR」属性に追加します。

スマートカードを使用したログインに関する問題を解決するには

スマートカードの操作を有効にしたあとで、システムからログアウトすると、CDE ログイン画面には次のようなメッセージが表示されます。


Please insert SmartCard
  1. スマートカードの設定に関する問題のために、スマートカードを使ってシステムにログインできない場合は、rlogin または telnet コマンドを使ってリモートからログインしてみます。

  2. スーパーユーザーになり、スマートカードの操作を無効にするよう試みます (はじめにシステムをインストールし直そうとするのではなく)。

    スマートカードの操作を無効にすると、CDE 画面には次のようなプロンプトが表示されます。


    Enter User Name