「ネットワークセキュリティ技術」に関する問題への対策

2016年9月12日(月)
小林 浩史

はじめに

今回のテーマは「ネットワークセキュリティ技術」です。ネットワークセキュリティ技術と一口に言っても、ファイアウォール、侵入検知・防御、VPN等いろいろな分野がありますが、今回は「IPsecにおけるVPN」について解説します。

IPsecは複雑なプロトコルで仕様も難解ですが、情報セキュリティスペシャリスト試験ではそれほど細かな部分について問われません。基本を押さえておけば解答できる問題が多いので、この機会にしっかりとIPsecの特徴や仕組みを理解しておきましょう。

IPsecの概要

IPsecはIP層レベルでセキュリティを提供し、「インターネットVPN」を実現する「セキュリティプロトコル」です。セキュリティプロトコルにはいろいろありますが、代表的なものに「SSL/TLS」があります。

セキュリティプロトコルでは、特に「どこの層でセキュリティを実現しているか」が重要で、それにより保護対象も変わってきます。IPsecはIP層レベル、SSL/TLSはセッション層(トランスポート層とアプリケーション層の間)で機能し、保護対象はその上位層です(図1)。このような違いもしっかりと押さえておきましょう。

図1:IPsecとSSL/TLS

インターネットVPNは「インターネットでVPNを実現する」機能ですが、インターネットのような誰もが利用できる共有ネットワークの中で相手と自分だけが占有できるネットワーク空間を作り出すのがVPNです。

IPsecによるインターネットVPNの場合は暗号や認証、改ざん検出を行うことにより第三者の介入を防ぎ、相手と自分の間に閉じた空間を作り出すことができます(図2)。

図2:インターネットVPN

IPsecはいろいろなプロトコルが集まって構成されています。代表的なプロトコルとして「AH(Authentication Header)」「ESP(Encapsulating Security Payload)」「IKE(Internet Key Exchange)」などがあります。

  • AH:認証プロトコル(メッセージ認証。改ざん検出)
  • ESP:暗号プロトコル、認証プロトコル(メッセージ認証。改ざん検出)
  • IKE:鍵交換プロトコル(セキュリティパラメータ・鍵の自動設定等)

セキュアな通信を確立する「SA(Security Association)」

図2において、インターネットVPNでは自分と相手の間にトンネルを作り、その中で通信することで第三者の介入を保護しています。物理的にトンネルが作られているわけでなく、論理的なコネクションとして生成されています。このコネクションを「SA(Security Association)」と呼びます。SAは片方向のコネクションなので、双方向で通信する場合は最低2つのSAが必要となります。

では、SAの実態とは何でしょうか。SAは「相手とどのようなセキュリティ通信を行うか」を定めたパラメータの集まりです。IPsecの通信を行う前に、自分と相手にそのパラメータを設定します(図3)。

図3:SAのパラメータ

パラメータの設定方法には「手動」と「自動」があります。手動の場合は自分と相手の機器(PCやVPN機器等)に手動で静的にパラメータを設定するため、変更するまでは同じパラメータが使用されます。

自動の場合は、IKEがIPsecの通信を行う段階で相手と交渉し、「どのようなセキュリティ通信をするか」を決めてパラメータを自動設定します。またSAに有効期限が設定され、期限が迫ると再度IKEが交渉して新しいSAを作成します。このように定期的にパラメータ(鍵等)を変更することで、よりセキュアな状態になります。

ちなみにIKEもいくつかのプロトコルが集まって構成されており、SAや鍵を管理しているのは「ISAKMP(Internet Security Association and Key Management Protocol)」と呼ばれるプロトコルです(後述)。

トランスポートモードとトンネルモード

IPsecには「トランスポートモード」と「トンネルモード」の2つの動作モードがあります。End to EndでIPsecのVPNを行う場合はトランスポートモード、サイト間やクライアント-サイト間の通信にはトンネルモードが使用されます。

トランスポートモードでESPを使用して暗号化通信した場合は、図4のように「クライアントA」が発信するIPパケットのデータ部分が暗号化されます(ESPではヘッダ以外にもESPトレーラやESP認証データが追加されるが図4では省略)。

図4:トランスポートモード

また、トンネルモードでESPを使用して暗号化通信した場合は、図5のように「VPN装置#1」と「VPN装置#2」の間で暗号化します。「VPN装置#1」で「クライアントA」が発信したIPパケット全体を暗号化し、新しいIPヘッダを付けて「VPN装置#2」に送ります。「VPN装置#2」では、受信した暗号化パケットを復号処理し、「クライアントB」へ送信します。

図5:トンネルモード

ちなみに、IPsecを設定するときには、どちらの動作モードを使用するか決める必要があります(ただし、両方のモードを設定できる装置やOSの場合)。図6はWindows OSでの設定画面です。

図6:動作モードの設定(Windows OSの場合)

動作モードについては、平成27年春期午前Ⅱの問9において、以下の問題が出題されています。

問9 IPsecに関する記述のうち,適切なものはどれか。

ア IKEはIPsecの鍵交換のためのプロトコルであり,ポート番号80が使用される。
イ 暗号化アルゴリズムとして,HMAC-SHA1が使用される。
ウ トンネルモードを使用すると,エンドツーエンドの通信で用いるIPのヘッダまで含めて暗号化される。
エ ホストAとホストBとの間でIPsecによる通信を行う場合,認証や暗号化アルゴリズムを両者で決めるためにESPヘッダでなくAHヘッダを使用する。

選択肢を順番に見ていきましょう。(ア)のIPsecで鍵交換を行うプロトコルはISAKMPです。またUDPの500番ポートを使用するので不正解です。「ポート番号80」という記述で不正解と思われる方が多いと思いますが、できればISAKMPのポート番号も併せて覚えておきましょう。

(イ)の「HMAC-SHA1」は認証アルゴリズムなので不正解です。暗号化アルゴリズムとしては共通鍵暗号方式の「3DES」や「AES」等が使用されます。

(ウ)は前述したトンネルモードの内容ですが、図5で説明したようにトンネルモードでは発信したIPパケット全体を暗号化するので正解です。

(エ)のAHはIPパケットのメッセージ認証(改ざん検知)を行うプロトコルなので不正解です。認証や暗号化アルゴリズムを使用するのはESPプロトコルであり、どのアルゴリズムを使用するかはISAKMPの交渉で決められます。

ISAKMPの動作についても出題されることがあるので、次にISAKMPの動作について見てみましょう。

ISAKMPの動作

ISAKMPは相手と交渉してSAを確立するために必要なパラメータ(暗号化アルゴリズムや共通鍵、認証アルゴリズム等)を決定します。パラメータには共通鍵等の第三者に見られてはいけない情報も含まれるため、保護されたコネクションで通信しなければなりません。そのパラメータ情報を保護するコネクションがISAKMP SAです。

ISAKMPはSAを確立するために「フェーズ1」「フェーズ2」の2つのフェーズで処理を行います(図7)。各フェーズの目的は以下の通りです。

  • フェーズ1:相手認証とISAKMP SAの確立
  • フェーズ2:SAの確立
  • フェーズ2が完了するとSAが確立し、IPsecのセキュアな通信ができます。ここまでは単にSAと呼んでいましたが、正式には「IPsecSA」と呼びます。

    図7:ISAKMPの動作

    ちなみに、ISAKMP SAでも暗号化(共通鍵暗号)通信を行っていますが、どうやって事前に共通鍵を相手と自分の間で共有しているのでしょうか。

    ISAKMP SAが確立する前はセキュアな通信ができないため、Diffie-Hellman鍵交換アルゴリズム(DH)を使用して、自分と相手それぞれが持つ「DH Group」と呼ばれるDH キー生成情報を交換し、その情報をもとに共通鍵を生成します。DH Group番号はフェーズ1の交渉時にどの番号を使用するかを決定します。

    IPsecの過去問題に挑戦してみよう!

    IPsecの基本的な動作、特徴、仕組みについては以上です。今回解説した内容に関連する問題として、平成19年度春期情報セキュリティアドミニストレータ試験の午後Ⅰ)問1で「VPNの導入」について出題されています。少し前の問題ですが、IPsecを理解しているか確認できると思いますので、ぜひ、チャレンジしてみましょう。

    簡単にこの問題を解説します。設問1はIPsecのプロトコルであるAH、ESP、IKEを理解していれば問題なく解答できると思います。解答には含まれませんが(ウ)のSPI(Security Parameter Index)はSAを識別するための番号です。SAが確立されると、そのSAに識別番号が付きます。よく出てくるので覚えておきましょう。

    設問2はインターネットVPNにおける暗号化以外の機能について問われています。ヒントは設問文に「真正性について」「データの完全性について」と書かれているので、それぞれ「意図しない相手との通信」「データの破壊」が解答です。インターネットVPNで求められるものには「暗号化(機密性)」「エンティティ認証(真正性)」「メッセージ認証(完全性)」の3つがあり、まさにその内容を問う問題です。

    設問3はVPN接続失敗の原因を踏まえた解決方法が問われています。問題文に「各FWRのログを調べたところ、設定ミスがあることが分かった」と記載されているので、まずは各FWRのログを確認しましょう。

    問題文の「表3 FWR1とFWR2のIPsec-VPNに関するログ(抜粋)」を見ると、2007-09-13 13:49:13にFWR2 <X.Y.Z.6 >→FWR1 <G.H.I.5 >へ接続していますが(下から2行目)、FWR1のログの3行目に「Rejected an IKE packet on WAN from <X.Y.Z.6 >:500 to <G.H.I.5 >:500,since there were no acceptable Phase 1 proposals」とあり、FWR2から送られてきたパラメータのプロポーサルをFWR1が受け入れられないということで通信が拒否されています。

    また、問題文をよく読むと〔FWRと概要と設定〕の上から9行目に「S君は、一時的に借りたFWR2の暗号スイートに関する設定は変更せず、FWR1の設定を行った。」と書いています。この文章がなくても話はつながりますが、「一時的に借りてきたFWR2は特に設定を変ないで使っているため、自分たちの環境に合っていない可能性がある」ことを強調するために、敢えて書いていると思われます。よって、エラーログと併せて考えると「FWR1とFWR2でフェーズ1の暗号スイートが少なくとも1つは同じになるように設定を変更する」等の内容を書ければ問題ありません。

    設問4は「事前共有鍵IKE方式」や「公開鍵証明書IKE方式」という言葉が出てきますが、これはフェーズ1における認証方式です。事前共有鍵方式は、文字通り事前に自分と相手で共有する文字列を決めておき、認証時にその文字列が正しいかどうかチェックします。公開鍵証明書方式は、前回解説したPKI認証を利用します。公開鍵証明書の発行やその証明書管理、認証局の運営等が必要となり、事前共有鍵よりも手間がかかります。これらの内容を40文字以内でまとめてください。

    また、手動鍵管理方式は前述したようにSAの有効期限がなく、鍵の更新も手動となります。SAが多くなれば管理が煩雑になるだけでなく、有効期限がないということは、同じ共通鍵等を使い続けることになるため、システムが脆弱になる可能性があります。

    おわりに

    IPsecは様々な技術が組み合わされているため難解なところもありますが、今回の内容をしっかりと理解しておけば問題はないと思います。前回でも解説しましたが、基本的な仕組みについては自分の言葉で説明できるようにしておきましょう。

    次回は、最近事件の多い「標的型攻撃」について解説します。

NECマネジメントパートナー 人材開発サービス事業部
1993年日本電気株式会社入社。教育部門に所属し、セキュリティ領域の教育を担当。2004年から(ISC)2公式インストラクターとして、CISSPレビューセミナーの講師も務めている。近年においては、官公庁の職員や重要インフラ事業者のCSIRT要員に対してインシデント対応の演習を行っており、国のサイバーセキュリティ人材育成にも貢献している。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています