2013-02-18

OpenVPN 認証方法についてのまとめ - 後編

By Taro Yamazaki  |  22:00

前回から、OpenVPNで使用できる認証方法について取り上げています。前回は静的鍵(Static Key)と証明書認証の2つの方法を取り上げました。今回は残る2つ、ID/パスワード認証二要素認証(PKCS#12)を取り上げましょう。



ID/パスワード認証

OpenVPNでは証明書認証に次いでよく使用される認証方式です。ユーザーが接続時にID/パスワードを入力し、両者が正しかった場合にVPN接続が開始されることになります。
OpenVPNでは、ID/パスワード認証はプラグイン方式になっています。認証の仕組みはプラグインとして実装しておき、それを呼び出すことで認証を実行します。プラグインの作成も比較的容易です。
ID/パスワード認証の基本的な設定についてはこちらを、ユーザーデータベースにsqliteを利用した認証プラグインのサンプルについてはこちらの記事を参照してください。

利点

ユーザーにとってわかりやすいこと、証明書などのファイル管理が不要なことなどは、管理者にとって大きなメリットです。
また、認証処理自体はプラグイン方式になっているため、さまざまな認証方法(ユーザー情報データベースからの検索や、LDAP認証、ワンタイムパスワードなど)を柔軟に使用できるというメリットもあります。

欠点

手軽であることの裏返しとして、セキュリティ面での安全性は証明書認証にはかないません。ID/パスワードが流出すれば、第三者がVPNに接続できてしまうというリスクが伴います。
また、認証プラグインの導入が必要になります。セットアップは初回導入時だけとはいえ、やや手間がかかるのは避けられません。LDAPを認証に使うopenvpn-auth-ldapなどが公開されていますが、使用できるプラットフォームが限定されていたりと、手軽に使える認証プラグインがまだあまり存在していないというのも事実です。

二要素認証(PKCS#12)

PKCS#12の機構を利用して、セキュリティトークンなどを使った二要素認証にも対応できます。

利点

安全性の高さはトップクラスと言えます。

欠点

とにかく、セットアップが非常に難しいのが最大の問題です。ユーザーに配布するセキュリティトークンの導入などに伴うコストも他の認証方式にはない問題です。

というわけで、ざっとまとめるとこんな感じでしょうか。

方式安全性拡張性管理の簡単さ
静的鍵★★☆☆☆★☆☆☆☆★★★★★
証明書認証★★★★☆★★★★★★★★☆☆
ID/パスワード認証★★★☆☆★★★★☆★★★★☆
二要素認証(PKCS#12)★★★★★★★★★☆★☆☆☆☆

では、どれを選択すべきか...

ユーザー数が少ない場合、安全性を特に重要視する場合は、証明書認証が第一候補になります。認証用プラグインも不要ですので、追加のソフトウェアもインストールせずにすぐに使えます。ユーザー数がある程度多くなってくると判断に迷うところですが、流用したいユーザーデータベースなどが存在していないのであれば、安全性の面からは証明書認証から検討するのが望ましいと思います。初回の導入はちょっと面倒でもいいから、今後の管理の手間を削減したい、ということであればID/パスワード認証が有力でしょう。

既にActive Directoryなどで大規模なユーザーデータベースが存在している場合は、ID/パスワード認証を使って既存のデータベースを参照するのが最善でしょう。もしセキュリティをさらに高めたければ、データベース内のパスワードをそのまま使わず、そのパスワードをベースにしたワンタイムパスワードを使うという方法もあります(時刻ベースのワンタイムパスワード(TOTP)の仕組みについてはこちらを参照してください)。

Author: Taro Yamazaki

© 2015 yamata::memo | Distributed By My Blogger Themes | Created By BloggerTheme9
TOP