Security Gateway and IPsec
作成日 | 1998/Jun/09 |
最終変更日 | 2018/Nov/06 |
文書サイズ | 39KB |
このドキュメントでは、RTシリーズでセキュリティ・ゲートウェイ 機能を利用すると きに必要な知識をまとめています。 他のドキュメントを読む前に、一読されることを お勧めします。
インターネットは、数十年前に初期の運用が始まって から現在に至るまで、急速な発展を遂げてきました。 現在では、1億人にのぼる世界中の人々が、様々な目的で インターネットを利用しています。
インターネットは、世界中の様々な人々の管理によって 有機的に結合されたネットワークです。したがって、 インターネットは様々な立場の人によって、様々な方法で 管理されています。 また、様々な立場の人々がインターネットに接続し、様々 な方法でインターネットを利用しています。
ユーザは、インターネットに接続した瞬間から、間接的に 知らない人々と接触します。今、閲覧しているRTPROホーム ページの情報は、ヤマハが管理 しているサーバーから送られていますし、あなたが送信し たメールは、あなたの知らない人の手に渡り、あなたの 知らない方法で配られていきます。
インターネットを流れる情報は、一旦流れてしまえば、 発信者が伺い知ることのできない扱いを受けることに なります。郵便における書留めの サービスは、郵便物が安全に受取人の元に届くことを保証 してくれます。しかし、インターネットを流れる情報は、 内容の改竄や盗聴などの攻撃にいつもさらされています。
以下では、これまでに知られている攻撃のいくつかを 紹介します。これらの攻撃の多くは、インターネット の世界に限られたものではなく、実世界との類似性を 持っていることに気が付くでしょう。
他人の情報を盗み見ることです。インターネットを 流れる多くの情報は、特別な符号変換がなされていない 素の情報なので、盗むつもりはなくても簡単に見る ことができます。あるいは、簡単な符号変換を経た情報 なら、簡単に元の情報を再現することができます。
企業秘密をメールで流したり、遠隔地のコンピュータに ログインする際にパスワードを打てば、第三者によっ てそれらが盗聴され、悪用される可能性があります。
他人の情報を書き換えてしまうことです。例えば、 電子商取引の契約書をインターネットを通じて交換 するならば、改竄の危険性を意識しなければなりません。
完全に改竄を阻止することはできませんが、改竄の事実 を検出できれば、改竄による攻撃から身を守ることが できます。
第三者が誰か別の人の名を語り、その人になりかわることです。 例えば、悪意を持った誰かが、あなたの名前を語って、 電子メールを出すことは簡単なことであり、その場合 に生じる被害の大きさは容易に推察できます。
サーバーが処理しきれないほどの大量の要求を出して、 サービスを停止状態に追い込むことです。
例えば、銀行では引き出し限度額が設定され ていますが、一度に多くの人が引き出せば、引き出し 不能な状態に陥る可能性があります。
インターネット上でも、大量の情報を送りつけることで、 サービス拒否の状態を作り出すことができますし、それを 意図的に行えば、悪意を持った攻撃となります。
ある2つの地点間を流れる情報量を計り、解析することです。 情報量を計ること自体には攻撃的な側面はありませんが、 ある種の人々が、このデータを解析すれば、戦略的に 重要なデータが得られることがあります。
例えば、従来は全く情報の流れていなかった2つの 会社の間に、突然、大量の情報が流れるようになれば、 二者の間に何らかの新しい関係ができたことを推察 することができます。
セキュリティは、以上に挙げたような攻撃に対する防御を 提供します。防御すべき項目を整理すると、以下のように なります。
第三者による盗聴を防ぐことです。暗号技術によって 元の情報を符号変換することによって保護できます。
第三者による改竄を発見できることです。 改竄が検出できるように、チェックサムや電子署名を付加する ことで保護できます。
後から通信内容を否定できないようにすることです。 公開鍵暗号などを用いて保護することができます。
第三者によるなりすましを防ぐことです。送信者が認証情報 を付加することで保護することができます。
通信の事実を隠すことです。インターネットでは、保護が 困難です。
サービス拒否、迷惑メール、チェインメール、SPAMメール に対する防御です。インターネットでは、保護が困難なもの が多いと言われています。
当然というか、残念ながらというか、できることとできないことがあります。 IPsecを用いてIPパケットに暗号情報と認証情報を付加することにより、 以下のセキュリティを実現することができます。
[ IPsecのセキュリティ機能 ]
情報を守るための符号化処理
逆の処理は、「解読」または「復号化」といいます。
暗号を掛けたり、解読したりする為の情報
鍵がなければ復号することは困難
暗号鍵を送信者と受信者だけが知っている事を前提とした暗号化方式。
2つの鍵を使用して、その一方を公開する暗号化方式。
┃ ┃ [ 送信側 ] ┃ ┃[ 受信側 ] ┃ ┃ 情報 + 暗号鍵 ┃ ┃ ↓ ┃ ┃ ↓ 暗号化 ┃ ┃ ↓ ┃ ┃ 暗号情報 ┃ →→→→→→→→ ┃ 暗号情報 + 暗号鍵 ┃ ┃ ↓ ┃ ┃ ↓ 解読 ┃ ┃ ↓ ┃ ┃ 情報 ┃ ┃
相手や情報が正しいか識別するための処理です。 認証の信頼性を高める為、暗号化のように符号化処理を組み合わせた認証を 用いられることが多くなっています。
認証鍵によって秘密情報を変換した結果(認証情報)を相手に送ります。 相手は、認証鍵と秘密情報から正しい相手かどうか判別します。 情報を暗号化して相手に伝える場合と違って、解読する処理が ありません。
┃ ┃ [ 送信側 ] ┃ ┃[ 受信側 ] ┃ ┃ 情報 + 認証鍵 ┃ ┃情報 + 認証鍵 ↓ ┃ ┃ ↓ ↓ 暗号化 ┃ ┃ ↓ 暗号化 ↓ ┃ ┃ ↓ ↓ ┃ ┃生成した認証情報 ↓ ┃ ┃ ? 認証情報 ┃ →→→→→→→→ ┃受信した認証情報 ┃ ┃ ↓ ┃ ┃ ↓ 認証情報が一致? ┃ ┃ ↓ ┃ ┃承認 or 否認 ┃ ┃
インターネットに接続してデータ通信すると場所や時間を問わず自由に 通信できてとっても便利なのです。 反面、「公衆の場」的性格の為通信の秘密性は残念ながら低下します。 インターネットは多数のプロバイダのネットワークを繋ぎ合せて構成 されており、通信経路は特定できません。 盗聴や改竄(かいざん)などが行なわれてしまう可能性がある訳です。
たくさんの第3者 ↓ インターネット 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 ↑ ↑ プロバイダ#A プロバイダ#B # # # 専用線やISDN回線など # 専用線やISDN回線など # # +---------------+ +---------------+ |リモート ルータ| |リモート ルータ| +-------+-------+ +-------+-------+ | <拠点AのLAN> | <拠点BのLAN> ------+----------------------- ------+-----------------------
いままでは、各地に点在する拠点間の守秘性の高いデータ通信は、 セキュリティの低いインターネット経由の通信に代って、 専用線やISDN網やフレームリレー網などの一般の通信サービス網を用いて、 独自のネットワーク網(WAN接続, 遠隔地のLAN同士を接続)が 構築されてきました。
プロバイダ # # 専用線やISDN回線など # +---------------+ +---------+ |リモートルータ | | サーバ | +-------+-------+ +----+----+ | | <基幹LAN> ------+------------------+------------------------------ | +---------------+ |リモートルータ | +-------+-------+ # # 専用線やISDN回線など # +---------------+ |リモートルータ | +-------+-------+ | <遠隔地の拠点LAN> ------+-------------------------------------------------
しかしながら、インターネットの爆発的な普及で各拠点の通信や企業間のデータ通信を Internet経由で行ないたいという要求が日増しに高くなってきています。 その要求に答えるひとつの選択肢が、VPN (Virtual Private Network)なのです。
VPNを導入することにより、独自のネットワークを構築して通信していた 秘密性の高い通信をインターネット経由で行なえるようになります。
プロバイダ#A プロバイダ#B # # # 専用線やISDN回線など # 専用線やISDN回線など # # +---------------+ +---------------+ |リモート ルータ| |リモート ルータ| +-------+-------+ +-------+-------+ | <拠点AのLAN> | <拠点BのLAN> ------+----------------------- ------+----------------------- | | +-------+-------+ +-------+-------+ |リモート ルータ| |リモート ルータ| +-------+-------+ +-------+-------+ # # # # ################################### 専用線やISDN回線など
プロバイダ#A プロバイダ#B # # # 専用線やISDN回線など # 専用線やISDN回線など # # +---------------+ +---------------+ |リモート ルータ| |リモート ルータ| +-------+-------+ +-------+-------+ | <拠点AのLAN> | <拠点BのLAN> ------+----------------------- ------+----------------------- | | +-------+-------+ +-------+-------+ | セキュリティ | | セキュリティ | | ゲートウェイ | | ゲートウェイ | +-------+-------+ +-------+-------+ ? ? ? ? ??????????????????????????????????? VPN (Virtual Private Network)
このようにVPNは「仮想的な専用線接続によるネットワーク」と 見倣すことができ、ネットワーク構築の選択肢がひとつ増えました。
また、PVN (Private Virtual Network)という言葉もありますが、 類似の用語です。
RTシリーズのRev.3.00では、VPNを実現する為にIPsecを実装しました。
一般的にトンネルとは、山に穴を掘って、道路や線路などを通した ものを指しますが、データ通信の世界でも似たようなイメージを 持って頂いて構わないでしょう。
例えば、AppleTalkやNetWare(IPX)のパケットをTCP/IPネットワークを 経由して流す/通すことなんてできません。しかし、そのような通せないパケットを 無理矢理にでも通してしまう通信路を作ってしまう仕組みがトンネルです。
従来、TCP/IPで構成されたバックボーンネットワークなどがあって、
LAN-LAN間でTCP/IP以外のプロトコルの通信も行ないたい状況を
想定してください。
以下のような方法で解決されてきました。
ひとつは、IPルータをTCP/IP以外の複数のプロトコルを 通せるマルチプロトコルルータに替えたり、ブリッジ機能を 追加したりして、解決する方法。
基幹LANには、良くも悪くも様々なプロトコルのデータが流れます。
<基幹LAN> ------+------------------------------------------------- | +---------------+ | 高機能ルータ | +-------+-------+ # # 専用線やISDN回線など # +---------------+ | 高機能ルータ | +-------+-------+ | <遠隔地の拠点LAN> ------+-------------------------------------------------
もうひとつは、トンネル/トンネリングという技術を使用して 解決する方法。
基幹LANには、TCP/IPプロトコルのデータしか流れません/流させません。
<基幹LAN/バックボーン/インターネット> ------+---------------------------------+----------------------- | | +---------------+ +---------------+ | IPルータ | | IPルータ | +-------+-------+ +-------+-------+ | <LAN(A)> | <LAN(B)> ------+----------------------- ------+----------------------- | | +-------+-------+ +-------+-------+ | トンネル | | トンネル | | ゲートウェイ | | ゲートウェイ | +-------+-------+ +-------+-------+ ? ? ? ? ??????????????????????????????????? 架空の通信路…トンネル
トンネルの両端には、パケットのトンネルへの出入り口となる
トンネルゲートウェイを設置します。
トンネルゲートウェイでは、架空の通信路であるトンネルにパケットを
流す為にトンネリングと言われる処理を施します。
トンネリングとは、「あるプロトコルが別のプロトコルを
カプセル化すること」を意味しています。
逆に、トンネリングされてきたパケットを受け取った
トンネルゲートウェイは、カプセルを外し、パケットを元に戻します。
例えば、AppleTalkやNetWare(IPX)などのパケットをトンネリングして TCP/IPネットワークを越えた先と通信することができるようになります。 ちなみに、NetWare 3.12Jには、IPトンネル機能を提供するNLM (NetWareローダブルモジュール)が標準的に同梱されています。
前述のVPNは、トンネルの技術に暗号を組み合わせて実現できます。
具体的には、パケットをカプセル化するときに、パケットの内容を
暗号化し、カプセルを外すときに、暗号を復号(解読?)します。
したがって、VPNにおけるトンネルは
「暗号化されたトンネル」という意味で
「暗号トンネル」と呼ばれることがあります。
RTシリーズのRev.3.00では、VPNを実現する為にIPsecを実装しました。
VPNの「private」の意味は、
「global IP addressやprivate IP address」の「private」
とは少し異ります。
「第3者に邪魔されたくない/知られたくない」という意味合いです。
通常、インターネット経由でグローバルアドレスの機器間の通信は 保証されていますが、プライベートアドレスの機器は、インターネット 空間の機器とは通信できません。
プロバイダ#A プロバイダ#B # # # 専用線やISDN回線など 専用線やISDN回線など # # # +----+----+ +----+----+ |リモート | |リモート | | ルータ | | ルータ | +----+----+ +----+----+ | | | LAN(A/G) | LAN(B/G) -----+------------------------- -----------------------+---------- | | +----+----+ +----+----+ |ローカル | |ローカル | | ルータ | | ルータ | +----+----+ +----+----+ | | | LAN(A/P) | LAN(B/P) -----+------------------------- -----------------------+---------- LAN(A/G): 拠点Aのグローバルアドレス空間 LAN(A/P): 拠点Aのプライベートアドレス空間 LAN(B/G): 拠点Bのグローバルアドレス空間 LAN(B/P): 拠点Bのプライベートアドレス空間
上記構成のようなglobal/private address間の通信の可否は以下のように なります。
「NATやIPマスカレードを利用した通信は?」という疑問が浮ぶかと思います。 これは、プライベートアドレス機器が一時的にグローバルアドレスを 使えるようになる技術ですので、実質的にはグローバルアドレス機器間での 通信になります。○:LAN(A/G)−LAN(A/P)間のTCP/IP通信 ○:LAN(B/G)−LAN(B/P)間のTCP/IP通信 ○:LAN(A/G)−LAN(B/G)間のTCP/IP通信 ×:LAN(A/G)−LAN(B/P)間のTCP/IP通信 ×:LAN(B/G)−LAN(A/P)間のTCP/IP通信 ×:LAN(A/P)−LAN(B/P)間のTCP/IP通信
しかし、VPN、もしくは、トンネルをWAN回線のように利用する事で、 通常通信することができない「プライベートアドレス機器」が TCP/IP通信することが可能になります。
プロバイダ#A プロバイダ#B # # # 専用線やISDN回線など 専用線やISDN回線など # # # # VPN # # ?????????????????????? # # ? ? # +----+----+ +-------+-------+ +-------+-------+ +----+----+ |リモート | | セキュリティ | | セキュリティ | |リモート | | ルータ | | ゲートウェイ | | ゲートウェイ | | ルータ | +----+----+ +-------+-------+ +-------+-------+ +----+----+ | | | | | | LAN(A/G) | | LAN(B/G) -----+--------------+---------- --------+--------------+---------- | | +----+----+ +----+----+ |ローカル | |ローカル | | ルータ | | ルータ | +----+----+ +----+----+ | | | LAN(A/P) | LAN(B/P) -----+------------------------- -----------------------+----------
上記構成のようにセキュリティゲートウェイ/トンネルゲートウェイを用いることで、 global/private address間の通信の可否は以下のようにすることができます。
○:LAN(A/G)−LAN(A/P)間のTCP/IP通信 ○:LAN(B/G)−LAN(B/P)間のTCP/IP通信 ○:LAN(A/G)−LAN(B/G)間のTCP/IP通信 ○:LAN(A/G)−LAN(B/P)間のTCP/IP通信 ○:LAN(B/G)−LAN(A/P)間のTCP/IP通信 ○:LAN(A/P)−LAN(B/P)間のTCP/IP通信
セキュリティ・ゲートウェイ機能は、RTシリーズをVPNのトンネルゲートウェイ として動作させる機能の総称であり、主にIPsecというプロトコルを 用いて実現されています。
非武装領域上を流すパケットを暗号化しておくことで、第三者から の盗聴を防ぎます。
また、パケットにある種のハッシュを付加することで、認証や改竄 の検出などのセキュリティ機能を提供します。
一方で暗号化し送り出されたパケットは、 他方で正しく受け取り復号される必要があります。
第三者には 決して復号されたりされてはなりませんし、 改竄を検出できなければなりません。
両者が、鍵と暗号アルゴリズムを秘密で共有することが必要になります。
DMZ = a demilitarized zone
セキュリティ対策が行なわれていない領域。
盗聴や改竄の可能性の高い領域。
インターネットを通して通信する場合、
非武装領域を経由して通信することになります。
プロバイダ#A プロバイダ#B # # # 専用線やISDN回線など 専用線やISDN回線など # # # # VPN (Virtual Private Network) # # ???????????????????????????? # # ? ? # +-------------------+ +-------------------+ | [BRI] [tunnel] | | [tunnel] [BRI] | | | | | | RTシリーズ | | RTシリーズ | | | | | | [LAN] | | [LAN] | +---------+---------+ +---------+---------+ | <拠点AのLAN> | <拠点BのLAN> ----------+----------------------- ----------+-----------------------
IPsecは、正確にはSecurity Architecture for Internet Protocol といい、 IP上のセキュリティを保証するプロトコルです。具体的には 認証ヘッダや 暗号ペイロードという構造をIPパケットに付加し、 その中にIPパケットの暗号情報や認証情報を格納することによって、 機密性や認証などのセキュリティ機能を実現します。
認証ヘッダはIPパケットの認証情報を格納するものであり、 暗号ペイロードはIPパケッ
トの暗号情報を格納します。暗号ペイロード には、認証情報をオプションとして付加
することができます。
以下の説明では、認証ヘッダをAH、暗号ペイロードをESPと記述します。
なお、暗号情報や認証情報を計算するには、鍵やアルゴリズムが 必要になりますが、 これは、次の節で説明します。
AHやESPには2つのモードがあります。
各モードはIPパケット中の処理すべき領域を規定しています。
IPヘッダの後ろの情報(IPパケットの中身のデータ)が処理の対象になります。
例えば、ESPの場合、IPヘッダの後ろの情報が暗号化されてESPの一部となります。
IPパケットの全体が処理の対象になります。
例えば、ESPの場合、IPパケット の全体が暗号化されてESPの一部となります。
そして、元のIPヘッダとは異なる新しいIPヘッダが先頭に付加されます。
IPsecでは、鍵交換プロトコルが規定されておりませんので、 様々な鍵交換プロトコルとIPsecを組み合わせて運用することが可能になります。 これは、おそらく、鍵交換プロトコルに欠点が見つかったときに、 IPsecの枠組みを変えることなく、別な鍵交換プロトコルへの移行を 容易にする為であると思われます。
IPsecでは、様々な鍵交換プロトコルを利用を可能とするために 認証や暗号のための鍵やアルゴリズなどを管理する セキュリティ・アソシエーション(SA) という概念とそれぞれのSAを区別するためのSPIという識別子 (認識番号のようなもの)が規定されています。 IPsecは、SPIに基づいてSAを選択します。 すなわちIPsecは、SPIさえ知っていれば、鍵交換プロトコルに依存せず、 セキュリティ機能を実現することができます。
VPN (Virtual Private Network) ???????????????????????????? ? ? V V パケット←-→IPsec IPsec←-→パケット : : : SPI : SPI : : SA SA +-------------------+ IKE +-------------------+ |・鍵 |+ ←------- |・鍵 |+ |・寿命 ||+ -------→ |・寿命 ||+ | ||| | ||| |・認証アルゴリズム ||| |・認証アルゴリズム ||| |・暗号アルゴリズム ||| |・暗号アルゴリズム ||| |・相手SGW ||| |・相手SGW ||| +-------------------+|| +-------------------+|| +-------------------+| +-------------------+| +-------------------+ +-------------------+
先に述べたVPNやセキュリティ・ゲートウェイ機能は、トンネルモードを 用いて実現されます。トンネルモードでは、新しいIPヘッダを付けることが できるので、ここに相手先のセキュリティ・ゲートウェイのアドレスを 書いておきます。そうすると、AHやESPの付加されたパケットが相手に届き、 そこで、AHやESPが外されます。
[ 関連技術資料 ]
IPsecでは、暗号情報や認証情報を扱うため、鍵とアルゴリズムを 必要とします。これ らは、対となるセキュリティ・ゲートウェイ間 で共有され、かつ第三者に知られては ならない、という厳重な管理 下に置かれる必要があります。
そこで、これらの鍵やアルゴリズムなどの秘密情報を自動的に 生成、更新、管理する ための鍵交換プロトコルが提案されました。 代表的な鍵交換プロトコルには、SKIP、 Photuris、IKE(旧ISAKMP/Oakley)が あります。RTでは、IPv6で必須の鍵交換プロトコ ルであるIKEを 採用しています。
鍵交換プロトコルのメリットは、人間が手動で鍵を設定する手間が 省けることです。 同じ鍵を長く利用することは危険なことですが、 かといって人間が頻繁に更新するの は面倒なことです。鍵交換 プロトコルを用いれば、設定次第では、5分や10分という細 かい 頻度で鍵を更新することもできます。したがって、比較的弱い と言われている暗 号アルゴリズムでも安全に利用することが できるため、高額の出費をして強力な暗号 アルゴリズムを購入 する必要がなくなります。
[ 関連技術資料 ]
ところで、先の節で紹介したIPsecと鍵交換プロトコルは、どのように 結びついている のでしょうか。鍵交換プロトコルが管理する鍵の情報 を、IPsecはどのように利用する のでしょうか。
その答えに関係するのが、IPsecで規定されているセキュリティ・
アソシエーションという概念です。セキュリティ・アソシエーションは、
鍵や鍵を利用するアルゴリズム、鍵の寿命、鍵を共有する相手などの、
鍵に関係する情報を集めたものです。
以下の説明では、セキュリティ・アソシエーションをSAと書くことに します。
SAには、鍵を利用するときに必要な情報が集まっています。もしあなたが鍵だけを教 えられても、それを暗号で使うのか認証で使うのか、あるいは、どのくらいの期間用 いることができるのか、などが分からないと困惑してしまうでしょう。SAは、鍵を利 用するときの基本単位となる情報です。 なお、先程、鍵交換プロトコルIKEは「鍵を生成、更新、管理する」と説明しましたが、 実際には、SAを生成、更新、管理しています。SAは、鍵に関する情報の基本単位であ り、鍵だけが独立に扱われることはありません。
鍵交換プロトコルが管理するSAをIPsecが利用するために、SAにはSPIという識別子が 付けられています。IPsecは、SPIに基づいてSAを検索します。
また、SAは原則として、一方向の通信したサポートしません。したがって、双方向の 通信を行う場合には、2つのSAが必要になります。また、同じホストの間でSAを張る場 合でも、アルゴリズムなどの属性が異なる場合には、別なSAが必要です。
RTシリーズに実装されたIPsecにはいくつかの仕様があります。 これらの仕様間の相互接続性やコマンド仕様などを明確にするために リリース番号を割り当てました。
インターネット・ドラフト(1998年5月頃)に対応したIPsecとIKEの仕様
IPsecリリース2とIPsecリリース3との相互接続性が無い。
系列 | リビジョン | ハードウェア |
---|---|---|
Rev.3.00系 | Rev.3.00.09以降 | RT100i/RT102i/RT140ipe/RT200i |
Rev.3.01系 | Rev.3.01.07 | RT103i |
インターネット・ドラフト(1998年5月頃)に対応したIPsecとIKEの仕様
IPsecリリース1との相互接続性が無い。
IPsecリリース3の設定に配慮すれば、IPsecリリース3との相互接続性は可能。
系列 | リビジョン | ハードウェア |
---|---|---|
Rev.3.01系 | Rev.3.01.11以降 | RT100i/RT102i |
Rev.4.00系 | Rev.4.00.02〜Rev.4.00.14 | RT103i/RT140ipef/RT200i |
RFC2401〜RFC2409、RFC2451(1998年11月頃)に対応したIPsecとIKEの仕様
IPsecリリース1との相互接続性が無い。
IPsecリリース3の設定に配慮すれば、IPsecリリース2との相互接続性は可能。
系列 | リビジョン | ハードウェア |
---|---|---|
Rev.4.00系 | Rev.4.00.18以降 | RT103i/RT140ipef/RT200i |
[ IPsec→セキュリティプロトコルIPsec ]
[ IKE→鍵交換プロトコルIKE ]