1.5 セキュリティの強化

    企業内ネットワークなどで、基幹通信を担うことを目的として設計・開発された SoftEther VPN ソフトウェアでは、十分なセキュリティの確保が重要な事項の一つとなっています。SoftEther VPN ソフトウェアは、旧来の VPN ソリューションと比べて高度なセキュリティ機能が追加されている上に、小規模な VPN から企業の基幹業務での使用に耐えうる VPN 構築のために、十分な安全性が提供されています。ここでは、SoftEther VPN が提供する「セキュリティ機能」について解説します。

    1.5.1 豊富なユーザー認証オプション

    SoftEther VPN Server に、SoftEther VPN Client や SoftEther VPN Bridge などが VPN 接続する際のユーザー認証の種類は、単純なパスワードベースのデータベース以外にも、さまざまな方法が使用可能となりました。すべてのユーザー認証の種類やパラメータを、ユーザーごとに細かく設定することができ、またユーザーデータベースは仮想 HUB 単位で管理されているために、仮想 HUB 間では互いに独立しています。

    利用できるユーザー認証方法には、以下のようなものがあります。詳しくは、「2.2 ユーザー認証」 をお読みください。

    • 匿名認証
      匿名認証」は、「ユーザー名」さえ知っていれば誰でも接続可能なユーザー認証の方法であり、広く一般に提供する仮想 HUB サービスなどを設置する場合に使用します。企業などでは、通常は使用しません。
    • 標準パスワード認証
      「標準パスワード認証」は、「ユーザー名」と「パスワード」によってユーザー認証を行う方法であり、最も簡単にセキュリティを維持することのできる方法です。またユーザーは自己のパスワードを VPN Client を使っていつでも変更可能です。パスワードは「ハッシュ化」されて格納され、その上、認証時には「チャレンジアンドレスポンス方式」によるパスワードの確認が行われるため、パスワード本体や格納されているハッシュデータでさえもネットワーク上に流れることはありません。
    • Radius サーバー認証
      企業などがすでに所有している「Radius 認証サーバー」を用いてユーザー認証を行う方法です。
    • NT ドメインおよび Active Directory 認証
      企業などがすでに所有している「Windows NT ドメインコントローラ」または「Windows 2000 / Server 2003 の Active Directory ユーザーデータベース」を用いてユーザー認証を行う方法です。
    • 証明書認証 (PKI 認証)
      VPN 接続者が VPN Server に対して「クライアント証明書」を提示することにより、接続者が「秘密鍵」を保有しているかどうかを、数学的な計算によって識別することができるユーザー認証方法であり、パスワードなどの固定文字列を使用しないため最も安全なユーザー認証の方法です。

    1.5.2 強力な暗号化

    SoftEther VPN プロトコルは、すべての通信内容やユーザー認証にかかわるデータを「SSL (Secure Socket Layer)」によって暗号化します。SSL は、インターネット業界で標準のセキュアプロトコルであり、一般的には HTTP サーバーと Web ブラウザとの間の通信に使用されています (HTTPS プロトコルと呼ばれます)。

    SSL にはいくつかのバージョンがありますが、SoftEther VPN が対応しているのは最も安全であるとされる「SSL バージョン 3」のみであり、脆弱性のある古いバージョンの SSL プロトコルは一切使用しないようになっています。

    SSL が提供するのは主に「暗号化」、「電子署名」および「証明書検証」の 3 つの機能です。SoftEther VPN ではこれらの 3 つの機能をすべて活用して、SoftEther VPN Server と VPN 接続元との VPN セッションを安全に維持するようになっています。

    SoftEther VPN に実装されている SSL では、暗号化に使用するアルゴリズムと電子署名に使用するアルゴリズムは固定ではなく、対応している任意のアルゴリズムを VPN Server の管理者が選択できるようになっています。デフォルトでは、「RC4 128 bit 暗号化アルゴリズム」と「MD5 ハッシュアルゴリズム」が選択されていますが、その他「DES」や「AES」、「SHA-1」などのアルゴリズムを、ビット数を指定して選択することができます。

     

    1-5-1.png

    各種暗号化アルゴリズムによる VPN セッションの強力な暗号化

     

    1.5.3 サーバー証明書の検証

    旧来の多くの VPN プロトコルは、VPN サーバーに接続してきた接続元ユーザーを識別して認証を行う「ユーザー認証」の機能を持っています。しかし、逆に現在接続しようとしている VPN サーバーが本物であるかどうかを VPN クライアントの側が確認する機能はないものが大半です。

    しかしながら、インターネットのような公共の IP ネットワークを使用して VPN を構築する場合では、途中の回線上に悪意を持ったクラッカーなどが潜んでおり、そこで偽の VPN Server を設置して、「Man in the Middle 攻撃 (中間攻撃)」によって、クライアントからの VPN 通信を中継して、VPN 内で流れているパケットを盗聴したり改ざんしたりすることが可能です。

    HTTPS や SSH などの、よく使用されているプロトコルは、接続先の Web サーバーや SSH サーバーの証明書を検査して、その証明書が正しいものである場合のみ接続を行い、正しくない証明書である場合は接続を中断して、警告を表示するという機能を持っています。VPN 通信においても、途中の回線上の成り済まし攻撃や Man in the Middle 攻撃などを防ぐためには、このような「接続先サーバーの正当性チェック」の仕組みが必要となります。

    SoftEther VPN は、接続先のサーバーが提示したサーバー証明書が信頼できる証明書であり、またサーバーがその証明書に対応する RSA 秘密鍵を所持しているかどうかを、数学的な計算によって検証することが可能になっています。信頼できない証明書を接続先の VPN Server が提示した場合は、そのサーバーへの VPN 接続を中止し警告を表示します。SoftEther VPN は信頼できる証明書の一覧を管理しており、信頼できる証明機関の証明書によって署名されていない証明書は信頼できないと見なします (証明書一覧はユーザーが管理することができます)。

    サーバー証明書の検証は、遠隔地の VPN Server に通常の方法で接続する VPN Client や、カスケード接続する VPN Server や VPN Bridge などの接続元ソフトウェア側で行うことができます。サーバー証明書の検証について、詳しくは 「4.4 VPN Server への接続方法」 などをお読みください。

    1-5-2.png

    VPN Server が提示するサーバー証明書の検証

    1.5.4 スマートカードへの対応

    VPN Server へ VPN 接続をするためにユーザー認証を行う際に、パスワード認証や通常の証明書認証を使用すると、ある程度のセキュリティを確保することが可能ですが、以下のような、いくつかの問題もあります。

    • パスワード認証を使用している場合は、パスワードの長さや複雑さを十分なものにしなければ、パスワードを推測されて侵入される危険性があります。また、パスワード入力の覗き見などによって、パスワードを第三者が入手した場合、その第三者によって侵入される可能性もあります。
    • 証明書認証は、パスワード認証よりもセキュアな認証方法を提供しますが、通常の運用方法では証明書の秘密鍵データはコンピュータのハードディスク内に格納されます。悪意のある第三者によってコンピュータのハードディスクが盗まれたり、証明書データのみが抽出された場合などでは、その証明書の秘密鍵データを用いて、第三者がユーザーに成り済まして VPN サーバーに接続できてしまう可能性があります。

    SoftEther VPN では、VPN Server に VPN Client が接続する際のユーザー認証として証明書認証を使用する場合、「証明書」および「RSA 秘密鍵データ」を、コンピュータのハードディスクではなく、外部の「スマートカード」やその他の「ハードウェアセキュリティトークンデバイス」に書き込んでおき、VPN Server への接続を行う際に毎回入力することによってユーザー認証を行うことが可能になっています。

    スマートカードやその他のハードウェアセキュリティトークンデバイスは、内部に RSA の演算を行うチップを持っており、スマートカード内のメモリから外部へ秘密鍵を書き出すことなく、証明書と秘密鍵を用いた電子署名を行うことができます。また、SoftEther VPN では、すでに存在するスマートカード内に格納されている証明書および秘密鍵オブジェクトを指定して、それをユーザー認証のために利用することもできます。

    スマートカードやその他のハードウェアセキュリティトークンデバイスは、ハードウェアの仕組みとして、一度内部に書き込んだ秘密鍵データは、外部に抽出することができないようになっています。また、スマートカードにアクセスするために数桁の「PIN コード」によって内部のデータを保護し、PIN コードが一致しない場合は、スマートカード自身が外部からのアクセスを停止するような仕組みもあります。このような仕組みがあるため、スマートカードに秘密鍵を入れておき、VPN Server への接続時に、スマートカード内の秘密鍵を用いてユーザー認証を行うことにより、たとえコンピュータ本体やスマートカードを紛失したり盗難に遭った場合でも、悪意のある第三者による成り済ましの不正アクセスを防止することができます。

    スマートカードを利用したユーザー認証機能の使い方については、「4.6 スマートカードの使用と管理」 をお読みください。

    1-5-3.png

    スマートカード認証

    1.5.5 日本国住民基本台帳カードへの対応

    SoftEther VPN は、日本国のほぼすべての市町村で発行を受けることができる「住民基本台帳カード」に対応しており、住民基本台帳カード内に都道府県知事が署名した「電子証明書」と「秘密鍵データ」が書き込まれていれば、その証明書データを用いて SoftEther VPN Server へ VPN 接続する際のユーザー認証を行うことができます。

    一般的に、スマートカードソリューションは導入コストが高額であり、大きな初期投資を行う必要があります。小規模環境で実験的にスマートカードを使用した証明書認証を用いた VPN へのアクセスを行いたい場合などでも、少数枚数のスマートカードを発行し、電子証明書を書き込んでもらうサービスを、既存のスマートカード取り扱い業者から受けるにはコストがかかってしまいます。

    しかし、市役所などで住民基本台帳カードの発行を受け、公的個人認証サービスを購入することにより、住民基本台帳カードを SoftEther VPN におけるユーザー認証のための「セキュリティトークン」として利用することができます。また、ユーザー認証に使用される証明書は、都道府県知事の電子証明書によって署名されたものであることが数学的に検証可能であり、あらかじめ都道府県知事の電子証明書を、VPN Server 側の信頼できる証明機関の証明書一覧に登録しておくことにより、住民基本台帳カードによるユーザーごとの認証を正確に行うことができます。

    1-5-4.gif

    日本国住民基本台帳カードとスマートカードリーダ