自宅サーバ構築時のメモ(OpenVPN編)

自宅サーバ構築時のメモ続き。OpenVPN編はなぜセキュアなのか?編です。単純に構築だけするなら以下のエントリを参照してください。

CentOS5.0でOpenVPNを構築してみる。

■「なぜOpenVPNはセキュアなのか」の前に

セキュアじゃないVPNソフトはあるのか?って話になります。世間ではPPTPがアンセキュアとか言われてるけど、いまいち実感がわかないんですけどね。えーっとなんか認証部分が微妙とかそういう話だっけ?(←なげやり)

お、このページによれば

  • NATとの相性が悪い
  • トンネルに対する認証がない(? DoS攻撃)
  • 暗号化に若干の脆弱性(プロトコルの脆弱性ではなく、実装の脆弱性)

だって。NATとの相性が悪いのはIPSecも同じなので、やっぱ認証の問題が大きいんですかね。暗号化の脆弱性ってのはWindowsのPPTPの問題っぽいです→参考リンク

ここらへんは本を読んで一度は理解したんですが、技術から離れると忘れちゃいますねー。うん。詳しくロジック知りたければこの本を買うといいよ!

ネットワークマガジン編集部
アスキー (2007/03/15)
売り上げランキング: 90146

一冊まるまるVPNづくし、しかもイラスト多いのでかなり分かりしやすいですよ。僕も新人の頃はお世話になりました(今じゃ忘れました)

■なぜOpenVPNはセキュアなのか

OpenVPNがセキュアな理由。それはOpenVPNが公開鍵基盤(PKI)を使ったサーバ-クライアント構成だからです。これならVPNの事を知らない人でも分かると思うし、僕レベルの知識でもセキュアであることを説明できます。OpenVPN構築時のサーバ-クライアントの持ち物は以下の通りです。

  • サーバ側
    • CA証明書
    • サーバ証明書(サーバ公開鍵付き)
    • サーバ秘密鍵
    • DH鍵
  • クライアント側
    • CA証明書
    • クライアント証明書(クライアント公開鍵付き)
    • クライアント秘密鍵

クライアントの証明書と秘密鍵はサーバで生成して安全な経路(フロッピーとか)でクライアントに移したものとします。通信の手順は以下の通り。PKIのルールに基づいています。

  1. まずクライアントがクライアント証明書をサーバに送ります。
  2. サーバはクライアント証明書を確認した後、クライアント証明書に付属しているクライアント公開鍵を使って通信内容を暗号化してクライアントに返します。
  3. クライアントはクライアント秘密鍵を使ってサーバからの通信を解読します。この時、OpenVPNではパスワードの入力を必要とします。仮にクライアント秘密鍵が漏れてもパスワードが分からないと使えない仕組みです。
  4. クライアント→サーバに通信するときも同じ事を行います。
  5. サーバ-クライアント間でセキュアな経路が確立できたのでOK。

つうかまんまPKIの説明ですけどね。僕の知識ではこれ以上踏み込めないので…。その代わりといっちゃなんですが、参考文献を挙げておきますね。

5分で絶対に分かるPKI
一番簡単と思われるPKIについての説明。本当に分かりやすい。

OpenVPN 2.0 HOWTO Japanese Translation
OpenVPN本家の説明文の日本語訳。詳しく勉強したいのならこれ。デフォルト設定以上にセキュリティを強化する方法も掲載されています。

Open Tech Press | SSL VPN と OpenVPN:多くの嘘とわずかな真実
OpenVPNがいかにセキュアかを説明した記事。

という話でした。詳しいことが分からなくても「PKIと同じだよー」ということが理解できれば、安心感が得られると思って書きました!