Computer Network 3 Document 14
通信ネットワーク実習3第14回補足資料

第 9 章 セキュリティ

9.1 セキュリティの重要性

9.1.1 TCP/IP とセキュリティ

この章のポイントはTCP/IPはもともとセキュリティを考慮せずに 作られていたということである.初期のインターネットでは 同じネットワークに接続されているホストはそのネットワーク上の 通信をすべて傍受できるし,他のネットワーク上のホストへの 通信であれば経路制御により経由したルーター,ネットワーク上の ホストは通信を傍受できる.これは,もともとTCP/IPは 知り合いの研究者どうしが情報を共有するために利用されていた ためである.

インターネットが広く使われるようになり,悪意あるユーザーの 存在を考慮した機能が追加されるようになった.インターネット バンキングなどのように,インターネットを社会インフラとして利用する ためにはセキュリティ技術が不可欠となっている.一般にセキュリティを 強固にすると使いにくいシステムになるというトレードオフがあるが, 安全性と利便性を両者させるために技術革新が行われている.

9.1.2 サイバーセキュリティ

教科書p.340 9.1.2節最初の段落がサイバーセキュリティの定義である. サイバーセキュリティ基本法 の第一章第二条に書かれている.実際には守る対象がサイバー空間 であることを強調する文脈で使われることが多い.サイバー空間上の 個人情報などのデータやサーバーなどのサイバー空間上の資産を攻撃し, 奪うサイバー攻撃から守ることをサイバーセキュリティと 呼んでいる.

昔は高いスキルをもつ情報技術者が技術の誇示や自己満足のために 不特定多数を対象としたウィルスを作成することが多かったが, 現在は金銭的価値のある機密情報を狙ってサイバー犯罪者が金銭目的で サイバー攻撃を請け負い,組織的に攻撃を行うことが多くなっている. 特定の企業内の機密情報を対象とする攻撃を標的型攻撃 という.

標的型攻撃が増えたことから,サイバーセキュリティは企業にとって ビジネスリスクとして捉えることが必要になった. 企業はセキュリティポリシーを作成し,それに沿ってサイバー資産を管理, 運用するようになった.

企業だけでなく個人にとってもマルウェア感染による なりすましなどの被害が起きているのでインターネットを利用する 全員がサイバーセキュリティに取り組む必要がある.

9.2 セキュリティの構成要素

教科書p.342図9.1にはセキュリティの説明で扱う 各種の要素技術がネットワークのどこに使われているかが 書かれている.

9.2.1 ファイアウォール

パケットのヘッダには送信元,宛先のIPアドレスやポート番号, 各種フラグが書かれている. これらが特定の組み合わせであるパケットのみを通過させ,それ以外の パケットを通過させないことが基本的なパケットフィルタリングである. ファイアウォールはパケットフィルタリングによって行うことが 一般的である.パケットフィルタリングにより安全と判断した 通信のみが許可される.例えばWebのポート番号は80番なので 教科書p.343図9.2のファイアウォールはWebサーバーを宛先とする 通信のうち,ポート番号80番の通信は許可し他は破棄する, という設定を行うことでWebサーバへの攻撃パケットを遮断する.

ファイアウォールはNATルーターで行うことが多い. 教科書図9.1の上側のファイアウォールがNATルータだとして その左上の2台がNATの中のホストだとすると,これが 一般的なファイアウォールの設置方法となる.NAT内の ホストの通信を肩代わりするNATルーターが自分を通過する パケットにフィルタリングを行う.Linux では パケットフィルタリングを行う iptables という アプリケーションで NAT を実行できるようになっている.

教科書p.343の12行目以降のフィルタリングは 内部から外部への通信は危険性はないので 全て許可する一方,外部から内部へコネクションを張ろうとする 通信は遮断する.外部からの通信は内部からコネクションが 張られてすでにコネクションが確立している状態の通信だけを許可する 設定である.これはTCP ヘッダのSYN や ACKフラグを 監視することでできる.

ネットワーク層では送信元,宛先のIPアドレスの情報が得られ, トランスポート層ではさらにポート番号(どのアプリケーションか) やコネクションの状態を表すフラグの情報が得られる. さらに上位のアプリケーション層では実際の通信内容まで 情報として使うことができるので,上位の階層で フィルタリングを行うほど高機能なフィルタリングが可能になる. しかし処理時間が大きくなるデメリットがある.

9.2.2 IDS/IPS(侵入検知システム/侵入防止システム)

ファイアウォールは外側から内側に入ろうとする時点で 設定されたルールに従ってパケットを遮断するかどうか判断する. 悪意ある通信でもファイアウォールのルールで発見できない可能性は 存在する.また,ファイアウォール内部で動作する悪性ソフトウェアに 対してもフィアウォールは無力である.

ファイアウォール内で通信を監視し、不正アクセスを検出するのが IDS(侵入検知システム)である.ファイアウォールで多数の不正 アクセスを防ぎ,防ぎきれなかった侵入をIDSが検知する構成に なっている.

IDSは侵入を検知して管理者に通知するもので,実際の対応は管理者が 手動で行う.それに対してIPS(侵入防止システム)は不正侵入を 検知するとそのアクセスを遮断する機能をもつ.

DMZは外部ネットワークと内部ネットワークの中間的なネットワークで, 主に外部に公開するサーバーなどを設置する. 外部から内部ネットワークへの接続には直接のアクセスを許さない 厳しい制限をかける一方,DMZ のサーバーへは必要なサービスに応じた ポート番号などを厳選して接続許可を与える. 内部ネットワークのホストを強固に守りながら外部向けのサービスを 行う場合によく使われる手法である.

WAF はWeb特有の攻撃をアプリケーションレベルでデータを 吟味してサーバーを守る機能である.

9.2.3 アンチウィルス/パーソナルファイアウォール

パーソナルファイアウォールは「ファイアウォール」と名前がついているが 守るのは自分の端末だけである.個々のホストに設置して攻撃アクセスを 遮断する.ファイアウォール,IDS を通り抜けた攻撃アクセスに対する ユーザー側の最後の砦といえる.メールによって感染するウィルスなども ファイアウォール,IDSで防げないケースがあるため, 個々のホストに設置するアンチウィルスで検出,防御する. アンチウィルス/パーソナルファイアウォールはクライアントに 設置するセキュリティ対策である.このようにユーザー側で行う セキュリティ対策を総称してエンドポイントセキュリティという.

9.2.4 コンテンツセキュリティ(E-mail, Web)

コンテンツセキュリティは,メールやWebでやりとりされる データの中身を監視し,悪意あるものを検出して遮断する機能である.

9.3 暗号技術の基礎

インターネットはもともとセキュリティを考慮せずに開発された. 後から暗号化の機能が提供されるようになったが,OSI参照モデルの いろいろな階層で暗号化を提供する機能が実装されている.

図14.1はトランスポート層でTCP,ネットワーク層でIPsec,データリンク層で Ethernet を使い,ネットワーク層のみで暗号化を行った例である. 上位層のプロトコルのヘッダとデータが下位層ではまとめてデータとして 扱われる原則に従って,TCPヘッダとデータは合わせて ネットワーク層のデータとして扱われる.ネットワーク層で 暗号化が行われるのでIPsecのデータにあたる部分(図14.1のグレーの部分) が暗号化され,IPsecのヘッダが付加される(トランスポートモードの場合, もとのIPのヘッダがそのまま使われる). これをデータリンク層でEthernet で送るためにデータリンク層のヘッダと トレイラを付加する. 図14.1から,暗号化が行われたネットワーク層(第3層)より上位の 層のヘッダとデータが暗号化されることがわかる.

図14.1 各階層の構造と暗号化

9.3.1 共通鍵暗号方式と公開鍵暗号方式

教科書p.347の4行目に「暗号化と復号に同じ鍵を使うのが共通鍵暗号方式」 と書かれているが,正確には暗号化鍵から復号鍵が計算できるのが 共通鍵暗号である.どの暗号方式でも復号鍵を秘密にするのが前提で, 暗号化鍵を公開できるかできないかがポイントになる.公開鍵暗号は 暗号化鍵から復号鍵を計算できないので暗号化鍵を公開できるが 共通鍵暗号では暗号化鍵を公開すると復号鍵が知られてしまうため 暗号化鍵を公開できない.

公開鍵暗号方式は暗号化鍵を公開サーバーに置くことができるので 通信を行う前に高いセキュリテイの確保が必要な相手との鍵共有を行う 必要が無いことが大きな利点だが,処理速度が遅いという 欠点もある.

9.3.2 認証技術

相手が正当な利用者かどうかを識別する技術が認証技術である. いろいろなシステムへのログイン時に行われる.いろいろな種類があるので 教科書を参照すること.

電子情報が改竄されないための技術としてハッシュ関数は重要な 役割を果たす.ハッシュ関数とは任意の大きさのデータから 固定の長さの文字列や数値(ハッシュ値)を計算する関数で, 暗号技術で使われるハッシュ関数は「ハッシュ値が与えられたとき, そのハッシュ値が出力される入力データを構成することは 現実的な時間ではできない」という性質をもつ. 入力から出力は作れるが,出力から入力が作れないという意味で 一方向性ハッシュ関数という. 保護したい文書の一方向性ハッシュ関数のハッシュ値を付加することで, そのハッシュ値に一致するように後から元の文書を変更することをできなくする.

サーバーが認証のアルゴリズムで計算できることは, サーバーの手元にある公開鍵に対応する秘密鍵を その人物がもっているということだけである. 公開鍵の持ち主が何者なのかを保証する仕組みは暗号 アルゴリズムの計算の外で信用できる社会のサービスとして行う必要がある. それを行うのがPKI(公開鍵基盤)である.

9.4 セキュリティのためのプロトコル

9.4.1 IPsec と VPN

IPsec はネットワーク層のプロトコルであるIPを暗号化したものである. IPsec を利用することで IP パケットのデータが暗号化され通信の両端の 発信者と受信者にしか読めないものとなる.このため,途中の経路で 必ずしも信頼できないネットワークを経由しても秘密通信を行う ことができる.社外から仮想的に社内のプライベートネットワークに 接続する形になるのでVPN (Virtual Private Network) とよばれる.

VPNにはトランスポートモードとトンネルモードがあり,トランスポートモードは 送信側と受信側の端末がIPsecに対応していて,最初からIPsec のパケットとして送信し,受信側はIPsecのパケットを受信する. トランスポートモードではIPヘッダは暗号化しないIPのときのヘッダと 同じものを使う.

トンネルモードでは,通信の両端は暗号化されない通常のIP通信を 行っていると思って処理する.暗号化したい経路の両端に VPNルータを設置し,暗号化されないIPパケットを,ヘッダ,データごと IPsecのデータとして使い,新しいヘッダを付加してその経路 を通過する.受信者側の VPNルータでもとの通常のIPパケットに 戻して受信者まで送る.

9.4.2 TLS/SSL と HTTPS

Webでの暗号化通信を規定しているのがTLS/SSL である. インターネットを使って銀行やショッピングなどの セキュリティの要求されるサービスができるようになったのは このTLS/SSLのおかげといえる.TLS/SSL を使うことで クライアントとサーバーだけが復号できるように暗号化して 通信を行うことができる.ネットワークの経路の途中で 盗聴者のいるネットワークを通ったとしても TLS/SSL 通信なら中を読まれることはない.TSL/SSL を使って HTTP を暗号化したスキームがHTTPS である. ブラウザでHTTP かHTTPSのどちらで通信しているかは 鍵アイコンなどでわかるようになっている.HTTPS 接続で ない場合,パスワードを入力するとそれば平文で流れる可能性がある.

公開鍵暗号は公開鍵を公共のサーバーで公開することができるので 鍵の配送の手間が無いという大きなメリットがあるが 計算時間が短いというデメリットがある.そのため セキュリティを高く保ちたいものには向いているが 大量のデータを暗号化するには向かない.TLS/SSL を使ったHTTPS 通信では最初に乱数で決める セッション鍵を公開鍵暗号で送る(教科書p.354図9.10)

これでクライアントとサーバーがセッション鍵を共有した状態に なったので,以降の通信は高速な共通鍵暗号で行う. HTTPS ではこのように適切に公開鍵暗号と共通鍵暗号を 組み合わせて使用するとで安全性と高速性を両立させている.

9.4.3 IEEE802.1X

IEEE802.1X はデータリンク層の段階から暗号化で保護する 仕組みである.無線通信など不特定多数がアクセスしやすい 媒体のよく使われる.

IEEE802.1X では最初に接続をしてきた端末を一旦 接続確認ようのVLANに接続する.ここで認証作業を行い, 認証されたらVLANを切り替えて本来接続を許可する ネットワークへの接続を行う(教科書p.355図9.11)


Updated in August 13, 2020, Yamamoto Hirosh