初心者データサイエンティストの備忘録

調べたことは全部ここに書いて自分の辞書を作る

【読書記録】マスタリングTCP/IP入門編(第9章)

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

本書では、セキュリティのためのプロトコルとしてIPsecTLS/SSLIEEE802.1Xの3種類が紹介されています。 本記事は、これらのプロトコルの説明だけでなく、プロトコルの理解に必要な知識も併せて説明していこうと思います(表1)。

表1:セキュリティのためのプロトコルとその理解に必要な知識の組み合わせ

IPsec

IPsecとは、VPN (Virtual Private Network)を構築するプロトコルの一つです。ネットワーク層で暗号化します。 IPsecを理解するには、暗号化技術の仕組みと認証の仕組みを知っておく必要があります。

暗号化技術

通信するデータを暗号化し、傍受されても解読できないようにする技術です。暗号化技術には、共通鍵方式と公開鍵方式があります。

共通鍵方式

共通鍵方式とは、データを暗号化するときも、復号化するときも同じ鍵を用いる方式です。 例えば、AさんがBさんにデータを送ることを考えます。 Aさんは共通鍵Xを用いてデータを暗号化しました。Bさんは届いた暗号文を共通鍵Xを使って復号化することで、解読します(図1)。

図1:共通鍵方式

計算時間が短くて済む手法ですが、共通鍵を外に漏らさずやり取りすることが必要になります。

公開鍵方式

公開鍵方式とは、データを暗号化するときと、復号化するときで異なる鍵を用いる方式です。 つまり、2個の鍵を用いる方式です。 この2個の鍵には、以下の特徴があります。

  1. 秘密鍵と呼ばれる鍵Yから公開鍵と呼ばれる鍵Zを生成する
  2. 公開鍵Zから秘密鍵Yを生成することはできない
  3. 秘密鍵Yで暗号化したデータは、公開鍵Zで解読できる
  4. 公開鍵Zで暗号化したデータは、秘密鍵Yで解読できる

性質2と4を組み合わせることで、次の様な通信を行うことができます。 Aが送信側、Bが受信側です。

  1. Bは秘密鍵Yを作成する。秘密鍵Yは公開せず、B側で厳重に保管する
  2. Bは秘密鍵Yから公開鍵Zを生成する
  3. 公開鍵Zを世の中に広める
  4. Aは公開鍵Zを使って送りたいデータを暗号化する
  5. Bは秘密鍵Yを使って、データを復号化する

これを図にしたものが図2です。

図2:公開鍵方式

公開鍵方式は、鍵が漏洩するリスクを抑えることができますが、計算時間が短くなりがちというデメリットがあります。

認証

認証の概念

認証とは、利用者が正当な利用者であることを確認するために行われます。 例えば、AがBにデータを送る際に、CがBに成りすまして受信するといったことが発生しないようにするための方法です。

代表的な認証方法には下記の3つがあります。

  • ある情報を持っていることによる認証
    • パスワードや暗証番号を持っているかどうかで、正当な利用者がどうか判別します。
  • あるものを持っていることによる認証
    • IDや鍵などを持っているかどうかで、正当な利用者かどうか判別します。
  • ある特徴を持っていることによる認証
    • 指紋や目の虹彩の血管などの一人一人異なる特徴を使って、正当な利用者化どうか判別します。

PKI(公開鍵基盤)

認証ついでにPKI(Public Key Infrastructure)についても書いておきます。 PKIとは通信相手が正当な相手かを判断するための仕組みです。

具体的には、下記の手順を踏んで相手が正当であるかを確認します。 Aが送信側、Bが受信側です。

  1. Bは秘密鍵と公開鍵を作成する
  2. Bは公開鍵を認証局に登録する
  3. 認証局はBがBであることを示す証明書を作成する
  4. Aは通信したいときに認証局からBの証明書と公開鍵を受け取る

なお、認証局とは信頼できる第三者である必要があります。有名どころはWEBブラウザにあらかじめ登録されており、それによって普段秘密情報のやり取りをする際は、上記の手順を意識せずに済みます。

IPsec

ここまで書いてようやく本丸のIPsecの説明に入ります。 IPsecとはネットワーク層でデータを暗号化するためのプロトコルです。VPNなどに使われます。

IPsecでやり取りする際の通信路をSAと呼びます。IPsecにおいては、まずISAKMP SAと呼ばれる通信路を確立し、その後IPsec SAという通信を確立して、データのやり取りを行います。

IPsec SAが確立するまでの流れは下記の通りです。

  1. 通信する二者間でISAKMP SAを確立するのに必要なパラメータを決める
  2. ISAKMP SAを確立する(ISAKMP SAは暗号化された通信路になる)
  3. ISAKMP SAでIPsec SAを確立するのに必要なパラメータのやり取りを行う
  4. IPsec SAを確立する(IPsec SAも暗号化された通信路になる)

IPsec SAを確立できたら、その中は暗号化されているのでそこでデータのやり取りを行います。

TLS/SSL

TLS/SSLとは、HTTP通信を暗号化するための仕組みです。 図3の手順を踏んで通信します。

図3:TLS/SSL通信

ポイントは、認証局が発行した証明書を使うことで通信する相手が正しいかを判定すること(認証)とクライアントが送るデータが暗号化されている(盗聴の防止)ことの2つが実現されていることです。

IEEE802.1X

IEEE802.1Xは特定のユーザのみをネットワークにつなげる仕組みです。 IEEE802.1Xを理解するには、VLANの概念を知っておく必要があります。

VLAN

VLANとは、LANを構成するネットワーク経路を論理的に変えることができる仕組みです。

会社内で部署ごとにLANを引いている場合を考えます。 VLANを使っていない会社では、部署の改編が起こるたびに物理的に回線を引き直す必要があります。 しかし、VLANを使っている会社では、VLANの設定を変えるだけで済みます(図4)。

図4:VLANを使うメリット

このように、VLANを使っていると物理的な回線を変更せずに、実際に利用する回線を変更することができます。

IEEE802.1X

IEEE802.1Xは図5のような手順を踏んで、特定のユーザだけをネットワークにつなぐことができるようにします。

図5:IEEE802.1Xの接続手順
マスタリングTCP/IPの入門編を通じて学んだことをメモしていきます。本記事は、第9章(セキュリティ)を読んで新たに得られた知識をまとめたものです。

VLANを使って回線を切り替えることで、特定のユーザだけをネットワークにつなぐことを実現します。

まとめ

本記事は、セキュリティのためのプロトコルとしてIPsecTLS/SSLIEEE802.1Xとこれらのプロトコルの理解に必要な知識について説明しました。