OpenVPN&セキュリティ情報
2013-02-15
OpenVPN 認証方法についてのまとめ - 前編
OpenVPNでは、いくつかの認証方法が利用できます。How Toでも一通り説明されていますが、やや難しいので、ここらでちょっとまとめてみたいと思います。OpenVPNで使用できる認証方法は、 (1) 静的鍵(Static Key)、(2) 証明書認証、(3) ID/パスワード認証、(4) 二要素認証(PKCS#12)の4つになります。今回はそのうちの2つを取り上げましょう。
静的鍵(Static Key)
サーバーとクライアントで同じファイル(静的鍵ファイル)を保持しておいて、その両者が一致することで接続を許可する仕組みになります。ある意味では、このファイルがパスワードの役割を果たしているとも言えます。さらに、この静的鍵ファイルはデータを暗号化する際の鍵としても使用されます。利点
とにかくセットアップが簡単なことです。サーバー側で鍵を生成し、それをクライアントにコピーしておくだけで使えます。OpenVPN設定ファイルもいくつかの基本的な設定だけでつなぐことができます。
いかに設定が簡単なのかはこちらのページでもお分かりいただけるでしょう。
いかに設定が簡単なのかはこちらのページでもお分かりいただけるでしょう。
欠点
最大の難点は1対1の接続しかできないことです。拡張性はゼロと言っていいでしょう。
また、セキュリティ面のリスクとして、PFSが保たれていないことが挙げられます。実際にこれが問題になるかどうかは別として、理論上は弱点とされます。
また、セキュリティ面のリスクとして、PFSが保たれていないことが挙げられます。実際にこれが問題になるかどうかは別として、理論上は弱点とされます。
証明書認証
OpenVPNではスタンダードと言ってもいい方法です。認証機関を自前で設置(easy-rsaなどを使用)し、証明書と秘密鍵で認証する方法で、サーバーごと、クライアントごとに個別の秘密鍵、証明書を生成します。
利点
手間はかかりますが、拡張性、安全性が高く、バランスの取れた方法と言えるでしょう。さらに、秘密鍵にパスワードを付加すれば、万が一秘密鍵が流出してもVPNに接続されることを防止することもできます。
欠点
証明書認証の欠点は、管理者の負担がとにかく大きいことです。
まず、手始めに認証機関のセットアップが必要なことが挙げられます。これは手順さえ理解すればそれほど面倒なことではありません(個人的には、easy-rsaがOpenVPNのパッケージに含まれなくなったのはさらに面倒になった気がしますが...)。
次に、サーバーごと、クライアントごとに、秘密鍵、証明書を生成、管理する必要があります。証明書には有効期限もあるため、期限が切れる頃には更新処理も必要です。サーバー数やクライアント数が多い場合には、これはかなり頭の痛い問題になります。
まず、手始めに認証機関のセットアップが必要なことが挙げられます。これは手順さえ理解すればそれほど面倒なことではありません(個人的には、easy-rsaがOpenVPNのパッケージに含まれなくなったのはさらに面倒になった気がしますが...)。
次に、サーバーごと、クライアントごとに、秘密鍵、証明書を生成、管理する必要があります。証明書には有効期限もあるため、期限が切れる頃には更新処理も必要です。サーバー数やクライアント数が多い場合には、これはかなり頭の痛い問題になります。
さらに、「証明書認証という概念は、ユーザーにとってわかりにくい」という事実が管理者の負担に拍車をかけます。「ファイルで認証する」というのは一般のユーザーにとっては非常に分かりにくいものです。VPNの規模が大きい場合、セットアップ中のユーザーからの問い合わせや、「秘密鍵や証明書を紛失してしまった」という連絡に追われる可能性もあります(いくら「大切なファイルですよ!」と念押ししても、消されちゃったりするんです...)。その際の証明書の再発行、失効手続きなども管理者にとっては手間のかかる作業です。
Profile
- 山崎 太郎 (Taro Yamazaki)
- プラムシステムズ株式会社所属。 主にVPN(OpenVPN)やセキュリティ関連技術、Webアプリケーションを手がけています。
Page Views
Popular Posts
-
「VPNっていろいろあるけど、OpenVPNのメリットって何?」 という疑問は多くの方が持たれますよね。この点は公式サイトなどにもいろいろ書かれているのですが、実際に使ってきたユーザー側としてメリットと思う部分をまとめてみました。
-
現在ダウンロードできるOpenVPNでは、今まで認証局の構築で使用していたeasy-rsaが含まれなくなっています。 OpenVPN.netのダウンロードページ にも Note that easy-rsa is no longer bundled with OpenVPN...
-
Jan Just Keijser氏の記事「 Optimizing performance on gigabit networks 」については こちら でも概要を取り上げましたが、記事全体にいろいろなヒントが含まれていますので、全文の日本語訳を掲載しています。意訳している部分も...
-
OpenVPNでは、接続してきたクライアントのVPNアドレスは動的に割り振られます(その際に割り振られる際のアドレス範囲はOpenVPNサーバー側設定ファイルに基づきます)。特定のVPNクライアントに特定のVPNアドレスを割り振りたい場合、OpenVPNでは以下の2つの方法で設定...
-
では、いよいよiPhone構成ユーティリティでVoDの設定をしてみましょう。あ、 前の記事 での準備はきちんとやっておいてくださいね!
-
前回 は2つのワンタイムパスワードの生成方法について取り上げました。今回はいよいよ実際の生成アルゴリズムを取り上げましょう。TOTPをベースに説明します(ただ、前回も解説したように、基本的なロジックはTOTPとHOTPで同じです)。 参考としてpythonのコードも併記してみま...
-
現時点においてはマニュアルやHowToにも記載されていない(ChangeLogにちょっとだけ出てきます)あまり知られていない機能なのですが、「設定ファイルで鍵ファイルや証明書ファイルのパスを記載する」という通常の方法とは別に、「鍵ファイルや証明書ファイル内のデータをそのまま設定フ...
-
OpenVPNはLinuxをはじめとした幅広いプラットフォームで動作実績があるのが特徴の一つです。 今回は、最近の電子工作ブームでも話題のシングルボードPC 3機種をOpenVPNサーバーとしてセットアップし、OpenVPNのVPNパフォーマンスを測定してみましょう。 ...
-
前回 はワンタイムパスワードの基本的な仕組みについて説明しました。サーバー側とクライアント側で、それぞれ共通のルールに基づいてパスワードを生成させる必要があることを取り上げましたが、今回は OATH が規定しているその生成ルールについて具体的に説明します。 ワンタ...
-
OpenVPNを使用している方ならよくご存知だと思いますが、通常OpenVPNでは証明書認証を使用します。証明書認証はID/パスワード認証に比較すると安全性が高いとされます(もちろん、秘密鍵の管理方法に大きく依存します)が、証明書認証の概念を理解しにくいユーザーが秘密鍵や証明...
© yamata::memo 2013 . Powered by Bootstrap , WebLyb