[Software] |
|
Windows 2000のIPSec機能を有効にする方法
|
澤谷琢磨
2000/12/19 |
|
IPSecは、IPパケットのレベルで暗号化を行うことで、2台のコンピュータ間の通信を盗聴や改ざんから保護する技術だ(IPSecについては、「技術解説
:IT管理者のためのIPSec講座」参照のこと)。特に、インターネットを利用した企業間ネットワークのVPN(仮想プライベート・ネットワーク)を実現するために開発された技術である。ほかの暗号化技術と比べて、IPSecではIP層で暗号化/復号化を行うため、TCPを用いる既存のLAN/インターネット対応アプリケーションを変更せずに暗号化が行えるという点で優れている。
Windows 2000は、PPTP(Point-to-Point Tunneling Protocol)/L2TP(Layer Two Tunneling
Protocol)によるVPNをサポートしており、IPSec機能をIPレイヤに標準で組み込んでいる。ここで注目したいのは、VPNとは無関係にIPSecを有効にできる点だ。たとえば、社内LANでもWindows
2000同士の通信を暗号化する手段として、IPSecを用いることができる。
ここでは、2台のWindows 2000クライアント同士でIPSecによる通信を有効にする方法について解説する。ルータをまたいで接続されている場合については考慮していないので注意していただきたい。
IPSec機能を有効にするには
コントロール・パネルの[ネットワークとダイヤルアップ接続]−[ローカル エリア接続]のプロパティ*1から[インターネットプロトコル(TCP/IP)]のプロパティを開き、[詳細設定]ボタンから[オプション]−[IPセキュリティ]のプロパティを開くと、3つの既定のIPセキュリティ・ポリシーが表示される。
*1 これはLANに接続されているネットワーク・アダプタのプロパティである。名称が「ローカル
エリア接続」以外に変更されている場合もあるので注意が必要だ。 |
|
[IPセキュリティ]ウィンドウ |
|
|
[次のIPセキュリティ ポリシーを使う]を選択する。 |
|
|
「IPセキュリティ ポリシー」を選択する |
|
既定のIPセキュリティ・ポリシーには、それぞれ以下のタイトルが付けられている。
- クライアント(応答のみ)
- サーバー(セキュリティが必要)
- セキュリティで保護されたサーバー(セキュリティが必要)
これらは、IPSecの各設定を記述したポリシーに対して、そのセキュリティ強度に合わせて付けられた名前にすぎない。設定の詳細は、Windows
2000ドメイン・コントローラでは、[コントロール パネル]−[管理ツール]−[ドメイン セキュリティ ポリシー]から、それ以外では[コントロール
パネル]−[管理ツール]−[ローカル セキュリティ ポリシー]の[IPセキュリティ ポリシー]の設定画面で確認できる。それぞれのポリシーがどの程度のセキュリティを確保しているのかを確認しておきたい。
|
[ドメイン セキュリティ ポリシー]−[Active DirectoryのIPセキュリティ ポリシー]ウィンドウ |
|
|
[ツリー]から[Active DirectoryのIPセキュリティポリシー]を選択する(ローカル
セキュリティ・ポリシーの場合は、[ローカル コンピュータのセキュリティポリシー]) |
|
|
[IPセキュリティ]ウィンドウで表示されたのと同じ、既定のIPセキュリティ・ポリシーが表示される。既定のIPセキュリティ・ポリシーの内容を変更したり、新規のポリシーを追加したりできる。 |
|
2台のWindows 2000搭載PC間でIPSecによる暗号通信を行いたいだけなら、既定のポリシーから[サーバー(セキュリティが必要)]を選択しておくとよい。この設定を行った場合、IPSecを有効にしたWindows
2000搭載PC間でのみ、IPSecで暗号通信を行うようになる。
なお、ドメイン・コントローラでIPSecを有効にすると、あらかじめ回避しない限り、その設定がドメイン全体のセキュリティ・ポリシーとして、ドメイン内のWindows
2000クライアントすべてに適用される。テスト目的でIPSecを導入する場合は、事故を防ぐためにドメイン・コントローラ以外のWindows 2000クライアント同士で行ったほうがよいだろう。
IPSecで通信が暗号化されているかどうか確認する
IPSecでの通信が確立しているかどうかは、「IPセキュリティ モニタ(IPSECMON.EXE)」を用いて確認できる。「IPセキュリティ モニタ」は、Windows
2000標準のツールなので、別途インストールする必要はない。コマンド・プロンプトか、[ファイル名を指定して実行]から起動する。ここでIPSecによる通信が確立されていなければ、認証方法の設定を変更する必要がある。
|
「IPセキュリティ モニタ」の起動画面 |
「IPセキュリティ モニタ」アプリケーション(IPSECMON.EXE)を起動すると、この画面が表示される。これにより、IPSecによる暗号通信が行われているかどうかの確認ができる。
|
|
|
[セキュリティ アソシエーション]にIPSecで確立された通信のステータスが表示される。 |
|
認証方法の設定を変更するには
IPSecは、暗号化IPパケット(ESP)、あるいはIP認証ヘッダ(AH)の作成に、共有鍵暗号方式を用いる。共有鍵暗号方式とは、通信を行う相互が同じ秘密鍵を持ち、その秘密鍵で暗号化/復号化を行う方式である。Windows
2000のIPSecでは共有鍵暗号方式として、DES-CBCと、3DES-CBCを採用している。3DESの方が暗号強度は強く、安全であると言われている。ただ共有鍵暗号方式では、鍵自体の強度も重要だが、それ以上に秘密鍵の保護が問題となる。悪意のある第三者が秘密鍵を入手すれば、簡単に復号化されてしまうからだ。
IPSecの規格については「技術解説:IT管理者のためのIPSec講座」を参照していただきたいが、IPSecでは鍵交換プロトコルは1つに固定されていない。Windows
2000では、IPSecの秘密鍵を交換するデフォルトの方式は、Kerberos v5である。Kerberosプロトコルは、Windows 2000から実装されたActive
Directoryにおいてデフォルトの認証方式として採用されている。そのため、Windows 2000によって管理されるドメインならば、ドメイン・コントローラのKDC(鍵配布局)によって、鍵交換の安全性が保証される。
非Active Directory環境(Windows NT 4.0ドメインも含まれる)で、Windows 2000クライアント間のIPSecを有効にするには、あらかじめ秘密鍵をお互いで持ち合う仮共有キーか、CA(Certification
Authority、認証機関)の発行する電子証明書を用いる方式を選ぶ必要がある。CAとは、VeriSignやEntrustなど、電子証明書を発行する機関のことである。電子証明書を用いる方式の場合、どこかのCAと契約のうえ、まずPKI(公開鍵インフラストラクチャ)を構築し、そこから各PCに電子証明書を発行することになる。PKIの構築と運用は、かなり大掛かりな作業となる。なお、PKIについては、「Master
of Network:PKIでなにが守れるのか?」を参照していただきたい。
とりあえずIPSecによる暗号通信を試してみるといった程度ならば、Microsoftから提供されているテスト用の電子証明書を用いるか、仮共有キーによる認証を行うのが手軽だろう。テスト用の電子証明書や仮共有キーの場合、CAによる電子証明書に比べて暗号強度が低いので、本格的に導入するためにはCAによる電子証明書を使うようにしたい。
仮共有キーを用いたIPSecの設定
Windows 2000のIPSecでは、あらかじめ共通のパスワードを相互に持ち合い、このパスワードで認証を行うという方式がある。これは仮共有キーを用いた認証方式と呼ばれる(このパスワードがIPSecの秘密鍵になるわけではない)。仮共有キーの設定は、IPセキュリティの各ポリシーのプロパティを開き、[IPセキュリティの規則]から仮共有キーに設定したい規則を選択し、[規則の編集のプロパティ]−[認証方法]から行う。同じ設定をIPSecで通信を行いたい相手でも行う必要があることに注意していただきたい。
|
[IPセキュリティ ポリシー]ウィンドウ |
ここでは、[サーバー(セキュリティが必要)のプロパティ]を開いた場合に表示される画面を例として示す。
|
|
|
[IPセキュリティの規則]では、デフォルトの認証方法としてKerberosが選択されている。 |
|
|
[IPフィルタ一覧]から[認証方法]を仮共有キーに変更したいフィルタを選ぶ。ここでは[すべてのIPトラフィック]を選択している。 |
|
|
編集ボタンを押すと、[認証方法]ウィンドウが表示される。→ へ |
|
|
|
[認証方式]ウィンドウ |
|
|
デフォルトではKerberosが認証方法に設定されている。非Active Directory環境ではKerberosを利用できないので、[認証方法の優先順位]でKerberosを選択する。 |
|
|
[編集]ボタンを押すと、[認証方法の編集のプロパティ]ウィンドウが表示される。→
へ |
|
|
|
[認証方式の編集のプロパティ]ウィンドウ |
|
|
[次の文字列をキー交換(仮共有キー)の保護に使う]を選択する。 |
|
|
適当な文字列を仮共有キーとして入力する。IPSecで通信を行いたい相手側のPCでも同じ文字列を入力しなければ、認証は成立しない。 |
|
System Insider フォーラム 新着記事
- Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
- 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
- IoT実用化への号砲は鳴った (2017/4/27)
スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
- スパコンの新しい潮流は人工知能にあり? (2017/3/29)
スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう