インターネット接続機器のセキュリティ技術として広く用いられているTLSの最新バージョン「TLS1.3」は、IoTデバイスを強く意識して標準化が進められた。本稿では、組み込み技術者向けにTLS1.3の基礎を解説する。前編ではまず、TLS1.3のベースとなる一般的な暗号化通信技術であるSSL/TLSについて説明する。
組み込み機器の中でも、IoT(モノのインターネット)デバイスが扱う情報はビジネス価値の高いビッグデータやプライバシー情報などセンシティブな情報の宝庫であり、デバイスの増加とともにセキュリティの強化が喫緊の課題となっている。
インターネット接続機器の通信の秘密を守るために日常的に使用されているセキュリティ対策の1つが暗号化である。暗号化技術は長年の研究により蓄積された数学理論とソフトウェア技術が結びついた極めて実用的な技術だ。今日のインターネットになくてはならないインフラであり、情報の分散化と流通が進む将来においてさらに重要性が高まることは間違いない。
本稿は、最も広く利用されている暗号化技術であるTLSの最新バージョン「TLS1.3」の基礎解説を目的としている。これまでのTLSは、組み込み技術者にとって近しいとはいえなかったが、IoTデバイスを強く意識して標準化が進められたTLS1.3は、今後の組み込み機器開発で重要な役割を果たす可能性が高い。
そこで前編では、一般に使用されている暗号化通信技術であるSSL/TLSを構成する基本的な暗号技術とプロトコルの仕組みについて、これまで暗号技術にあまり触れたことのない組み込み技術者にも分かりやすく解説する。後編では、2018年8月に新しい標準として正式リリースされたばかりのTLS1.3の具体的な変更点を紹介し、組み込み機器の重要課題であるセキュリティと性能の両立についても考えてみたい。
SSL(Secure Sockets Layer)は、Webブラウザを開発していたネットスケープ(Netscape)が1990年代に開発した暗号化通信プロトコルである。主にインターネットのオンラインサービスや決済の通信の秘密を保護する技術として開発された。用途として、Web通信の暗号化(HTTPS:HTTP over SSL)が一般的でURL先頭の「https:」というプロトコル表記はWeb通信がSSLで保護されている証として日常的に目にしている。最近は常時暗号化(サイトの全コンテンツをhttps:で配信する)のトレンドもあり、インターネットの暗号化はSSLという言葉とともに常識になりつつある。
一方、TLS(Transport Layer Security)は、インターネット技術の標準策定組織であるIETF(The Internet Engineering Task Force)がSSLを基に改良を重ね標準化した後継プロトコルである。現在、インターネットで使われている暗号化通信のほとんどはTLSだが、世間ではSSLという言葉が市民権を得ているので一般的には「SSL」と呼ぶことが多い。本記事ではこれらを区別して表記する。
SSLはv3まで更新されてきたが、現在はほとんど使用されていない。SSL LabsというWebサイトでは、主要サーバの通信プロトコルサポート状況の観測データを公開しているが、レポートによればTLSサポートが80%以上あるのに対してSSLサポートは10%程度とわずかになっている。
この理由は、SSLでプロトコルの脆弱性が発見され、具体的な攻撃手法が公開されているためだ。暗号の世界では、特定の暗号方式について年月の経過とともに脆弱性や有効な攻撃手法が発見されたり、コンピュータ性能の向上で暗号解読が容易になったりすることを「危殆化」すると言う。危殆化した暗号方式を使い続けることは機器をセキュリティリスクにさらし続けることになるため、危殆化状況に応じて利用する暗号化機能も更新する必要がある。
TLSは、1.0、1.1、1.2とバージョンアップを重ね、2018年8月にはTLS1.3がリリースされた。TLS1.3はこれから普及すると考えられるため、主要サーバでTLS1.2が最も多くサポートされていることは当然の結果といえる。
Copyright © ITmedia, Inc. All Rights Reserved.