SSL-VPN
自宅パソコン等から会社へのVPN接続に向いているSSL-VPNについて説明しています。
SSL-VPNの概要
SSL-VPNは自宅パソコン等からリモート接続する時に使われます。

SSL-VPNはブラウザでWebサーバーと通信するために使うhttpsを利用してVPNを実現します。
httpsはSSLを利用して認証や暗号化を行ってhttp通信を行います。SSLがトンネルを構築するため、SSL-VPNと呼ばれます。
認証
SSL-VPNではブラウザでVPNサーバーにアクセスすると認証を開始します。ブラウザでURLを指定してWebサーバーに接続し、ログインするのと同じです。

認証は、「PPTP」で説明したワンタイムパスワードやデジタル証明書等で行います。httpsで通信するため、サーバー側は常にデジタル証明書で認証されます。
又、「L2TP/IPsec」で説明したマトリクス認証と連携出来る機種もあります。
httpsでの通信
認証が終わると専用ソフトウェアをダウンロードします。又、専用ソフトウェアによってIPアドレス等を割り当てられトンネルを構築し、httpsの暗号化により通信を行います。暗号化時の共通鍵はサーバーのデジタル証明書による公開鍵暗号方式を利用して交換されます。

この方法はブラウザだけでなくどのようなサービスでも社内へのアクセスを可能にしますが、専用ソフトウェアのダウンロードが必要であり、専用ソフトウェアがサポートしているOSしか利用出来ません。
リバースプロキシ方式
SSL-VPNでは「プロキシ」で説明したリバースプロキシのように振る舞う通信方法もあります。VPNサーバーに通信があると実際のサーバーに転送します。

パソコンからは本当のサーバーと区別がつかないため汎用的に使え、専用ソフトウェアも不要ですが、ブラウザから利用可能なhttp、https、ftp等に限った通信しか出来ません。
又、内部のDNSは利用出来ないため、ブラウザで指定する各URLがどのサーバーに対応しているか設定が必要です。上の図であればvpn.example.com/ftpがftpサーバーに対応しています。
このため、一部の通信で簡単にリモート接続を実現するために向いていますが、不特定多数のサーバーに様々なプロトコルで通信するといった汎用的な利用には向いていません。
SSL-VPNは認証時のハッシュや暗号方式で使うアルゴリズムを機器間で最初に決めています。
このため、古いOSのパソコンが接続してきた場合は脆弱性があるアルゴリズムで通信する可能性があります。
これを避けるため、最も安全なアルゴリズムで長い鍵長を選択すると安全性は高まりますが、全ての機器が同じアルゴリズムや鍵長をサポートしている訳ではないため、実際の構築では接続が予想されるパソコンでサポートしているアルゴリズムや鍵長を許容する必要があります。

通常、1つの機器で複数のアルゴリズムや鍵長をサポートしており、余程古い機器でない限り脆弱性の見つかっているアルゴリズムだけサポートしているという事はないため、サポートしているアルゴリズムの中から脆弱性のあるアルゴリズムや鍵長を無効にし、残ったアルゴリズムだけ使えるようにすると汎用性と安全性が両立可能です。
例えば、VPNで説明した「ハッシュ」や「暗号方式」のアルゴリズムではMD5、SHA1、DES、3DESを除き、RSAでは1024ビット未満の鍵長は使えないようにします。(記述日 2013.3.31)
又、これらの組み合わせを暗号スイートと呼び、例えばTLS_RSA_WITH_AES_128_CBC_SHA256等と記載します。この場合、公開鍵暗号方式はRSA、共通鍵暗号方式はAESの128bit、ハッシュはSHAの256bitを示します。文字列の最初がTLSとなっていますが、これはSSLの後継プロトコルです。
セキュリティ強度が弱い暗号スイートを無効にする、強い暗号スイートだけ有効にするといった設定が出来る機器もあります。
その時々で推奨される暗号スイートが存在しますが、時間の経過と共に変わっていくと思われます。
SSL-VPNのメリット
SSL-VPNのメリットは専用ソフトウェアを事前に設定してサーバーに配置しておけば、ダウンロードしたパソコン側で設定が不要な点です。リバースプロキシ方式であれば専用ソフトウェアも不要です。又、パソコンがファイアウォール等に守られている場合でもhttpsは通信可能な場合が殆どであり、途中の経路を心配する必要がありません。
これまで自宅パソコンやモバイル端末が社内のネットワークに接続する際、IPsecを通信可能にする、NATトラバーサルを有効にする等多くの制約がありましたが、SSL-VPNでは制約が殆どなく多くの環境で利用が可能です。