1.4. スマートカードとその内容を管理するためのツール

さまざまなツールを使用して、スマートカードに格納されているキーと証明書を管理できます。これらのツールを使用して、次のことができます。

  • システムに接続されている使用可能なスマートカードリーダーをリスト表示します。
  • 利用可能なスマートカードをリスト表示し、その内容を表示します。
  • キーと証明書であるスマートカードの内容を操作します。

同様の機能を提供するツールは多数ありますが、システムの異なるレイヤーで機能するツールもあります。スマートカードは、複数のコンポーネントによって複数のレイヤーで管理されます。下位レベルでは、オペレーティングシステムは PC/SC プロトコルを使用してスマートカードリーダーと通信し、この通信は pcsc-lite デーモンによって処理されます。デーモンは、受信したコマンドを通常は USB 経由でスマートカードリーダーに転送します。これは、低レベルの CCID ドライバーによって処理されます。PC/SC の低レベル通信は、アプリケーションレベルではほとんど見られません。アプリケーションがスマートカードにアクセスするための RHEL での主な方法は、高レベルのアプリケーションプログラミングインターフェイス (API) である OASIS PKCS#11 API を使用することです。この API は、秘密鍵などの暗号化オブジェクトを操作する特定のコマンドにカード通信を抽象化します。スマートカードベンダーは、PKCS#11 API に従い、スマートカードのドライバーとして機能する .so ファイルなどの共有モジュールを提供します。

次のツールを使用して、スマートカードとその内容を管理できます。

  • OpenSC ツール: opensc に実装されているドライバーと連携します。

    • opensc-tool: スマートカード操作を実行します。
    • pkcs15-tool: スマートカードの PKCS#15 データ構造を管理します (トークンに保存されている PIN、キー、および証明書のリスト表示と読み取りなど)。
    • pkcs11-tool: スマートカード上の PKCS#11 データオブジェクトを管理します。たとえば、トークンに格納されている PIN、キー、および証明書のリスト表示と読み取りを行います。
  • GnuTLS ユーティリティー: アプリケーションがネットワークトランスポート層を介した安全な通信を可能にするための API と、X.509、PKCS#12、OpenPGP、およびその他の構造にアクセスするためのインターフェイス。

    • p11tool: PKCS#11 スマートカードとセキュリティーモジュールで操作を実行します。
    • certtool: X.509 証明書、要求、秘密鍵を解析して生成します。
  • ネットワークセキュリティーサービス (NSS) ツール: セキュリティー対応のクライアントおよびサーバーアプリケーションのクロスプラットフォーム開発をサポートするように設計された一連のライブラリー。NSS で構築されたアプリケーションは、SSL v3、TLS、PKCS #5、PKCS #7、PKCS #11、PKCS #12、S/MIME、X.509 v3 証明書、およびその他のセキュリティー標準をサポートできます。

    • modutil: PKCS#11 モジュール情報をセキュリティーモジュールデータベースで管理します。
    • certutil: NSS データベースと他の NSS トークンの両方でキーと証明書を管理します。

これらのツールを使用し、スマートカードを使用した認証に関する問題をトラブルシューティングする方法の詳細は、スマートカードによる認証のトラブルシューティング を参照してください。

関連情報

  • opensc-tool man ページ
  • pkcs15-tool man ページ
  • pkcs11-tool man ページ
  • p11tool man ページ
  • certtool man ページ
  • modutil man ページ
  • certutil man ページ