Security Gateway and IPsec


セキュリティ・ゲートウェイ機能の基礎知識


作成日1998/Jun/09
最終変更日2018/Nov/06
文書サイズ 39KB


このドキュメントでは、RTシリーズでセキュリティ・ゲートウェイ 機能を利用すると きに必要な知識をまとめています。 他のドキュメントを読む前に、一読されることを お勧めします。
  1. セキュリティ
  2. 暗号化
  3. 認証
  4. Virtual Private Network (VPN)
  5. トンネル/トンネリング
  6. プライベートアドレス機器間のTCP/IP通信
  7. セキュリティ・ゲートウェイ機能 (SG)
  8. TCP/IPのセキュリティ・プロトコル IPsec
  9. 鍵交換プロトコル IKE
  10. セキュリティ・アソシエーション(SA)
  11. リリース番号
  12. 関連するRFCなど

セキュリティ

インターネットは、数十年前に初期の運用が始まって から現在に至るまで、急速な発展を遂げてきました。 現在では、1億人にのぼる世界中の人々が、様々な目的で インターネットを利用しています。

インターネットは、世界中の様々な人々の管理によって 有機的に結合されたネットワークです。したがって、 インターネットは様々な立場の人によって、様々な方法で 管理されています。 また、様々な立場の人々がインターネットに接続し、様々 な方法でインターネットを利用しています。

ユーザは、インターネットに接続した瞬間から、間接的に 知らない人々と接触します。今、閲覧しているRTPROホーム ページの情報は、ヤマハが管理 しているサーバーから送られていますし、あなたが送信し たメールは、あなたの知らない人の手に渡り、あなたの 知らない方法で配られていきます。

インターネットを流れる情報は、一旦流れてしまえば、 発信者が伺い知ることのできない扱いを受けることに なります。郵便における書留めの サービスは、郵便物が安全に受取人の元に届くことを保証 してくれます。しかし、インターネットを流れる情報は、 内容の改竄や盗聴などの攻撃にいつもさらされています。

以下では、これまでに知られている攻撃のいくつかを 紹介します。これらの攻撃の多くは、インターネット の世界に限られたものではなく、実世界との類似性を 持っていることに気が付くでしょう。

セキュリティは、以上に挙げたような攻撃に対する防御を 提供します。防御すべき項目を整理すると、以下のように なります。

当然というか、残念ながらというか、できることとできないことがあります。 IPsecを用いてIPパケットに暗号情報と認証情報を付加することにより、 以下のセキュリティを実現することができます。

[ IPsecのセキュリティ機能 ]


暗号化 (encryption)

情報を守るための符号化処理
逆の処理は、「解読」または「復号化」といいます。

                        ┃                    ┃
[ 送信側 ]              ┃                    ┃[ 受信側 ]
                        ┃                    ┃
情報 + 暗号鍵           ┃                    ┃
     ↓                 ┃                    ┃
     ↓ 暗号化          ┃                    ┃
     ↓                 ┃                    ┃
  暗号情報              ┃  →→→→→→→→  ┃ 暗号情報 + 暗号鍵
                        ┃                    ┃    ↓
                        ┃                    ┃    ↓ 解読
                        ┃                    ┃    ↓
                        ┃                    ┃   情報
                        ┃                    ┃


認証 (authentication)

相手や情報が正しいか識別するための処理です。 認証の信頼性を高める為、暗号化のように符号化処理を組み合わせた認証を 用いられることが多くなっています。

認証鍵によって秘密情報を変換した結果(認証情報)を相手に送ります。 相手は、認証鍵と秘密情報から正しい相手かどうか判別します。 情報を暗号化して相手に伝える場合と違って、解読する処理が ありません。

                        ┃                    ┃
[ 送信側 ]              ┃                    ┃[ 受信側 ]
                        ┃                    ┃
情報 + 認証鍵           ┃                    ┃情報 + 認証鍵
     ↓                 ┃                    ┃     ↓
     ↓ 暗号化          ┃                    ┃     ↓ 暗号化
     ↓                 ┃                    ┃     ↓
     ↓                 ┃                    ┃生成した認証情報
     ↓                 ┃                    ┃     ?
  認証情報              ┃  →→→→→→→→  ┃受信した認証情報
                        ┃                    ┃     ↓
                        ┃                    ┃     ↓ 認証情報が一致?
                        ┃                    ┃     ↓
                        ┃                    ┃承認 or 否認
                        ┃                    ┃


Virtual Private Network (VPN)

(private network over public network)

インターネットに接続してデータ通信すると場所や時間を問わず自由に 通信できてとっても便利なのです。 反面、「公衆の場」的性格の為通信の秘密性は残念ながら低下します。 インターネットは多数のプロバイダのネットワークを繋ぎ合せて構成 されており、通信経路は特定できません。 盗聴や改竄(かいざん)などが行なわれてしまう可能性がある訳です。

            たくさんの第3者
                  ↓                    インターネット
   〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
         ↑                                ↑
     プロバイダ#A                      プロバイダ#B
          #                                 #
          # 専用線やISDN回線など            # 専用線やISDN回線など
          #                                 #
  +---------------+                 +---------------+                   
  |リモート ルータ|                 |リモート ルータ|
  +-------+-------+                 +-------+-------+                   
          |         <拠点AのLAN>          |         <拠点BのLAN>
    ------+-----------------------    ------+-----------------------

いままでは、各地に点在する拠点間の守秘性の高いデータ通信は、 セキュリティの低いインターネット経由の通信に代って、 専用線やISDN網やフレームリレー網などの一般の通信サービス網を用いて、 独自のネットワーク網(WAN接続, 遠隔地のLAN同士を接続)が 構築されてきました。

     プロバイダ
          #
          # 専用線やISDN回線など
          #
  +---------------+     +---------+
  |リモートルータ |     | サーバ  |
  +-------+-------+     +----+----+
          |                  |                   <基幹LAN>
    ------+------------------+------------------------------
          |
  +---------------+
  |リモートルータ |
  +-------+-------+
          #
          # 専用線やISDN回線など
          #
  +---------------+
  |リモートルータ |
  +-------+-------+
          |                              <遠隔地の拠点LAN>
    ------+-------------------------------------------------

しかしながら、インターネットの爆発的な普及で各拠点の通信や企業間のデータ通信を Internet経由で行ないたいという要求が日増しに高くなってきています。 その要求に答えるひとつの選択肢が、VPN (Virtual Private Network)なのです。

VPNを導入することにより、独自のネットワークを構築して通信していた 秘密性の高い通信をインターネット経由で行なえるようになります。

このようにVPNは「仮想的な専用線接続によるネットワーク」と 見倣すことができ、ネットワーク構築の選択肢がひとつ増えました。

また、PVN (Private Virtual Network)という言葉もありますが、 類似の用語です。

RTシリーズのRev.3.00では、VPNを実現する為にIPsecを実装しました。


トンネル/トンネリング

一般的にトンネルとは、山に穴を掘って、道路や線路などを通した ものを指しますが、データ通信の世界でも似たようなイメージを 持って頂いて構わないでしょう。

例えば、AppleTalkやNetWare(IPX)のパケットをTCP/IPネットワークを 経由して流す/通すことなんてできません。しかし、そのような通せないパケットを 無理矢理にでも通してしまう通信路を作ってしまう仕組みがトンネルです。

従来、TCP/IPで構成されたバックボーンネットワークなどがあって、 LAN-LAN間でTCP/IP以外のプロトコルの通信も行ないたい状況を 想定してください。
以下のような方法で解決されてきました。

  1. 高機能ルータ / マルチプロトコルルータ

    ひとつは、IPルータをTCP/IP以外の複数のプロトコルを 通せるマルチプロトコルルータに替えたり、ブリッジ機能を 追加したりして、解決する方法。

    基幹LANには、良くも悪くも様々なプロトコルのデータが流れます。

                                                     <基幹LAN>
        ------+-------------------------------------------------
              |
      +---------------+
      | 高機能ルータ  |
      +-------+-------+
              #
              # 専用線やISDN回線など
              #
      +---------------+
      | 高機能ルータ  |
      +-------+-------+
              |                              <遠隔地の拠点LAN>
        ------+-------------------------------------------------
    

  2. トンネル / トンネリング

    もうひとつは、トンネル/トンネリングという技術を使用して 解決する方法。

    基幹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を実装しました。


プライベートアドレス機器間のTCP/IP通信

(private address network over global address network)

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間の通信の可否は以下のように なります。

○: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通信
「NATや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通信


セキュリティ・ゲートウェイ機能(SG, SGW)

セキュリティ・ゲートウェイ機能は、RTシリーズをVPNのトンネルゲートウェイ として動作させる機能の総称であり、主にIPsecというプロトコルを 用いて実現されています。


TCP/IPのセキュリティ・プロトコル IPsec

IPsecは、正確にはSecurity Architecture for Internet Protocol といい、 IP上のセキュリティを保証するプロトコルです。具体的には 認証ヘッダ暗号ペイロードという構造をIPパケットに付加し、 その中にIPパケットの暗号情報や認証情報を格納することによって、 機密性や認証などのセキュリティ機能を実現します。

[ 関連技術資料 ]


鍵交換プロトコル IKE

IPsecでは、暗号情報や認証情報を扱うため、鍵とアルゴリズムを 必要とします。これ らは、対となるセキュリティ・ゲートウェイ間 で共有され、かつ第三者に知られては ならない、という厳重な管理 下に置かれる必要があります。

そこで、これらの鍵やアルゴリズムなどの秘密情報を自動的に 生成、更新、管理する ための鍵交換プロトコルが提案されました。 代表的な鍵交換プロトコルには、SKIP、 Photuris、IKE(旧ISAKMP/Oakley)が あります。RTでは、IPv6で必須の鍵交換プロトコ ルであるIKEを 採用しています。

鍵交換プロトコルのメリットは、人間が手動で鍵を設定する手間が 省けることです。 同じ鍵を長く利用することは危険なことですが、 かといって人間が頻繁に更新するの は面倒なことです。鍵交換 プロトコルを用いれば、設定次第では、5分や10分という細 かい 頻度で鍵を更新することもできます。したがって、比較的弱い と言われている暗 号アルゴリズムでも安全に利用することが できるため、高額の出費をして強力な暗号 アルゴリズムを購入 する必要がなくなります。

[ 関連技術資料 ]


セキュリティ・アソシエーション(SA)

ところで、先の節で紹介したIPsecと鍵交換プロトコルは、どのように 結びついている のでしょうか。鍵交換プロトコルが管理する鍵の情報 を、IPsecはどのように利用する のでしょうか。

その答えに関係するのが、IPsecで規定されているセキュリティ・ アソシエーションという概念です。セキュリティ・アソシエーションは、 鍵や鍵を利用するアルゴリズム、鍵の寿命、鍵を共有する相手などの、 鍵に関係する情報を集めたものです。
以下の説明では、セキュリティ・アソシエーションをSAと書くことに します。

SAには、鍵を利用するときに必要な情報が集まっています。もしあなたが鍵だけを教 えられても、それを暗号で使うのか認証で使うのか、あるいは、どのくらいの期間用 いることができるのか、などが分からないと困惑してしまうでしょう。SAは、鍵を利 用するときの基本単位となる情報です。 なお、先程、鍵交換プロトコルIKEは「鍵を生成、更新、管理する」と説明しましたが、 実際には、SAを生成、更新、管理しています。SAは、鍵に関する情報の基本単位であ り、鍵だけが独立に扱われることはありません。

鍵交換プロトコルが管理するSAをIPsecが利用するために、SAにはSPIという識別子が 付けられています。IPsecは、SPIに基づいてSAを検索します。

また、SAは原則として、一方向の通信したサポートしません。したがって、双方向の 通信を行う場合には、2つのSAが必要になります。また、同じホストの間でSAを張る場 合でも、アルゴリズムなどの属性が異なる場合には、別なSAが必要です。


リリース番号


関連するRFCなど