Windows 版の「SoftEther VPN Client」は、「スマートカード」による「PKI」に対応しています。ここでは、SoftEther VPN Client とスマートカードを組み合わせて利用する方法について解説します。スマートカード認証の概要に関しては 「1.5 セキュリティの強化」 を参照してください。
4.6.1 スマートカードのデバイスドライバ
必要なデバイスドライバ
「スマートカード」またはスマートカードと互換性のある「ハードウェアセキュリティトークンデバイス」(以下、まとめて「スマートカード」と表現します) を使用して「PKI 機能」を利用するためには、下記の 2 種類のデバイスドライバがコンピュータにインストールされている必要があります。
- スマートカードリーダなどのハードウェアデバイスのデバイスドライバ。
- 使用するスマートカードに対応した PKCS#11 インターフェイスを持つデバイスドライバ。
また、VPN Client をインストールしてから、スマートカードリーダおよびスマートカードのドライバをインストールした場合は、一度 VPN Client サービスまたはコンピュータ自体を再起動しなければならない場合があります。
さらに、スマートカードリーダまたはスマートカードのデバイスドライバにおいて、スマートカードを使用する上で何らかの設定が必要になる場合は、事前にそれらの設定を行っておく必要があります。 各スマートカードリーダおよびスマートカードの使用上の設定に関しては、各デバイスに付属のハードウェアマニュアルを参照してください。
対応しているスマートカードの種類
SoftEther VPN Client は、「PKCS#11」に対応したスマートカードを使用することができる場合があります
4.6.1 スマートカードの選択
ここで表示されるスマートカードの種類を選択し [OK] をクリックすると、そのスマートカードを使用できるようになります。なお、ここに表示されるスマートカードが必ずしも SoftEther VPN Client によって使用できるとは限りません。
使用するスマートカードの選択画面
4.6.3 スマートカードオブジェクトの列挙と取得
スマートカードマネージャについて
「SoftEther VPN Client」は、対応したスマートカードの内部のオブジェクトの一覧を列挙したり、オブジェクトを取得したり、またオブジェクトを書き込んだりすることができる「スマートカードマネージャ」機能を持っています。 「スマートカードマネージャ」を起動するには、[スマートカード] メニューから [スマートカードマネージャ] を選択してください。
スマートカードマネージャを起動すると、スマートカードにアクセスするための「PIN コード」を入力するための画面が表示されます。ここで PIN コードを正しく入力すると、スマートカード内のオブジェクト一覧が列挙されます。
スマートカードへのアクセス中の画面
スマートカードマネージャを使用すると、スマートカード内に含まれている以下のような種類のデータを列挙したり、取得したり、また新たに書き込んだりすることができます。
- X.509 形式の証明書オブジェクト
- RSA 形式の秘密鍵オブジェクト
- 任意の形式のデータ (バイナリデータ)
スマートカードへのオブジェクトの書き込み
スマートカードが、オブジェクトの書き込みに対応しており、新しいオブジェクトを書き込みたい場合は [カードへ書き込み] ボタンをクリックします。すると、[オブジェクトの種類の選択] ダイアログボックスが表示されます。ここで [証明書]、[秘密鍵] または [任意のデータ] を選択してから [OK] をクリックし、「書き込みたいファイル」を指定してください。
スマートカードへのオブジェクトのインポート画面
また、書き込む際に、スマートカード内に新しく作成する「オブジェクト名」を指定する必要があります。オブジェクト名には「任意の英数字」を指定することができますが、スマートカードによっては使用することができる文字に制限のあるものもあります。
インポートするオブジェクトの名前の入力画面
スマートカードからのオブジェクトの読み込み
スマートカード内の「証明書オブジェクト」と、任意の形式の「バイナリデータ」を読み込むことができます。「秘密鍵オブジェクト」を読み込むことはできません。オブジェクトを読み込むには 、オブジェクトを選択してから [カードから読み込み] ボタンをクリックし、名前を付けて保存してください。
新しい証明書と RSA 秘密鍵を作成してすぐにスマートカードに書き込む方法
[新しい証明書と秘密鍵を作成してカードに書き込む] ボタンをクリックすると、新しい「証明書」と「RSA 秘密鍵」を作成して、すぐにスマートカードに書き込むことができます。作成する証明書の種類としては、「ルート証明書」または「他の証明書によって署名された証明書 」を選択することができます。また、証明書の各種「サブジェクト名」もここで設定します。
新規証明書と秘密鍵の生成画面
VPN サーバー管理マネージャでのスマートカードマネージャの起動
VPN Server 用の管理ツールである「VPN サーバー管理マネージャ」にも、「VPN クライアント接続マネージャ」と同様のスマートカードマネージャが搭載されています。VPN サーバー管理マネージャでスマートカードを管理するためには、最初の画面で、[スマートカードマネージャ] ボタンをクリックしてください。
4.6.4 スマートカードオブジェクトの削除
スマートカードがオブジェクトの削除に対応していれば、スマートカード内のオブジェクトを削除することもできます。削除したいオブジェクトを選択してから 、[カードから削除] をクリックしてください。なお、一度削除したオブジェクトは二度と復元できませんのでご注意ください。
4.6.5 PIN コードの変更
スマートカードは「PIN コード」によって保護されています。スマートカードの PIN コードを変更する場合は、[PIN コードの変更] ボタンをクリックしてから、「現在の PIN コード」と「新しい PIN コード」を入力します。なお、スマートカードによっては、PIN コードの変更に対応していない場合もありますのでご注意ください。そのような場合、そのスマートカード用の専用アプリケーションを使用すると PIN コードを変更できるものもあります。
スマートカードの PIN コード変更画面
4.6.6 スマートカード認証時の VPN Server への接続
VPN Server への接続設定で、ユーザー認証の種類として [スマートカード認証] を選択した場合は、VPN Server への接続時にスマートカードを挿入して「PIN コード」を入力するための画面が表示されますので、PIN コードを入力してください。
スマートカード使用時の PIN コード入力画面
4.6.7 対応する PKCS#11 の DLL ファイル名一覧
SoftEther VPN Client では、Windows のシステムフォルダと実行ファイルの置かれたフォルダから、下記の一覧にある DLL ファイルを検索することでスマートカードを検出しています。
対応する PKCS#11 の DLL ファイル名 |
---|
DNPS9P11.DLL EP1PK111.DLL DNPFP11.DLL ETPKCS11.DLL F3EZSCL2.DLL ASEPKCS.DLL PK2PRIV.DLL DSPKCS.DLL JPKIPKCS11.DLL P11STD9.DLL P11STD9A.DLL K1PK112.DLL libmusclepkcs11.dll aetpkss1.dll LTPKCS11.dll ep2pk11.dll icardmodpk.dll gtop11dotnet.dll gtop11dotnet64.dll |
PKCS#11 ドライバの DLL ファイルがシステムフォルダに存在する場合でも、ファイル名がこの一覧にあるファイル名と違っている場合には読み込めません。逆に、この一覧にない DLL ファイル名を持つドライバをご利用の場合は、この一覧にあるファイル名にコピーすることで利用できる場合があります。
32-bit 環境では、32-bit 版の、64-bit 環境では、64-bit 版の PKCS#11のライブラリ DLL が必要となります。
4.6.8 制限事項
「SoftEther VPN」の「スマートカード機能」を使用する際には、下記のような制限事項および注意事項があります。
- Windows 版の SoftEther VPN Client でのみに対応しています。
- PKCS#11 に対応したスマートカードでも対応していない場合があります。
- SoftEther VPN が、PKCS#11 ドライバなどの外部のプログラムを呼び出す場合、ユーザーは呼び出す先の外部のプログラムの提供者が定めるライセンス契約の内容に従って 、その外部のプログラムを使用しなければなりません。
- スマートカードへの証明書や秘密鍵の書き込みは、SoftEther VPN の持つ「スマートカードマネージャ」で行うことも可能ですが、スマートカードに付属しているユーティリティや市販の PKI ソフトウェアを使用することを推奨します。