この章では、Solaris スマートカードの機能の概要について記述し、スマートカードのインストールと使用に関する基本情報を提供します。また、スマートカードの設定の概要も示します。スマートカードは、SmartCard Console またはコマンド行から設定できます。この章に記述されている手順では、サイトでのスマートカードの実装方法をユーザーがすでに認識していることが想定されています。また、すべてのシステム上のカードリーダーでスマートカードを使用するための設定がすでに行われていることも想定されています。
スマートカードのサービスは、サービス管理機能によって管理されています。有効化、無効化、再起動など、このサービスの管理処理は、svcadm コマンドを使用して実行できます。サービスの状態は、svcs コマンドを使用して照会できます。サービス管理機能についての詳細は、smf(5) のマニュアルページを参照してください。
スマートカードを変更する前に、ocfserv デーモンが有効になっていることを確認する必要があります。
Solaris スマートカードを使用すると、標準的な UNIX のログインよりも安全に Solaris デスクトップ環境にログインできます。これは、スマートカードに格納された情報を使って、ログイン時にユーザーの ID を確認できるためです。スマートカード上のログイン情報と同じ情報を提供できないユーザーは、Solaris デスクトップへのアクセスを拒否されます。Solaris スマートカードソフトウェアには、次の機能があります。
Solaris Smartcard Console または Solaris コマンド行からの管理
デスクトップ環境へのログインの PIN 認証による保護
カードリーダーからスマートカードを取り外したときの dtsession または xscreensaver による画面ロック
Solaris スマートカードソフトウェアを使用するには、次の条件が必要です。
Solaris 8、Solaris 9、または Solaris 10 OS で SPARC システムが動作している こと
内蔵または外付けのカードリーダーおよびスマートカードがサポートされていること
Solaris 9 リリースでは、IFD ハンドラを持つカードリーダーは、パッチ 112926-04 がインストールされている場合に使用可能です。
構成した Solaris スマートカードを使用したログインをユーザーに要求することで、セキュリティ保護されたデスクトップ環境が守られます。ここでは、ログインするときの手続きについて説明します。
dtlogin デーモンにより、ユーザーはスマートカードを挿入してから PIN を入力するように要求されます。
pam_smartcard モジュールにより、入力された PIN とカードに格納されている PIN が照合されます。
入力された PIN とカードに格納されている PIN が一致した場合、ユーザー名とパスワードがカードから読み取られユーザーの認証に使用されます。認証は、/etc/nsswitch.conf で passwd に対して指定された検索順序に基づきます。
次の表に、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 章「パッケージコマンドによるソフトウェアの管理 (手順)」を参照してください。
スマートカードのコマンドの詳細については、次のマニュアルページを参照してください。
ocfserv(1M)
pam_smartcard(5)
smartcard(1M)
ユーザープロファイル情報を追加するためには、デフォルトの SolarisAuthApplet アプレットをスマートカードに追加する必要があります。手順については、「スマートカードのアプレットをスマートカードに読み込むには (SmartCard Console)」を参照してください。
デフォルトのアプレット (SolarisAuthApplet) を読み込んだ後に、カード上でユーザープロファイル情報を作成します。ユーザープロファイル情報では、カードユーザーのログイン名およびパスワードを指定します。また、セキュリティ保護されているアプリケーションも指定します。SolarisAuthApplet のデフォルトのPIN は、$$$$java です。
ユーザー情報には、ログイン名、パスワード、およびスマートカードによってアクセスが可能になるアプリケーションが含まれます。
カードリーダーにスマートカードを挿入します。
ocfserv デーモンが有効になっていることを確認します。
次のコマンドを入力すると、サービスの状態がわかります。
% svcs network/rpc/ocfserv |
スマートカードを変更する前に、ocfserv デーモンが有効になっていることを確認する必要があります。
(省略可能) 必要に応じて、スーパーユーザーでログインし、ocfserv デーモンを有効にします。
# svcadm enable network/rpc/ocfserv |
ログイン名、パスワード、およびアプリケーションをスマートカード用に設定します。
次のコマンドを 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 (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 のスマートカードを初期化する場合を考えます。
A000000062030400 - SolarisAuthApplet アプレット
'$$$$java' - このスマートカードのデフォルトの PIN で、後でユーザー Ed が変更することができます。
dtlogin - このスマートカードによるログインが必要なアプリケーション
ed - Ed がデスクトップにログインするときに入力する必要があるログイン名
xx - 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 スマートカードを使用したデスクトップへのログインを有効にすることです。手順については、「スマートカードの使用を有効にするには (コマンド行)」を参照してください。
スマートカードを有効にすると、次の条件のどちらかに当てはまる場合には、dtlogin を使用してログインすることはできません。
適切なスマートカードを持っていない。
スマートカードが正しく構成されていない。
適切なスマートカードの構成の設定が完了する前にスマートカードを有効にする場合は、まずスマートカードを無効にします。次のスマートカードを無効にする手順を実行して、使用するスマートカードを設定できるようにします。
ssh または rlogin コマンドを使って、リモートからシステムにログインします。
スーパーユーザー (root) になります。
スマートカードの操作を無効にします。
# smartcard -c disable |
次の手順で、システムで Solaris スマートカードの使用を有効にします。そのシステムで承認されたスマートカードを使用する必要があります。また、そのシステムにログインするには、PIN の入力が必要な場合もあります。
スマートカードの操作に使用する各システム上でスーパーユーザーになります。
ocfserv デーモンが有効になっていることを確認します。
次のコマンドを入力すると、サービスの状態がわかります。
# svcs network/rpc/ocfserv |
スマートカードを変更する前に、ocfserv デーモンが有効になっていることを確認する必要があります。
(省略可能) 必要に応じて ocfserv デーモンを有効にします。
# svcadm enable network/rpc/ocfserv |
デスクトップを停止します。
# /etc/init.d/dtlogin stop |
Solaris スマートカードの操作を有効にします。
# smartcard -c enable |
デスクトップを再起動します。
# /etc/init.d/dtlogin start |
スマートカードによるログインができるように CDE を構成すると、/etc/pam.conf が変更され、pam_smartcard が取り込まれます。たとえば、smartcard -c enable を実行すると、次の行が dtlogin と dtsession の auth スタックの先頭に挿入されます。
dtlogin auth requisite pam_smartcard.so dtsession auth requisite pam_smartcard.so |