前回の記事「TLSとは?(1)IoTデバイス向けの暗号化通信を紹介」では、TLSとSSLの違いやその仕組みについて紹介しました。今回の記事では、TLSのバージョンアップや課題について取り上げます。
TLS1.3とTLS1.2の違い
1999年1月に「TLS 1.0」がリリースされ、それまで使用されていたセキュリティプロトコルのSSLがTLSへと引き継がれました。
その後セキュリティ面の改良を加え、2006年4月に「TLS 1.1」、2008年8月に「TLS 1.2」がリリースされました。
2022年12月現在の最新バージョンは「TLS 1.3」で、「TLS 1.2」よりもセキュリティとスピードが向上しています。
参考:さくらインターネット株式会社 さくらのSSL「SSLとTLSの違いとは」
TLS1.3の特長
セキュリティとスピードの向上
それでは、TLS1.3の特長をTLS 1.2と比較しながら見ていきましょう。
TLS1.3ではTLSハンドシェイクの動作方法が更新されています。脆弱な古い暗号スイートを廃止・整理し、アルゴリズムはすべて、AEAD(Authenticated Encryption with Associated Data) で認証された暗号化を使用しています。この暗号化は、セキュリティ面だけでなくスピード面での改良も実現していることが特長です。
TLS 1.2では鍵を生成するための通信がServer HelloとClient Helloのメッセージの後に開始されるため、往復回数が2回必要でした。TLS 1.3ではServer HelloとClient Helloのメッセージを送るタイミングで鍵を生成するための通信も同時におこなうので、1回の往復でハンドシェイクが完了します。TLS1.2のプロセスについては前回の記事「TLSとは?(1)IoTデバイス向けの暗号化通信を紹介」にも載せているので、こちらも参照してください。
また、クライアントが以前に接続したことがあるWebサイトではTLSハンドシェイクの往復が割愛されます。このように、HTTPS接続のスピードが速くなることで、ユーザーの使いやすさも改善しました。
参考:株式会社翔泳社 CodeZine「安全な通信を実現するTLS 1.3のプロトコル概要をTCPクライアント/サーバーの拡張を例に紹介」
参考:Cloudflare「TLS 1.3を使用する理由とは?」
参考:株式会社ネットワークバリューコンポネンツ「TLS 1.3とは? TLS 1.2との違いと企業が取るべき戦略」
TLS1.3のサポート
TLS1.3を利用するためには、Webブラウザとサーバの両方でTLS1.3に対応する必要があります。
ブラウザのサポート状況
2018年10月にIETFがTLS1.0/1.1 を非推奨にしたことで、主要ブラウザでの同プロトコルの無効化が進められました。
2022年1月時点で、世界の人気トップ15万件のWebサイトにおけるTLSのサポート状況は下記の通りです。
TLS 1.0:39.3%、TLS 1.1:43.0%、TLS1.2:99.6%、TLS 1.3:51.4%
その後、2022年2月にGoogle社がWebブラウザ「Chrome(クローム)」の最新版「Google Chrome 98」をリリースし、TLS1.0/1.1が完全無効化されました。そして、TLS1.0/1.1を利用しているWebサーバではエラー画面が表示され、アクセスできなくなりました。また、同月におけるMicrosoft EdgeやMozilla Firefoxなどの主要ブラウザの最新版でもTLS1.0/1.1が完全無効化されています。
引用(2022年1月時点のTLSのサポート状況):株式会社ブロードバンドセキュリティ「Webサイトのセキュリティ強化を!TLSバージョンアップの対応にむけて」
参考:フィッシング対策協議会「協議会WG報告書」
サーバーのサポート状況
利用しているサーバーまたはホスティング会社がTLS 1.3に対応しているかは、Qualys社のSSL Server テストツールやDigiCert®社のSSL Certificate チェックツールで確認できます。
Webサイトを運営する立場にある人は、プロトコルなどのバージョンアップがおこなわれる際、その影響を理解し、適切な設定や更新作業をおこなう必要があります。随時情報をキャッチアップしながら、ユーザーが安心して利用できるサイト運用を心掛けましょう。
参考:Kinsta Inc「TLS 1.3の概要ーより高速で安全になりました」
参考:フィッシング対策協議会「協議会WG報告書」
TLSの課題
暗号化・復号化における留意点
ここまでTLSの特長を述べてきましたが、留意すべき点もあります。
暗号化通信では複雑な計算処理をおこなうため、電池容量・メモリ容量が少ないマイコンでは利用できないことがあります。もし利用できた場合も、暗号化・復号化の処理に負荷がかかることで、暗号化していない状態と比べて通信速度が遅くなる可能性があります。
参考:GMOグローバルサイン・ホールディングス株式会社「暗号化の基礎知識|仕組みとアルゴリズムの種類、メリット・注意点」
参考:日本電気株式会社「スマートシティIoT特有のセキュリティ要件」
留意点に対する対応
この点に関しては、SSL/TLSのクライアント・サーバ機能を提供するプロトコルスタックの活用を検討するのがよいでしょう。APIを活用することで、簡単に暗号エンジン内蔵のCPUを利用することができ、スペックの低いマイコンでも暗号通信を実現できます。
弊社製品「μNet3/IoT SDK」のご紹介
IoTの短期実装を実現するソフトウェア開発キット「μNet3/IoT SDK」にて、今回ご紹介したTLSの機能をご利用いただけます。
- 機器のIoT化を小さなCPU内蔵メモリでも実現。最適化されたコンパクトタイプのTCP/IPスタック。
- MQTT, TLS, HTTP, WebSocketなどIoTに必要なプロトコルを豊富に用意。
- AWSなどのクラウドへ簡単に接続するためのサンプル、BLEを使ったスマートフォンアプリケーションのサンプルど、IoTに必要なサンプルやチュートリアルを収録。
製品詳細はこちらをご覧ください。
https://www.eforce.co.jp/unet3_iotsdk/