セキュリティプロトコルは暗号方式と混同されることが多い。しかし、両者はあくまで異なる概念だ。セキュリティプロトコルは、暗号アルゴリズムをはじめとする様々な暗号関連技術を組み合わせて安全性を確保するための、いわば「枠組み」である。

三つの役割がある

 セキュリティプロトコルの役割は「盗聴」「改ざん」「なりすまし」の三つの攻撃を防ぐことだ(図2-1)。それぞれの役割を暗号技術で実現する。

図2-1●セキュリティプロトコルの役割
図2-1●セキュリティプロトコルの役割
セキュリティプロトコルは、攻撃者の「盗聴」「改ざん」「なりすまし」の三つの攻撃を防ぐという役割を持っている。このために、暗号や認証の仕組みを利用する。
[画像のクリックで拡大表示]

 情報を平文でやり取りしていると、その通信を盗聴した攻撃者に内容を知られてしまう。そこで暗号アルゴリズムを利用してやり取りを暗号化することで、盗聴を防ぐ。

 改ざんは、相手に送ったデータと相手が受け取ったデータが変わっていないかどうかを確認することで防ぐ。そのために使われるのがハッシュと呼ばれるものだ。ハッシュは任意のデータを一定の長さに変換したデータである。変換にはハッシュ関数という特殊な関数を使う。データが改ざんされているとハッシュの値が変わるので、改ざんされていることを検知できる。

 通信相手がなりすましていないかどうかは、正しい相手であることを証明する「デジタル証明書」を利用して確認することが多い。

 守る対象に応じてこれらを適切に組み合わせる必要がある。

「食材」と「レシピ」がある

 セキュリティプロトコルの仕様には、大きく二つのことが決められている(図2-2)。「具体的にどのような暗号技術を使うか」ということと「それらの技術をどういった手順で使って安全性を確保するか」ということである。

図2-2●セキュリティプロトコルは「食材」と「レシピ」からなる
図2-2●セキュリティプロトコルは「食材」と「レシピ」からなる
セキュリティプロトコルには、どんな暗号技術をどんな手順で使って安全性を確保するかが決められている。料理に例えると、各種暗号技術が食材、手順がレシピに相当する。
[画像のクリックで拡大表示]

 料理に例えると、前者が食材、後者がレシピに相当する。レシピは「食材をうまく使っておいしい料理を作る」ためのもの。セキュリティプロトコルの手順は「暗号技術をうまく使って安全性を高める」ことを目的とする。

 これらは守る対象によって異なるため、様々なセキュリティプロトコルが決められている(表2-1)。Part1で見たように、無線LANを守るのがWPA2、Webサイトへのアクセスを守るのがSSLやTLSだ。ほかにもWANの通信を守る「IPsec」や「SSL-VPN」、リモートアクセスを守る「SSH」、メールを守る「S/MIME」、ネットワーク管理のための通信を守る「SNMPv3」などがある。

表2-1●様々なセキュリティプロトコル
表2-1●様々なセキュリティプロトコル
守る対象に応じて様々なセキュリティプロトコルがある。その中から本特集では脆弱性が大きな問題になったWPA2とSSL/TLSを取り上げる。
[画像のクリックで拡大表示]

手順は前半と後半に分かれる

 セキュリティプロトコルの手順をもう少し詳しく説明したのが図2-3だ。大きく前半の「ハンドシェイク」と後半の「暗号通信」の二つの部分に分かれる。

図2-3●「ハンドシェイク」と「暗号通信」を実施
図2-3●「ハンドシェイク」と「暗号通信」を実施
セキュリティプロトコルの手順は、ハンドシェイクと暗号通信に大きく分かれる。まずハンドシェイクで正しい相手かどうかを確認し、その相手との間で暗号通信を行う。WPA2のハンドシェイクの問題を悪用したのがKRACKs、SSLの暗号通信の問題を悪用したのがPOODLEである。
[画像のクリックで拡大表示]

 ハンドシェイクでは、一般に複数回のやり取りを経て、通信しているのが正しい相手かどうかを確認する。ハンドシェイクの名前は、やり取りの回数で表現されることもある。例えば、4回のやり取りからなるハンドシェイクは「4ウェイハンドシェイク」と呼ぶ。こうしたやり取りの中で、手順の後半の暗号通信で使う鍵を交換する。

 ハンドシェイクによって相手を確認できたら、決められた手順に従って、その相手との間で暗号通信を行う。

 暗号アルゴリズムには、1種類の鍵を使う「共通鍵暗号方式」と2種類の鍵を使う「公開鍵暗号方式」の二つの方式があるが、ここでは共通鍵暗号方式を使うことが多い。共通鍵暗号方式のほうが公開鍵暗号方式よりも処理が軽いためだ。

 これらの手順のどこに問題があっても脆弱性になる。例えば、WPA2ではハンドシェイクの手順に問題があった。これを悪用して攻撃を行うのがKRACKsである。一方、SSLでは暗号通信の手順に問題があった。POODLEはこれを悪用することで、攻撃者が暗号を解読できる。

▼ハッシュ関数
現在、最もよく使われているのが「SHA-2」である。ハッシュ長のビット数に応じて「SHA-256」「SHA-384」「SHA-512」などがある。
▼様々なセキュリティプロトコル
この特集では脆弱性が問題になったWPA2とSSL/TLSを取り上げる。
▼Webサイトへのアクセスを守る
このほかメールを守る「SMTP over SSL」「POP over SSL」などもある。
▼IPsec
security architecture for Internet Protocolの略。
▼VPN
Virtual Private Networkの略。
▼SSH
Secure SHellの略。
▼S/MIME
Secure/Multipurpose Internet Mail Extensionsの略。
▼SNMPv3
Simple Network Management Protocol version 3の略。
▼ハンドシェイク
二つの機器の間で実際の通信を行う前に、準備として必要なやり取りを行うこと。日本語では握手を意味する。
▼公開鍵暗号方式
実際には共通鍵暗号方式で利用する鍵の交換に使われることが多い。