「TLSとよく聞くが、どういったプロトコルなのか」
当記事をお読みのあなたは上記の疑問をお持ちではないでしょうか。当記事ではTLSの概要や仕組み、SSLとの比較を解説します。TLSのメリットを理解したうえで、TLSの利用シーンをお読みいただけます。TLSを利用したサービスの導入を前向きに検討できるようになるので、ぜひ参考にしてください。
TLSとは|SSLの脆弱性を改善した進化バージョン
TLS(Transport Layer Security)は、インターネット上の通信を暗号化し、安全な通信を実現するためのプロトコルです。
まずは通信の暗号化の解説です。通信の途中で送信者、受信者以外の第三者に内容を見られてしまう(盗聴されてしまう)と、個人情報など重要な情報が外部に流出してしまいます。例として、名前や住所、電話番号などが流出すると悪用や、犯罪に巻き込まれてしまうケースもあるでしょう。通信の暗号化をすることで、仮に通信の途中で送信者、受信者以外の第三者に内容を見られてしまっても、第三者は解読できない状態になります。よって仮に盗聴されても通信の安全性が守られる仕組みです。
TLSを利用することで、通信を暗号化し、安全な通信を実現できます。
そもそもSSLとは?問題点も解説
TLSの理解をするためにはSSL(Secure Sockets Layer)について理解をしておく必要があります。
SSLはTLSより前から使われている通信の暗号化プロトコルです。SSLもTLSと同様に通信の暗号化を行うプロトコルであり、送信者が送った正しい内容を受信者のみが受け取るために利用されていました。
しかし、SSLは利用されるうちに脆弱性が見つかります。暗号化のプロトコルが古いと、暗号化の強度が低いため、セキュリティリスクが高くなります。SSLはバージョンアップを行い、脆弱性を防いできましたが、通信の安全性を疑問視されることが増えてしまいました。
SSLからTLSへの進化
SSLはバージョンアップが続けられ、SSL3.0が利用されていました。しかし、2014年に米Googleのセキュリティチームにより、「POODLE(Padding Oracle On Downgraded Legacy Encryption)」という脆弱性が指摘されました。
POODLEとは、中間者攻撃により暗号化した通信の内容が解読されてしまう重大な脆弱性です。結果として、SSL自体が非推奨となりました。
SSL3.0が非推奨になるとTLSへの移行が進められてきたのです。TLSはSSLの後継プロトコルとして開発され、SSLよりも安全な通信を実現できると期待されています。
SSLとTLSとSSL/TLSの違いとは
TLSはSSLの後継バージョンです。同じ原理で作られた仕組みのため、違いはほとんどありません。SSLの脆弱性をカバーしたものがTLSと考えるとわかりやすいでしょう。
SSLとTLSの細かい違いは、メッセージの認証方法や暗号方式の違いです。専門的な内容となることや、SSLが使われなくなったことを踏まえ、当記事では詳しい解説を割愛します。
SSL/TLSとはTLSの呼び方の1種です。SSLが従来使われていたことで、SSLという名称が業界で定着していました。TLSへの移行が進んでもSSLの名前が根強いことや、両者の違いが少ないことからSSL/TLSという表記をされるようになっています。
TLSの仕組み| TLSハンドシェイク
TLSの仕組みとして、通信時の接続を確立させるTLSハンドシェイクを解説します。
TLSは送信者、受信者がそれぞれ認証を行って、正しい通信相手であることを確認してから通信を開始します。その確認のプロセスがTLSハンドシェイクです。具体的には以下のプロセスで進みます。
- Helloメッセージのやり取り
- 認証
- 鍵の入手と生成
- 鍵を使ってデータの暗号化
Helloメッセージのやり取り
TLSハンドシェイクの前に「TCP」ハンドシェイクを行って、TCP接続を確立します。その後で「TLS」ハンドシェイクがスタートです。TLSハンドシェイクはクライアント(送信者)とサーバー(受信者)がHelloメッセージをやり取りします。
HelloメッセージにはTLSのプロトコルバージョンや、暗号スイートなどが含まれています。Helloメッセージのやり取りによってクライアント、サーバー間で問題なく通信ができることの確認が可能です。なおこの時点では、双方が正しい相手と通信できているかはわかりません。
認証
Helloメッセージのやり取りを終えると、クライアント、サーバー間で認証を行います。認証はTLS証明書を使い、認証局が正しい証明書であることを確認して正しい相手であることを証明するプロセスです。
クライアント、サーバー間の通信だけでは双方が正しい相手かどうかわかりません。そこで第三者機関である認証局が、事前提出されている証明書と一致していることを確認することで正しい相手だと確認が可能です。認証局からの承認を得ることで、次のプロセスに進めます。
鍵の入手と生成
認証を終えると、クライアントとサーバーがそれぞれ公開鍵を交換します。認証で双方が正しい相手であることを確認したため、サーバーが公開鍵をクライアントに提供できる状態になりました。クライアントは受け取った鍵を使ってセッション鍵を生成できます。
同様にサーバーもクライアントの公開鍵を受け取ってセッション鍵を生成可能です。受け取ってこのセッション鍵を使うことで、データの暗号化が可能となります。
鍵を使ったデータの暗号化
それぞれが生成したセッション鍵を用いることで、送信したいデータの暗号化をします。クライアントがセッション鍵を使って、データを暗号化して送信し、サーバーは暗号化された状態のデータを受け取ります。サーバーはデータの復号化(暗号化の解除)を行うことで、送信時の正しいデータが届いたことを確認可能です。
解説したTLSハンドシェイクの一連の仕組みにより暗号化されたデータの送受信が実現します。
TLSのレイテンシー低減につながる技術
TLSは先述したとおり、TLSハンドシェイクを行う必要があるため、レイテンシー(通信遅延)が発生しやすいです。基本的に通信の正確さや安全性と、通信速度はトレードオフになります。しかし、TLSによる正確さや安全性を保ちながら通信速度も速める技術として、以下があります。
- TLS False Start
- TLS Session Resumption
TLS False StartはTLSハンドシェイクを完了する前に、データの送受信を開始する技術です。データの送受信をしつつ、TLSハンドシェイクを進めることで、レイテンシーを抑えられます。
TLS Session ResumptionはTLS通信をしたことがあるサーバー、クライアント間であればTLSハンドシェイクを簡略化する技術です。通常のTLSハンドシェイクよりも短時間で完了できるため、レイテンシーを低減できます。
TLSは1.2・1.3への移行が重要
TLSはバージョン1.0から始まり、2024年4月現在では1.3が最新バージョンです。バージョンが新しいほど、通信の安全性や通信速度性能が高くなります。万が一TLS1.0、1.1を利用している場合には、早めに1.2や1.3に移行しましょう。
TLS1.0と1.1は利用が非推奨となっている
TLS1.0、1.1は古いバージョンとなり、2021年にIETFによって利用が非推奨とされました。
この発表により、TLS1.0、1.1が非推奨となる動きは各サービス、製品でも進められています。例として以下のとおりです。
- Googleが2022年1月にGoogle ChromeのTLS 1.0,1.1を完全無効化
- AppleがiOSやmacOSのTLS 1.0,1.1利用を非推奨化し、今後のバージョンではサポート停止
上記のようにTLS1.0、1.1を使わずに、TLS1.2以上に引き上げるように促しています。SSLより安全とされているTLSでも、古いバージョンではリスクがあることを理解しておきましょう。
最新のTLS1.3を使うことが望ましい
2024年4月現在でTLSの最新バージョンは1.3です。TLS1.2も利用を非推奨化されているわけではありませんが、特別な理由がない限りはTLS1.3を利用しましょう。
1.2と1.3の主な違いとして以下があります。
- TLSハンドシェイクの高速化
- シンプルかつ強力な暗号化
TLS1.3では上記が採用されたことで、TLS1.2よりも通信速度が速く、より安全な通信を実現できます。特に暗号化はTLS1.2以前で見つかっていた脆弱性の可能性を排除したものです。より安全な通信をするためにはTLS1.3が推奨されます。
TLSの利用シーン
TLSの利用シーンとして以下があります。
- メール
- HTTPS通信
- VPN接続
- VoIP通信
メール
TLSはメールの送受信時に用いられ、データの暗号化によってメールの内容や添付ファイルの漏洩を避けることが可能です。
TLSによって暗号化を行うことで、メールの内容、添付ファイルの改ざんや漏洩を防げます。TLSはメールの送受信プロトコルに利用され、それぞれの名前がS(Secure)をつける形に変わり、セキュリティ強化が可能です。
- SMTP→SMTPS
- IMAP→IMAPS
- POP3→POP3S
Sがつくとプロトコル名やポート番号も変わるので、ファイアウォールなどの設定時には注意が必要です。
またTLSにDKIMやSPFなどドメイン認証のセキュリティ技術を組み合わせることで、さらに安全な通信を実現できます。DKIMやSPFについては別記事で解説していますので、併せてご覧ください。
HTTPS通信
TLSはHTTP通信に用いられることでHTTPS通信としてセキュリティを強化しています。
HTTPはWebブラウジングや、データ送受信に用いられるプロトコルです。このHTTPをTLSと組み合わせることで、データの暗号化を行い、安全な通信を実現します。
ChromeやFirefoxなどのブラウザを用いているとき、URLを表示するアドレスバー付近に「安全な通信」という表示を見たことがあるのではないでしょうか。
この表示がある場合はHTTPSで通信しており、安全性が高いページと確認できます。逆にそれがない場合にはHTTPS通信ではありません。
この場合は「安全でないページ」という具合に表示されます。ブラウザを利用する際にはHTTPS通信を利用できる安全なページを利用するよう、社員に促しましょう。
VPN接続
VPN接続にもSSLが用いられ、SSL-VPN通信の形で利用可能です。SSLという名前がついていますが、実態はTLSが用いられます。
VPNは通信を暗号化して、サーバー、クライアント間で安全な通信をするために使われる経路です。
このVPNを利用する際にTLSを用いることで、サーバー、クライアントがお互いの認証を行い、認証が許可されればVPN接続による通信を開始できます。SSL-VPNの仕組みは先述したTLSハンドシェイクと同様で、それぞれがメッセージや鍵をやり取りして実現可能です。SSL-VPNはリモートワーク時に社内のサーバーにアクセスする際などに利用されます。
SSL-VPNを用いることで、安全なVPN接続をより安全な形で利用できます。
VoIP通信
VoIP(Voice over Internet Protocol)通信でもTLSを用いてセキュリティ強化をすることがしばしばあります。VoIPとは電話回線ではなく、インターネットを通じた音声通信のことです。
VoIPは音声通信であることから、リアルタイム性が高いUDP通信を用いられることが多くあります。しかし、UDP通信はリアルタイム性を求めるため、通信の安全性や正確性はTCP通信に劣る点がデメリットです。そこでTCP通信であるTLSとVoIPを組み合わせると、デメリットを解消できます。
VoIP通信にTLSを利用することでリアルタイム性を保ちつつ、通信の安全性を高められます。
TLSの確認と設定
Chrome、Gmail、Microsoft ExchangeにおけるTLSの設定確認方法と設定方法を解説します。それぞれを利用している場合には、ぜひ参考にしてください。
ChromeでのTLSバージョン確認方法
Google Chromeで開いているページのTLSバージョンを確認する方法は以下の通りです。
- 右上の3点リーダーから「その他ツール」「デベロッパーツール」を選択
- 「Elements」「Console」などが並んでいるタブから「Security」を選択
- 「Connection」の項目にTLSのバージョンが記載されている
仮にHTTPSではなくHTTP通信の場合にはSecurityには何も表示されず「このページは安全ではありません」と表示されます。
GmailでのTLS設定方法
GmailでTLSを設定する方法は以下の通りです。
※TLSはデフォルトでも設定されています。
- Google管理コンソールにログイン
- メニューアイコンをクリックし「アプリ」「Google Workspace」「Gmail」「コンプライアンス」の順に選択
- 「セキュア通信(TLS)への準拠」の「設定」を選択
- 「設定を追加」で設定名や以下の項目を入力
a. 影響を受けるメール
b. TLSを必要とするメールのアドレスリスト、またはドメイン
c. オプション - 保存をクリックし、新しい設定が「セキュア通信(TLS)への準拠」に表示されることを確認
上記でGmailに対し、TLSを設定できます。
Microsoft Exchange OnlineでのTLS設定方法
MicrosoftのメールサーバーサービスであるExchangeでもTLS設定が可能です。Gmail同様にTLSはデフォルトでも設定されています。
しかし、デフォルトの場合は通信相手によってはTLSなしでメールを送信可能です。これではコンプライアンスを遵守できない企業は強制的にTLSを有効化する必要があります。強制的にTLSを有効化する方法は以下の通りです。
- Exchange管理センターにアクセス
- 左ペインの「メールフロー」「コネクタ」を開き「コネクタの追加」を選択
- 接続元を「Office365」接続先を「組織のメールサーバー」を選択して次へ
- コネクタ名を入力し、コネクタを使用するタイミングを選択して次へ
- TLSを許可したいドメイン名、またはIPアドレスを入力して次へ
- 「常にトランスポート層セキュリティ (TLS) を使用して接続をセキュリティで保護する (推奨)」にチェックを入れる
- 「検証」をクリックし、完了したら次へ
- 確認し「コネクタの作成」をクリック
上記Exchangeで特定のドメイン宛てのメールでもTLSを有効化できます。
メールの通信経路の暗号化ならHENNGE
TLSはメールやHTTP通信、VPN接続など、さまざまな通信に用いられていることを解説しました。TLSは安全な通信をするために必要なプロトコルです。
特にセキュリティインシデントは年々増加しており、セキュリティ対策に頭を悩ます企業も多いでしょう。この流れは世界各国で見られており、海外企業は次々と通信の暗号化としてTLSを利用しています。
しかし、実は国内ではメールの通信経路の暗号化が設定されていない、というデータがあります。従来、国内の「メールの暗号化」手段としてはPPAPが多く用いられていましたが、PPAPはメールの通信が暗号化されていなければ、結局はパスワードも盗聴されてしまい、ファイルも見られてしまいます。
そこでHENNGE OneのDLP Editionが有効です。当サービスは安全にファイルをやり取りできる機能が搭載されており、脱PPAPを実現できます。メールの通信暗号化に手が届かずとも、PPAPを代替することで、安全なファイルのやり取りが可能です。
まとめ
TLSはSSLの後継として登場した通信の安全性を高めるプロトコルです。メールの送受信やHTTP通信に用いられており、多くのユーザーは意識せずに利用しています。SSL開発以降、バージョンアップが進んでおり、現在はTLS1.3が最新です。最新バージョンを使うことで、セキュリティリスクを抑えられます。
メールの送受信を暗号化せずにファイルのやり取りを行うことは危険です。特にPPAPはパスワードを盗み見されてしまうリスクを抑えられないため、ファイルにパスワードを設定する意味がなくなってしまいます。
HENNGE OneのDLP Editionを利用して、ファイルのやり取りを安全に行いましょう。
- カテゴリ:
- セキュリティ動向