2.3 サーバー認証
前項 「2.2 ユーザー認証」 では、PacketiX VPN Server が接続してきた VPN
クライアントコンピュータを認証する方法について解説しました。「サーバー認証」は、逆に PacketiX VPN Server に接続しようとする
VPN クライアントコンピュータ (VPN Client や、カスケード接続を行おうとする VPN Server / VPN Bridge)
が、接続先の VPN Server
が「本物」であるかどうかを検証する機能です。サーバー認証は通常の使用方法では必須ではないためデフォルトでは「オフ」に設定されていますが、クライアント接続設定またはカスケード接続設定ごとに有効にすることもできます。ここでは、「サーバー認証」に関する事項について解説します。
2.3.1 サーバー認証の必要性
インターネットなどの公共 IP ネットワークにおける中間攻撃について
「サーバー認証」は、インターネットのような信頼できない公共ネットワークを用いて VPN Server に対して接続する際に、接続先の VPN
Server が本物であるかどうかを検証する際に必要です。IP
ネットワークにおいては、回線の途中にプロトコルを書き換える特殊なソフトウェアを仕掛けることによって、悪意のある第三者が本物の VPN Server
に接続しているように見せかけて、実際には偽の VPN Server に接続させるようにすることが技術的に可能です。また、偽の VPN
Server から、実際のユーザーが接続を意図している先の VPN Server に接続をリダイレクトすることによって、悪意のある第三者は VPN
内を流れるすべてのパケットを一旦解読して読み取り、それを再度暗号化することによって目的のホストに送信することで、ユーザーに一切気付かれることなく
VPN 通信の内容を盗聴したり、書き換えたりすることが可能です。
これらの方法は「中間攻撃」、「中間者攻撃」、「リダイレクト攻撃」、「Man in the Middle Attack」または「Person
in the Middle
Attack」などと呼ばれる攻撃方法です。現実的には、インターネットのバックボーンを流れるトラフィック量は膨大であるため、バックボーンに対してこれらの攻撃を行うための特殊なソフトウェアをインストールすることは困難ですが、ネットワークの支流の、それほどスループットが高くない部分では、この攻撃が成功することもあります。
したがって、もし上記のような攻撃方法によって VPN
通信するデータが盗聴されたり改ざんされたりすることを未然に防ぎたい場合は、サーバー認証機能を使用してください。
証明書によるサーバー認証の仕組み
「証明書によるサーバー認証」は、「2.2.5 固有証明書認証」
で解説されているようなクライアント証明書認証と逆の役割で証明書を検証することによって、接続先の VPN Server
の正当性を検証します。接続先の VPN Server は X.509 証明書とそれに対応した秘密鍵データを持っており、VPN Server
に接続しようとする VPN クライアントコンピュータ (VPN Client や、カスケード接続を行おうとする VPN Server / VPN
Bridge) は、その証明書の内容を検査することによって、接続先の VPN Server
が信頼できるかどうかを評価します。この際の証明書の検証には RSA アルゴリズムが使用されるため、VPN Server
は証明書に対応した秘密鍵を持っている必要があります。
これらの検証に失敗したり、サーバーが提示した証明書の有効期限が切れている場合は、接続先 VPN Server
の信頼性が不十分でないと判断し、VPN 接続を中断します。
インターネットの Web
サイトでは、このような「サーバー証明書」を用いたサーバーの正当性検証の技術が以前から利用されています。HTTPS プロトコル
(HTTP over SSL) によって SSL 暗号化に対応した Web サイトに接続すると、Web ブラウザは Web
サーバーが提示した証明書の内容を検証し、それが信頼できる場合は Web
サイトへのアクセスを許可し、信頼できないと判断した場合は接続を切るかユーザーに対して警告を表示します。 |
VPN Server に接続しようとする VPN クライアントコンピュータ (VPN Client や、カスケード接続を行おうとする
VPN Server / VPN Bridge) が、接続先の VPN Server
が提示した証明書を信頼するかどうかを判断するためには、下記の 2 種類の方法があります。
2.3.2 サーバー固有証明書認証
「サーバー固有証明書認証」は、VPN Server への接続設定ごとに、接続先の VPN Server の X.509
証明書をあらかじめ登録しておき、VPN Server への接続時に VPN Server
が提示した証明書が事前に登録しておいた証明書と完全に一致した場合のみ VPN Server
への接続を続行し、一致しない場合は接続を切断する認証方法です。
この方法は、接続先の VPN Server のサーバー証明書をあらかじめ持っている場合に使用することができます。また、VPN Client
でサーバー証明書の確認を有効にするモードを「有効」にした状態で接続先の VPN Server
に初めて接続すると、証明書の内容が画面に表示され、その証明書をサーバー固有証明書として登録するかどうかというメッセージが表示されます。ここで
[はい] をユーザーが選択すると、次回から VPN Server
へ接続する際のサーバー固有証明書として、初回に接続したときの証明書が検証に使用されます。
2.3.3 サーバー署名済み証明書認証
「サーバー署名済み証明書認証」は、VPN 接続を行う VPN クライアントコンピュータ側で信頼するルート証明書
(または中間証明書でも構いません) の一覧を持っておき、接続先の VPN Server
が提示した証明書が信頼する証明書のいずれかによって署名されている場合に、接続先の VPN Server を信頼し接続を続行するという認証方法です。
社内にいくつかの VPN Server があり、または今後 VPN Server の数が増えると予想される場合に、各 VPN
Server のサーバー証明書を会社のルート証明書によって署名しておき、それらの VPN Server
に接続しようとするクライアントは、そのルート証明書を信頼する設定にしておくことによって、 VPN Server
が提示する証明書がルート証明書によって署名されていれば、そのサーバーは本物であると判断することができます。
このような SSL
接続時に、接続先サーバーの証明書が信頼できるかどうかを信頼できるルート証明書の一覧によって検査する方法は、以前からインターネット上の
SSL Web サイトで使用されています。インターネット用の Web ブラウザには「VeriSign」などのいくつかの有名な証明機関の証明書が登録されているため、それらの証明機関によって署名された電子証明書を提示するサーバーは、信頼できる可能性が高いということになります。 |
|