BLOGTIMES
2017/05/26

PacketiX VPN のスマートカード認証に YubiKey 4 Nano を使う

  softether  yubikey  smartcard 
このエントリーをはてなブックマークに追加

[正規販売代理店品]YubiKey 4 Nano

SoftEther の商用版である PacketiX ではユーザー認証にスマートカードが使えるという機能がありますが、肝心の一般の人が気軽に手に入れられる スマートカード(というか、PKCS#11 トークン)がないという問題がありました。今回、いろいろと検証したところ、個人でも購入可能な YubiKey 4 Nano が使えることが分かりました。

YubiKey からは秘密鍵は取り出せないので、VPN の安全性を高めることができます。
以下、設定方法のメモ。

YubiKey の準備

まず、YubiKey の方は PIV Tools を使って、PIN(暗証番号)の設定と証明書の生成を済ませておきます。

証明書は必ず RSA にするようにします。キー長は PacketiX の仕様では 1024bit までとなっていたはずですが、検証したところ YubiKey 4 Nano では 2048bit でも動きました。CN や署名方法については VPN サーバのポリシーに従ってください。とりあえず使えれば良いのであれば、自己署名(self-signed)にして、CN も適当なもので大丈夫です。
Generate New Key - PacketiX VPN のスマートカード認証に YubiKey 4 Nano を使う

画面の指示に従うと、以下のような画面になるはずです。
PacketiX 側に設定する証明書が必要になるので、「Export certificate」ボタンを押して、証明書ファイルを取得しておきます。
Certificates - PacketiX VPN のスマートカード認証に YubiKey 4 Nano を使う

PacketiX サーバ側の準備

YubiKey の準備の最後に取得した証明書ファイルを、ユーザーの認証方法に指定します。
具体的にはユーザーの認証方法を「固有証明書認証」に設定し、「証明書の指定」から取得した証明書ファイルを指定します。
ユーザーの新規作成 - PacketiX VPN のスマートカード認証に YubiKey 4 Nano を使う

PacketiX クライアント側の準備

クライアントが Windows 機であると仮定すると、PKCS#11 ドライバとして OpenSC をインストールしておく必要があります。自身の環境 ( 32bit / 64bit )に合わせたインストーラーをダウンロードし、インストールを行います。

インストールが完了したら%WINDIR%\system32\opensc-pkcs11.dll というファイルができているはずなので、これを %WINDIR%\system32\P11STD9A.DLL にコピーしてやります。これは PacketiX や SoftEther が読み込む PKCS#11 ドライバの DLL 名が SoftEtherVPN/Secure.h を見ると分かるとおり、プログラム中にハードコーディングされているためです。マニュアルにもその旨の記載*1があります。ここではこれを回避するために DLL の名前を変更して PacketiX に YubiKey を LGWAN IC Card として認識させています

DLL が読み込まれるようにするため、PacketiX クライアントを既に起動している場合には一旦終了させてから、再度起動します。あとはクライアントの接続設定で、スマートカードを指定します。以下のような感じで証明書の指定ができるはずです。途中で PIN を求められるので、正しく入力してください。
スマートカード内の証明書の指定 - PacketiX VPN のスマートカード認証に YubiKey 4 Nano を使う


トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9364
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン