ページの先頭です
最近、IETF(Internet Engineering Task Force)ではTLS(Transport Layer Security)が盛んに議論されています。議論が活発になった理由は、何と言っても2013年にエドワード・スノーデン氏によって暴露されたアメリカ政府によるネット・電話の極秘監視・情報収集プログラムPRISMでしょう。PRISMに代表される広域監視(pervasive monitoring)の存在が明らかとなり、IETFはプライバシの問題を再考する必要にせまられました。RFC 7258で宣言されているように、今後IETFで策定されるプロトコルは、広域監視をやりにくくするよう設計されることになります。
HTTPに関して言えば、TLSの利用が強く推奨されていくことになるでしょう。事実、2015年に策定されたHTTP/2(RFC 7540)を利用する場合、主要ブラウザがTLSを要求するため、TLSの利用が実質的に必須となっています。もちろん、現在の主流であるHTTP/1.1でも、TLSの利用が強く推奨されています。TLSを利用するにはHTTPサーバに証明書が必要です。これまで証明書の発行は有償であり、そのせいでTLSの利用を思いとどまった方も多いでしょう。現在では、Let's Encryptというプロジェクトによって証明証を無償で発行してもらうこともできます。
TLSの最新のバージョンは1.2であり、策定後8年が経過しています。この間、TLSに対する様々な攻撃手法が発見されました。RFC 7457は、攻撃手法をまとめた素晴らしい文章です。新たな攻撃手法や暗号技術の老朽化に伴い、推奨されるTLSの利用方法も変わってきました。現時点でのお薦めの利用方法は、RFC7525でまとめられています。これらの知見をもとに、現在IETFでTLS 1.3の策定が進められています。この記事では、TLSの仕組みを知っている方を対象に、TLSの動向について説明します。
TLSの前身はNetscape Communications社が世に送り出したSSL(Secure Socket Layer)です。1995年にSSL 2.0、1996年にSSL 3.0の仕様が公開されました。SSL 2.0は設計上の様々な問題があり、RFC 6176により利用が禁止されました。SSL3.0も、脆弱性POODLEに代表される攻撃や設計上の問題のため、RFC 7568により使用しないよう求められています。SSLはIETFに持ち込まれて標準化されTLSとなりました。策定されたTLSのバージョンは、1.0、1.1、1.2です。詳しくは後述しますが、現在ではデータの認証と暗号化のためにはAEAD(Authenticated Encryption with Associated Data)という方式を使うことが推奨されています。AEADは、TLS 1.0と1.1では使用できません。端的に言うと、現在TLSを安全に使うには、TLS 1.2を適切な利用方法で使用する必要があります。
SSL/TLSのバージョンに関する情報を表-1にまとめます(IDはInternet-Draftの略記です)。今回、TLS 1.3についても説明しますが、仕様は現在策定中ですので、最終的には少し変わるかもしれないことをご了承ください。
ページの終わりです