Solaris スマートカードの管理

第 1 章 Solaris スマートカード (概要)

この章では、Solaris スマートカードの機能の概要について記述し、スマートカードのインストールと使用に関する基本情報を提供します。また、スマートカードの設定の概要も示します。スマートカードは、SmartCard Console またはコマンド行から設定できます。この章に記述されている手順では、サイトでのスマートカードの実装方法をユーザーがすでに認識していることが想定されています。また、すべてのシステム上のカードリーダーでスマートカードを使用するための設定がすでに行われていることも想定されています。

スマートカードの新機能

スマートカードのサービスは、サービス管理機能によって管理されています。有効化、無効化、再起動など、このサービスの管理処理は、svcadm コマンドを使用して実行できます。サービスの状態は、svcs コマンドを使用して照会できます。サービス管理機能についての詳細は、smf(5) のマニュアルページを参照してください。


注 –

スマートカードを変更する前に、ocfserv デーモンが有効になっていることを確認する必要があります。


スマートカードの機能

Solaris スマートカードを使用すると、標準的な UNIX のログインよりも安全に Solaris デスクトップ環境にログインできます。これは、スマートカードに格納された情報を使って、ログイン時にユーザーの ID を確認できるためです。スマートカード上のログイン情報と同じ情報を提供できないユーザーは、Solaris デスクトップへのアクセスを拒否されます。Solaris スマートカードソフトウェアには、次の機能があります。

スマートカードの要件

Solaris スマートカードソフトウェアを使用するには、次の条件が必要です。


注 –

Solaris 9 リリースでは、IFD ハンドラを持つカードリーダーは、パッチ 112926-04 がインストールされている場合に使用可能です。


スマートカードによるログイン

構成した Solaris スマートカードを使用したログインをユーザーに要求することで、セキュリティ保護されたデスクトップ環境が守られます。ここでは、ログインするときの手続きについて説明します。

  1. dtlogin デーモンにより、ユーザーはスマートカードを挿入してから PIN を入力するように要求されます。

  2. pam_smartcard モジュールにより、入力された PIN とカードに格納されている PIN が照合されます。

  3. 入力された PIN とカードに格納されている PIN が一致した場合、ユーザー名とパスワードがカードから読み取られユーザーの認証に使用されます。認証は、/etc/nsswitch.confpasswd に対して指定された検索順序に基づきます。

パッケージの説明

次の表に、Solaris 10 のインストール時に追加される Solaris スマートカードパッケージを示します。

表 1–1 Solaris スマートカードパッケージ

パッケージ名 

説明 

SUNWjcom

スマートカードをサポートする Java 通信 API—Java コードとネイティブコード 

SUNWjib

Dallas Semiconductor 社製シリアル iButton 用 OCF カード端末ドライバ 

SUNWocf

OCF (オープンカードフレームワーク)—コアライブラリとユーティリティ 

SUNWocfr

OCF (オープンカードフレームワーク)—構成ファイル 

SUNWocfh

OCF (オープンカードフレームワーク)—ヘッダーファイル 

SUNWpamsc

スマートカード認証用の接続可能な認証モジュール (PAM) 

SUNWscgui

Solaris SmartCard Console 

SUNWscmhdlr

内蔵リーダー用 IFD ハンドラ 

パッケージを削除する場合には、標準の pkgrm コマンドを使用します。パッケージをインストールし直す場合は、pkgadd コマンドを使用します。

これらのコマンドの使い方については、『Solaris のシステム管理 (基本編)』の第 17 章「パッケージコマンドによるソフトウェアの管理 (手順)」を参照してください。

スマートカードのマニュアルページ

スマートカードのコマンドの詳細については、次のマニュアルページを参照してください。

SolarisAuthApplet の読み込み

ユーザープロファイル情報を追加するためには、デフォルトの SolarisAuthApplet アプレットをスマートカードに追加する必要があります。手順については、「スマートカードのアプレットをスマートカードに読み込むには (SmartCard Console)」を参照してください。

スマートカードの初期化

デフォルトのアプレット (SolarisAuthApplet) を読み込んだ後に、カード上でユーザープロファイル情報を作成します。ユーザープロファイル情報では、カードユーザーのログイン名およびパスワードを指定します。また、セキュリティ保護されているアプリケーションも指定します。SolarisAuthApplet のデフォルトのPIN は、$$$$java です。

Procedureスマートカード上でユーザー情報を作成するには (コマンド行)

ユーザー情報には、ログイン名、パスワード、およびスマートカードによってアクセスが可能になるアプリケーションが含まれます。

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

  2. ocfserv デーモンが有効になっていることを確認します。

    次のコマンドを入力すると、サービスの状態がわかります。


    % svcs network/rpc/ocfserv
    

    注 –

    スマートカードを変更する前に、ocfserv デーモンが有効になっていることを確認する必要があります。


  3. (省略可能) 必要に応じて、スーパーユーザーでログインし、ocfserv デーモンを有効にします。


    # svcadm enable network/rpc/ocfserv
    
  4. ログイン名、パスワード、およびアプリケーションをスマートカード用に設定します。

    次のコマンドを 1 行に入力します。


    # smartcard -c init -A A000000062030400 -P '$$$$java' user=me password=xx application=dtlogin
    

    このコマンドは、Solaris スマートカードがサポートしているすべてのスマートカードデバイスで使用できます。

    この例では、ユーザー名は me に、パスワードは xx に、アプリケーションは dtlogin に設定されています。ユーザー名とパスワードは任意の値に設定できます。カードの発行時に、システム管理者またはユーザーがユーザー名とパスワードを任意の値に変更できます。手順については、「ユーザープロファイルを設定するには (SmartCard Console)」を参照してください。


    注 –

    読み込んだアプレット ID と現在の PIN を入力する必要があります。コマンドの -A A000000062030400 部分に SolarisAuthApplet アプレット ID を指定します。デフォルトの PIN である $$$$java や、$ などのシェルの特殊文字を含む PIN は、単一引用符 (' ') で囲む必要があります。単一引用符で囲まれていない場合、シェルは PIN を変数として解釈しようとし、コマンドが失敗します。


参照

SmartCard Console での手順については、次の内容を参照してください。

スマートカードの認証属性の定義

各スマートカードの属性は、ユーザーの要件、サイト内のセキュリティポリシー、および使用しているスマートカードのタイプによる制限に基づいて設定します。各スマートカードに対応する属性を定義するには、「アプレットを構成 (Configure Applets)」ダイアログボックスを使用します。システム上のクライアントおよびサーバープログラムは、スマートカード上の属性を読み取って、特定のアプリケーションへのアクセス権をユーザーに与えるかどうかを決定します。


注 –

このような属性は、Solaris スマートカードが提供する SolarisAuthApplet アプレットで初期化されたスマートカードだけに適用されます。異なるスマートカードアプレットを使用している場合、利用可能な属性は異なる場合があります。詳細は、smartcard(1M) のマニュアルページを参照してください。


PIN 属性

PIN 属性は、スマートカードの PIN (Personal Identification Number) を定義する認証属性です。スマートカードに作成されているデフォルトの PIN は $$$$java です。管理者またはユーザーは $$$$java を個人専用の PIN に変更できます。サイトのすべてのユーザーに、同じデフォルトの PIN 名を付与することも考えられます。たとえば、changeme などです。その後、各ユーザーが、その PIN をユーザー自身しか知らない値へ必ず変更するようにします。

スマートカードの PIN を変更する手順については、「スマートカードの PIN を変更するには (SmartCard Console)」を参照してください。

ユーザー属性とパスワード属性

ユーザー属性とパスワード属性は、ユーザーを識別して、ユーザーをスマートカードの PIN に関連付ける認証属性です。これらの属性を設定するには、ユーザーのログイン名とパスワードを知っている必要があります。

デフォルトの認証機構 (PIN) を使用するシステムでは、ocfserv を実行して PIN が認証されていることを確認します。次に、ocfserv はスマートカード上のユーザー属性とパスワード属性を読み取ります。スマートカード上のパスワードがシステムのパスワードデータベース内にあるユーザーのエントリと一致する場合、ocfserv はユーザーのそのアプリケーションへのアクセスを許可します。

アプリケーション属性

アプリケーション認証属性を使用すると、ログイン名とパスワードによって、各ユーザーがログインする必要があるアプリケーションを指定できます。アプリケーション認証属性は、SmartCard Console では「ユーザープロファイル」と呼ばれます。たとえば、デスクトップにスマートカードを使用したログインが必要な場合、スマートカード上のログイン名とパスワードに関連付けられたアプリケーションとして、dtlogin を指定します。また、サイトに固有なアプリケーション(財務計算パッケージや個人情報データベースなど) にスマートカードを使用したログインが必要な場合もあります。そのようなアプリケーションにスマートカードを使用したログインが必要な場合、そのアプリケーションの名前をアプリケーション属性に指定します。

スマートカード上でアプリケーションを初期化する前に、ユーザーがスマートカードによる認証を使ってアクセスする必要があるアプリケーションを決定しておきます。root (スーパーユーザー) や他の限定されたログイン名を使ってアプリケーションにログインする必要のあるユーザー用にスマートカードを用意する場合は、この作業は特に重要になります。


注 –

PayFlex カードは複数の属性をサポートしていません。PayFlex カードは、デスクトップ、および 1 つ以上のセキュリティ保護されたアプリケーションにログインする必要がある場合には使用できません。また、複数のユーザー名を使用する場合にも使用できません。


スマートカード上のアプリケーション属性は他の認証属性と共に機能します。たとえば、次の情報を使って、ユーザー Ed のスマートカードを初期化する場合を考えます。

これらの情報は、次のようにコマンド行に入力する必要があります。


# smartcard -c init -A A000000062030400 -P '$$$$java' application=dtlogin user=ed password=xx

Ed が自分のスマートカードをカードリーダーに挿入して、デスクトップにログイン (dtlogin) しようとすると、ocfserv はスマートカードを読み取って、認証属性が dtlogin に関連付けられているかどうかを判断します。ocfserv サーバーは、ユーザー属性とパスワード属性が dtlogin に関連付けられていることを検出します。

ocfserv サーバーは PIN を入力するように Ed に要求します。PIN が入力されると、スマートカード上に格納された、dtlogin アプリケーションに割り当てられている PIN と比較します。また、ocfserv は Ed のスマートカード上のログイン名とパスワードがシステムのパスワードデータベース内にある Ed のエントリと一致するかどうかを調べて、Ed が本人であることを確認します。これらの属性が一致した場合、Ed はデスクトップにログインできます。

Solaris スマートカードによるデスクトップへのログインを有効にする

デスクトップシステムの設定で最後に行うことは、Solaris スマートカードを使用したデスクトップへのログインを有効にすることです。手順については、「スマートカードの使用を有効にするには (コマンド行)」を参照してください。

スマートカードを有効にすると、次の条件のどちらかに当てはまる場合には、dtlogin を使用してログインすることはできません。

適切なスマートカードの構成の設定が完了する前にスマートカードを有効にする場合は、まずスマートカードを無効にします。次のスマートカードを無効にする手順を実行して、使用するスマートカードを設定できるようにします。

  1. ssh または rlogin コマンドを使って、リモートからシステムにログインします。

  2. スーパーユーザー (root) になります。

  3. スマートカードの操作を無効にします。


    # smartcard -c disable
    

Procedureスマートカードの使用を有効にするには (コマンド行)

次の手順で、システムで Solaris スマートカードの使用を有効にします。そのシステムで承認されたスマートカードを使用する必要があります。また、そのシステムにログインするには、PIN の入力が必要な場合もあります。

手順
  1. スマートカードの操作に使用する各システム上でスーパーユーザーになります。

  2. ocfserv デーモンが有効になっていることを確認します。

    次のコマンドを入力すると、サービスの状態がわかります。


    # svcs network/rpc/ocfserv
    

    注 –

    スマートカードを変更する前に、ocfserv デーモンが有効になっていることを確認する必要があります。


  3. (省略可能) 必要に応じて ocfserv デーモンを有効にします。


    # svcadm enable network/rpc/ocfserv
    
  4. デスクトップを停止します。


    # /etc/init.d/dtlogin stop
    
  5. Solaris スマートカードの操作を有効にします。


    # smartcard -c enable
    
  6. デスクトップを再起動します。


    # /etc/init.d/dtlogin start
    

    注 –

    スマートカードによるログインができるように CDE を構成すると、/etc/pam.conf が変更され、pam_smartcard が取り込まれます。たとえば、smartcard -c enable を実行すると、次の行が dtlogindtsessionauth スタックの先頭に挿入されます。


    dtlogin auth requisite pam_smartcard.so
    dtsession auth requisite pam_smartcard.so