進化するインターネット技術/IETFトピックス2016-17

第12回

安全な通信を実現するための暗号技術とセキュアプロトコル/スノーデン事件が標準化議論にもたらした大きなうねり

インターネット技術の普及に向け、IPv6、DNS、HTTPなど基本となるプロトコルを定めてきたIETF(The Internet Engineering Task Force)。今年11月には、100回目の会合(IETF 100)がシンガポールにて開催される予定である。IETFがこれまで手がけてきたインターネット技術も、技術の進歩と普及により、現在も多くの分野において議論が継続され、まだまだ目が離せない状況が続いている。本連載では、インターネットの普及と発展を目的に日ごろIETFを中心に活動を行っているISOC-JP(Internet Society Japan chapter)メンバー有志が、ここ最近のIETFでの活動状況について紹介していく。

 みなさんは、覚えているだろうか? 2013年6月、アメリカ国家安全保障局(NSA)による広範囲な盗聴行為(Pervasive Surveillance)により、政府のような大規模な組織によるインターネットに対する攻撃が明らかになり、世の中をお騒がせした事件を……。当時、ニュースなどで注目を集めていたが、インターネットに関する技術的な検討を行っているIETFにおいて、この行為はインターネットに対する攻撃であると捉え、インターネットの仕様を策定するIETFとして対抗手段はないか検討する活動が非常に活発になった。

 今回は、エドワード・スノーデン氏の暴露により明らかになった事件から振り返りながら、その事実がどのように影響を与えていくのかを、IETFという標準化団体を通して振り返る。

 また、その対抗技術として注目を浴びている暗号技術やTLSなどに代表されるセキュアプロトコルの標準化動向を踏まえ、具体的な事例を挙げながら、どのような対策が行われたのか、どのような判断が行われたのか、その背景も含めて振り返る。さらに、この技術/標準化仕様が我々の生活にどのような影響を与えるのかなど、現状を踏まえて今後予想される技術的な動向など注目すべきトピックスについて解説する。

スノーデン事件とは

 2013年6月、NSAが市民の通話記録やインターネットにおける情報収集を実施していたことを、アメリカおよびイギリスの主要メディアが報じた。この報道以前にも政府による盗聴行為が懸念されていたが、この事件は内部告発だったこともあり、衝撃的なニュースとして世界中を駆け巡った。

 この盗聴行為という事実は、欧米諸国における外交政策にも大きな影響を与えるような大きな出来事だった。具体的には、NSAが特殊なプログラムを使って、インターネットの利用者に関するあらゆる情報を、ハイパージャイアントと呼ばれる大手インターネットネット企業から入手していたことなどが含まれる。

 これは、「Big Brother is Watching You」という言葉で知られるジョージ・オーウェルの小説「1984年」で示された世界観そのものであり、インターネットにおける「国家による監視」の懸念が激増し、インターネットに投稿した写真や個人情報、投稿などについて、政府機関に丸見えだったことを理解させた。政府機関は、この状況について「テロ防止のために必要な行為」だったとしている。

 この報道を受けて、世界中のインターネット利用者たちは、意識せずに利用していた便利で自由なインターネットという世界に対して、以下にあるようなさまざまなことを考えるきっかけとなった。

  • インターネット上に示された個人情報は大丈夫なのか?
  • テロ行為防止のためであれば、インターネットに対する広帯域な盗聴行為は許される行為なのか?
  • インターネット自体を利用することをやめるべきなのか?
  • 盗聴行為の存在により抗議活動などが抑圧・制限されてしまい、自由な発言が行えなくなり、多様性を否定した社会になるのでは?

 スノーデン事件報道により、インターネット利用者に対して、「インターネットというもの自体の自由さ・中立さ」を意識させることに成功したと個人的に考えている。

Before IETF 88 Technical Plenary

 さて、スノーデン事件が起きるまで、インターネットにおける安全な通信を行うことを考えていなかったのかというと、そんなことはない。

 IETFのSecurity Areaで、暗号技術を利用した安全な通信を実現するためのプロトコルとして、「暗号技術により通信相手の認証、通信内容の暗号化、改ざんの検出」を実現するTLS(Transport Layer Security)や、「暗号技術によりIPパケット単位で改ざん検知や秘匿化を提供し、暗号化をサポートしていないトランスポート層やアプリケーションにおいても通信内容の盗聴や改ざん検出」を実現するIPsec(Security Architecture for Internet Protocol)などが検討されている。

 これらのセキュアプロトコルは、我々が日常的に利用しているeコマースや企業活動で安全な通信を実現するために広く利用されていまる。ここで例示したセキュアプロトコルであるTLSやIPsecは、IETFで標準化された主要なプロトコルではあるが、IETF全体から見たときには大きな注目を集めずにSecurity Area参加者たちにより検討が行われているような「安全なインターネット環境を実現するためのビルディングブロック」であり、多くの人たちに意識されていなかったという認識を持っている。

IETF 88 Technical Plenary(直後)

 セキュアプロトコル自体、脆弱性や攻撃が発生したときに注目されるような存在だったが、2013年6月に明らかになったスノーデン事件を受け、IETFではどのような状況だったかについて振り返る。

 2013年7月にドイツ・ベルリンで開催されたIETF 87では、政府による盗聴行為について静観していたが、2013年11月にカナダ・バンクーバで開催されたIETF 88では、Technical Plenaryにおいて、Internet HardeningやPervasive surveillance/Monitoringに関するトピックが設定された。

 IABのAlissa Cooper氏が司会を務め、スノーデン事件に端を発して「インターネットを監視から守ることができるのか?」「インターネットを守るために誰/どのような組織が働かなくてはならないのか?」という課題について議論するというものだった。トピックとしては、イントロダクションとしてBruce Schneier氏により、現在のインターネットを取り巻く状況について話題が提供され、その次にはBrian Carpenter氏によって、これまでのIETFについて状況が共有された。

 例えば、1995年以降のeコマースを利用するために強固な暗号技術が必要となったが、多くの政府では、輸出規制よって短い暗号鍵を利用するなど、その利用を制限していた事実がある。その制約について、IETFとして政府機関とも議論してきたことが共有された。

 最後に、Security AreaのディレクターであるStephen Farrell氏が、IETFに関するアクティビティのポテンシャルについて、TLSやIPsecなどの技術的なアプローチがあることを示した。このときのテーマは非常に多くのIETF参加者が興味を持ち、会場の座席が埋まり、立ち見が出ていることからも強い関心を集めたと言える(写真)。

IETF 88 Technical Plenary会場風景

 IETF88 Technical Plenaryで行われた講演資料や議事録が公開されているので、ご興味のある方は参照してほしい。当時、IETF参加者たちが持っていた、政府が行った監視行為に対する熱のようなものを感じることができると思う。

After IETF 88 Technical Plenary(直後)

 多くのインターネット利用者やIETF参加者たちが抱いていた、盗聴という行為に対する漠然とした懸念が現実味を持ったことで、これまで検討されてきていたさまざまなインターネットプロトコルに対して見直しが行われることになった。

 例えば、過去に標準化されてそのまま放置されていたプロトコルに対し、現在利用することが推奨されている暗号強度を満たしているか、また、新たな攻撃の発見やコンピューター能力の向上によって暗号技術が危殆化していないかどうかを確認し、安全な状態へと移行させようという動きが発生した。

 その一環としてさまざまな活動があったが、個人的に印象的だった活動として以下の2つを紹介する。

Handling Pervasive Monitoring in the IETF(perpass)BoF

 Pervasive Monitoring(PM)を「潤沢なリソースを持った組織が行う広範囲における盗聴行為」と定義。スノーデン氏によって明るみになったNSAが行ったPRISMのような問題を想定し、このようなPMの問題についてIETFで考えるための集まりがperpassだ。

 IETF 88でのコンセンサスである「PMは攻撃であり積極的に対処する」を受け、PMを考慮した脅威モデルや、認証がない場合でも暗号化すべき(Opportunistic Encryption)という意見が議論された。IETF 89では、すでに発行されている各RFCに対してPM対策のためのレビュー観点やその進め方について議論を行った。その議論の成果として、RFC7258 Pervasive Monitoring Is an AttackというRFCが発行された。

Using TLS in Applications(uta)WG

 TLSプロトコルによりアプリケーションレイヤーのプロトコルを保護する方法を検討することを目的としたWG。このWGでの活動は、既存技術であるTLSによって、TLS自体を安全に利用することや、TLSを用いてインターネットプロトコルをより安全にするための知見などが検討されており、実際の生活と切っても切り離せないTLSを安全に使うためには不可欠な活動である。

 また、TLSの利用が推奨されていることを裏付ける事実として、2015年に発行されたRFC7540 Hypertext Transfer Protocol Version 2(HTTP/2)を利用する場合、ブラウザーがTLSを要求しており、実質的に必須となっていると考えることができる。

 話を戻して、このWGでの大きな成果として、既存プロトコルを安全に使うためにどうしたらよいのかを議論するという、非常に好感の持てる営みとなっている。セキュアプロトコルの中で最も利用されているTLSに対する既存攻撃に関する概要と、その既存攻撃を踏まえて安全に利用するためにどうしたらよいのかということをまとめたRFCがある。それぞれについて、少し概要を見ていこう。

RFC 7457:Summarizing Known Attacks on Transport Layer Security(TLS)and Datagram TLS(DTLS)

 「2. Attacks on TLS」において、RFCが発行された2015年2月までに既知の攻撃として知られているものが情報整理されており、BEAST攻撃、Padding Oracle攻撃やRC4に対する攻撃などまとめられている。攻撃が適用可能なプロトコルバージョンなど詳しいことを知りたい方は、後述する「SSL/TLS暗号設定ガイドライン」をご覧いただきたい。

RFC 7525:Recommendations for Secure Use of Transport Layer Security(TLS)and Datagram Transport Layer Security(DTLS)

 このRFCの目的は、「TLSを利用する上で最低限満たすべき推奨事項を示すこと」と「TLS 1.3が普及するまでの時間を繋ぐための対応策として対応しておくべきこと」を示している。主に3節および4節にポイントとなる部分がまとめられている。詳細はRFCを参照していただくとして、以下に列挙する。

  • プロトコルバージョンとして、TLS 1.2、TLS 1.1、TLS 1.0の順で優先(MUST)
  • Ephemeral DHやECDHのように一時的な利用のみ許容されるPerfect Forward Secrecy(PFS)を満たす(MUST)
  • 暗号スイートにおいて認証付き暗号であるAuthenticated Encryption with Associated Data(AEAD)に対することを推奨(RECOMMENDED)
  • EXPORT等や112ビット未満の暗号スイートでの接続禁止(MUST NOT)

 また、技術的側面としては、通信経路上から通信内容を盗聴されないための技術や、仮に鍵交換に使用した秘密鍵が何かしらの理由により漏えいした場合に影響範囲を局所化するための技術がある。IETFで検討されるセキュアプロトコルについて標準化動向を確認する際に役立つ概念を説明するので、参考にしてほしい。

End to End Encryption

 インターネット経路上に存在しているモノに対して、やり取りを行う通信データを保護するための手法として、End to End Encryptionというものがある。これは、データは発信元で暗号化され、最終的な宛先で復号されるという手法だ。インターネット経路上において通信データは常に暗号化されているため、期待した宛先まで通信データを秘匿化して送信できるということで注目を集めた。これを実現する仕組みとして、TLSが非常に有名だ。

Perfect Forward Secrecy(PFS)

 盗聴行為に対する対抗策として、過去におけるTLSでの通信データの秘匿を確保する観点から、鍵交換で使った秘密鍵に毎回異なる乱数を付加することによって、毎回異なる秘密鍵を使ってセッション鍵の共有を行うようにする方法がある。例えば、仮に鍵交換で使う暗号アルゴリズムの秘密鍵が漏えいしても、対象となるセッションキーを共有するために利用した乱数が分からなければ、このセッションキーそのものは求めることができず、過去にさかのぼって通信データが読まれる危険性を回避する仕組みがある。この性質は、スノーデン事件で注目を集めた機能要件であり、Perfect Forward Secrecy(PFS)と呼ばれている。近年、IETFで検討されるセキュアプロトコルではこの性質を満たすことが要求されている。

(参考情報)SSL/TLS暗号設定ガイドライン

 SSL/TLSに関する安全な設定方法やSSL/TLSに対する攻撃について、より具体的に、もしくは英語ではなく日本語でじっくり読んでみたいという人向けに、少し古い情報になってしまうが、CRYPTRECが作成してIPAが発行している「SSL/TLS暗号設定ガイドライン」がある。参考にするといいだろう。

 上記に示した以外のIETF 88 Technical Plenary(直後)に関する動向としては、スノーデン事件を受けた脱アメリカ政府の動きとして、アメリカ政府が承認したアルゴリズムではなく、IETF参加者たちが納得した、より安全なアルゴリズムを選択するという検討(例えば、NISTが承認した楕円曲線以外を選択する活動)、盗聴行為への防御手法としてTCP自体の暗号化について検討するTCPINC WGなどが発足されるなど、暗号化の流れを推し進める流れがある。

After IETF88 Technical Plenary(より安全な世界に向けて)

 UTA WGで検討されたRFCにおいて、「TLS 1.3が普及するまでの時間を繋ぐための対応策として対応しておくべきこと」が目標として掲げられているが、TLSを安全に利用しようとしても、プロトコルの制約により安全に利用することができない限界というものが見えてきている。その原因として、該当する機能の無効化を行ったり、拡張機能の追加などアドホックな対策が行われており、根本的な対策になっていないものが多いことに起因している。そのような状況を受け、TLS 1.3に関する検討を2013年から開始した。ここでは、TLS 1.3がどのような考えに基づき検討されているのか、そのプロトコルとしての限界と対処方針を、代表的な項目をピックアップしながら振り返る。

<プロトコルとしての限界と対処方針>

1)十分安全とは言えない危殆化した暗号方式(DES、RC4、MD5、SHA-1)が仕様としてサポートされていて安全ではない懸念がある
対処方針)危殆化した暗号ルゴリズムの利用を禁止

2)解読手法の効率化や計算機能力の向上により安全性を満たすために必要とされる暗号強度が高くなってきている。例えば、スノーデン事件により国家予算レベルの計算資源も視野に入れる必要が出てきており、十分な暗号強度を考慮する必要がある
対処方針)等価安全性で定められる128bitセキュリティ以上の強度とする

3)Cipher Block Chaining(CBC)に代表される暗号利用モードに関する安全性への懸念
対処方針)暗号利用モードとしては認証付き暗号(AEAD)のみ利用する

4)TLSハンドシェイク完了後に接続を維持したまま再度ハンドシェイクを行う機能であるRe-negotiationが存在しており、煩雑なプロトコルに起因して過去において攻撃対象となっていた
対処方針)Re-negotiationの廃止

5)TLSのデータを圧縮して暗号化する機能であるCompression機能により、データ圧縮によるサイズ変化を手掛かりに情報を漏えいしてしまう脆弱性がある
対処方針)Compressionの廃止

 このように、今までのSSL/TLSを踏まえ、プロトコルとしての限界を踏まえた上で、TLS 1.3としての目的や特徴を決定しており、今までの経験が活用されている点に注目してほしい。

 インターネットにおける安全な通信を実現するために必要とされているTLS 1.3だが、仕様に関する議論が難航しており、一進一退の状況で仕様検討が行われている。2016年5月末にワーキンググループでの最終確認を行うというスケジュールで活動していたが、2017年3月現在も仕様に関する議論が専門家たちにより盛んに行われており、安全なプロトコルを実現することの大変さを垣間見ることができる。現在行われている議論内容については、以下に示すTLS 1.3の検討のためのGitHubやIETFのページから確認することができる。興味のある方は確認すると興味深いと思う。この分野に自信のある方は、議論に参加することをお勧めする。

IETF 100に向けて

 IETF 88 Technical Plenaryから発生した大きなうねりは、まだまだ勢いが衰えることなく、新しい暗号技術の検討や利用用途を踏まえた新しいプロトコルなど、IETFのSecurity Areaは楽しく注目すべき領域である。ここまで暗号技術について何度か話題に挙げていたが、暗号技術の安全性については、IETFで議論されず、Internet Research Task Force(IRTF)のResearch GroupであるCrypto Forum Research Group(CFRG)で実施されている。

 IRTFは、その名のとおりインターネットに関する将来の革新的な技術に関する検討を行うグループであるため、先進的なトピックスが議論されている。個人的には、従来のコンピューターと桁違いの計算能力を持った量子コンピューターに対しても安全と考えられている耐量子暗号に関する議論や、さまざまな応用が期待される高機能暗号を実現させる構成要素であるペアリングについて検討されるのではないか?と期待している。しかし、ペアリングにより実現されるID Based Encryption(IBE)については、今現在IETFで標準化されているRFCにおいて利用されているが、IETFコミュニティとしてはKey Escrow(鍵供託)の問題があると考えており、今後の動向が気になるところだ。

 最後に、IETF Security Areaで扱うセキュアプロトコルや暗号技術は、これから利用が期待される分散台帳を実現するための技術であるブロックチェーンや、モノのインターネットとして注目されるInternet of Things(IoT)とも、切っても切れない関係にある。今後のビジネスを考えたときに重要なポイントになる技術動向をいち早くキャッチするためにもIETFに参加し、安全な通信を実現するために参加・協力してはいかがだろうか?