■問1(難易度:普通)
テーマ:IPsecを用いたVPN構築
【問われていること】
・インターネットVPN
■IPsec-VPN:IPパケット(3層)を暗号化して通信する。この暗号化をカプセル化という。
2つのモード
トランスポート:VPN装置 to VPN装置。拠点の間をつなぐ。
トンネル :Host to Host。個々のコンピュータ同士をつなぐ。
どっちのモードでも同じだが、パケットを送る側が4層以下のデータを暗号化する。盗聴されても読み取れないというメリット(メリットと言うより、VPNの目的)がある。
■TLS/SSL-VPN:TLS/SSLで通信で通信を確立して、暗号化+認証を行うVPN
2つの方式
リバースプロキシ :Hoat to VPN装置 to 拠点内Webサーバなど。リバースプロキシサーバがVPN装置になる。
L2フォワーディング :(Host→無線LANのAP) to ルータ(L2) to VPN装置 to 拠点内Webサーバなど。L2ルータとVPN装置間でHTTPS通信しているVPN方式。
■SSH:サーバ管理者向けで、通信を暗号化し、リモートアクセスする。
PW方式と公開鍵の2種類の認証方式があるが、後者のほうが安全。
ポートフォワーディング機能を利用して簡易VPNを構築できる。
簡易VPNの概要は次のような感じ。
①SSHで通信を暗号化
②IPsecトンネルでゲートウェイに繋ぐ
③ゲートウェイのポートフォワーディング機能で対象サーバのポートまでたどり着く
・リモートアクセスVPN
L2TP/IPsec :L2TPパケットをESPによって暗号化して、IPsec-VPNの原理で送る方法。
L2TPパケット:「社内LAN宛パケット」の中に「社内LANのサーバA宛パケット」が包括されたパケット
「IPsecのトンネルモード使えば、L2TP/IPsecなんていらんくね?」と思うが、違いはちゃんとある。
IPsecはユニキャスト通信。
L2TP/IPsecはブロードキャスト通信。
後者はDHCPで役立つ。社外に持ち出したPCにIPアドレスをDHCPで与えるときなど。
・SSHポートフォワーディング
SSHサーバへの通信を指定したIPアドレス、ポート番号へ転送する仕組み。
上記の機能を悪用して、OP25B対策をすり抜けることが可能。
○ 攻撃者(25へ) →FW(25はブロック)
× 攻撃者(22へ) →FW(22なのでOK) →ルータ(SSHポートフォワーディング) →メールサーバ(25)
・VPNを構築する際の鍵交換
IKE(:Internet Key Exchange):暗号通信やメッセージ認証に用いる共通鍵を取り決めるための鍵交換プロトコル。
・TCP Wrapper
UNIX系OSにおいて、サーバプロセスごとに送信元IPアドレスによって接続制限を行う仕組み。
/etc/host.allowファイル:接続許可するホスト
/etc/host.denyファイル :接続拒否するホスト
↑のallowファイルに攻撃者のホストを登録するという攻撃は定番。
・サーバのなりすまし対策
なりすまし対策といえば、「ディジタル署名を付与する」が定番。
本問題では、ディジタル署名で利用する秘密鍵が全部同じというのがまずい。
全部同じだと、秘密鍵を所有するだれかまでは分かるが、一意のだれかが特定できない。
万が一、秘密鍵が漏れたら、攻撃者はそれを攻撃用端末にインストールする。その状態で攻撃者サーバから接続されても気づかない。
・ファームウェアの更新時の注意点
一般的に出荷後の不具合を解消するため、組み込み機器のファームウェアは更新できるようにする。
■1:インターネット経由で更新する場合、正当なものかを判断しないといけない。
そこで出てくるのがディジタル署名。
プログラムにディジタル署名を付与することを「コードサイニング」という。
■2:ファームウェアに機密情報が直接組み込まれている(ハードコーディング)もの
ファームウェア内に機密情報が含まれている事自体がおかしい。
対策は、そもそもハードコーティングしないである。