SSLとTLSの違いとは?
著者: Ahona Rudra
翻訳: 高峯 涼夏
この記事はPowerDMARCのブログ記事 What is the Difference Between SSL and TLS?の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。
主なポイント
- SSLとTLSは、コンピュータネットワーク上で安全な通信を実現するための暗号プロトコルです。
- TLSはSSLの後継であり、SSLで見つかった脆弱性に対応し、セキュリティとパフォーマンスが向上しています。
- SSLとTLSの主な違いには、ハンドシェイクプロトコルや暗号スイート、セキュリティ機能の違いがあります。
- SSL/TLS証明書は、ユーザのWebブラウザとサーバの間で送信されるデータを暗号化して保護するうえで不可欠です。
- 現在では、Webサイトの保護にはTLSが標準として使用されており、SSLは古いセキュリティ方式であるため、廃止されています。
インターネットセキュリティを考える際、TLSとSSLの比較は一般的な話題です。
両者は、Webサーバとブラウザ間の通信を保護する暗号プロトコルであり、インターネット上で送受信されるデータの盗聴や改竄を防ぎます。
SSL(Secure Sockets Layer)とTLS(Transport Layer Security)は、安全で暗号化された接続を確立するという基本的な目的は共通していますが、設計やセキュリティ機能、パフォーマンスの面で大きな違いがあります。
SSLとTLSの違いを理解することは、安全なWeb環境を構築・維持するうえで重要で、特に機密通信を保護するための暗号化などの対策を検討する際に重要です。
SSL(Secure Sockets Layer)とは何か
SSL(Secure Sockets Layer)は、1990年代にNetscapeによって開発された暗号プロトコルであり、Webブラウザとサーバ間で送信されるデータを保護するために使用されます。
パスワードやクレジットカード情報などの機密情報を暗号化するために広く使用され、初期のWebセキュリティの基盤となりました。
当初はSSL 2.0としてリリースされ、その後SSL 3.0で改良され、HTTPSによる安全な通信を可能にしました。
しかし、POODLE攻撃やBEAST攻撃などの深刻な欠陥や深刻な脆弱性が発見されたため、すべてのSSLバージョンは廃止され、現在のブラウザでは実装されていません。
現在では、SSLはTLS(Transport Layer Security)に置き換えられており、より安全で効率的なプロトコルとなっています。
「SSL証明書」という用語は現在も慣用的に使われていますが、実際には、Webサイトでは通信中のデータを保護するためにTLSが利用されています。
TLS(Transport Layer Security)とは何か
TLS(Transport Layer Security)は、インターネット上で安全な通信を実現する暗号プロトコルであり、TLSによる暗号化によってクライアントとサーバ間で交換されるデータを保護します。
TLSは1999年にInternet Engineering Task Force(IETF)によって導入され、SSLの後継として、SSLの脆弱性に対応しながら暗号強度と全体的なセキュリティを向上させました。
その後、TLSは安全なWeb通信の標準となりました。
今ではTLS 1.2および、より効率的でプライバシー保護を強化したTLS 1.3が最も広く使用されています。
TLSは現在、Webブラウザ、メールサービス、VPN、クラウドプラットフォームなどの最新のセキュアなシステムにおいて不可欠な技術となっており、盗聴、改竄、なりすましからデータを保護します。
SSLとTLSの違い
TLSとSSLは、インターネット上での安全な認証とデータ転送を提供します。
では、TLSとSSLにはどのような違いがあるのでしょうか。
また、その違いを意識する必要はあるのでしょうか。
| SSL | TLS |
|---|---|
| SSLはSecure Sockets Layerの略です。 | TLSはTransport Layer Securityの略です。 |
| Netscapeが1995年にSSLを作成しました。 | Internet Engineering Taskforce(IETF)が1999年に初めてTLSを開発しました。 |
| SSLには3つのバージョンがあります: ・SSL 1.0 ・SSL 2.0 ・SSL 3.0 | TLSには4つのバージョンがあります: ・TLS 1.0 ・TLS 1.1 ・TLS 1.2 ・TLS 1.3 |
| SSLは全てのバージョンで脆弱性が発見され、全て非推奨となっています。 | 2020年3月以降、TLS 1.0と1.1は実装されなくなりました。 ほとんどの場合、TLS 1.2が使用されます。 |
| Webサーバとクライアントは、明示的に接続を確立する暗号プロトコルであるSSLを用いて安全に通信します。 | TLSを使用することで、Webサーバとクライアントは暗号化された接続を介して安全に通信することができます。 その結果、TLSがSSLに代わって利用されるようになりました。 |
SSLとTLSの動作におけるその他の主な違いは以下の通りです。
- メッセージ認証
- SSLとTLSの主な違いの1つはメッセージ認証です。
SSLはメッセージ認証コード(MAC)を使用して、メッセージが送信中に改竄されないようにします。
一方、TLSではMACの代わりに、より高度な認証付き暗号(AEAD)などが使用されます。 - レコードプロトコル
- レコードプロトコルは、TLSとSSLの両方で使用される、安全な通信チャネルを通じてデータを運ぶ方法ですが、若干の違いがあります。
TLSでは1つのパケットに1つのレコードしか含まれませんが、SSLではパケットごとに複数のレコードを含むことができます(ただし、これはあまり実装されていませんでした)。
さらに、TLSのレコードプロトコルには、圧縮やパディング(データのサイズを一定に保つために余分なデータを追加すること)のオプションなど、SSLにはない機能がいくつかあります。 - 暗号スイート
- TLSは、暗号化および復号化に使用されるアルゴリズムである様々な暗号スイートを採用しています。
最もよく知られた暗号スイートは、完全前方秘匿性(PFS)を提供し、柔軟な鍵長で使用できる楕円曲線に基づくEphemeral Diffie-Hellman(DHE)鍵交換です。
他にもPFSを実装するいくつかの暗号スイートがありますが、あまり使用されていません。
SSLは、1024ビットのRSA鍵を使用するPFSを持つ暗号スイートを1つだけ実装しています。 - アラートメッセージ
- SSLプロトコルは、通信中の特定のエラーについてクライアントやサーバに通知するためにアラートメッセージを使用します。
TLSにも同様の通知機構がありますが、仕様が異なります。 - SSL/TLSハンドシェイク
- TLSのハンドシェイクはSSLと比べて大幅に改良されており、セッション再開、前方秘匿性(Forward Secrecy)、ECDHEなどの最新の鍵交換方式などの機能を備えています。
これらの強化により、接続はより安全かつ効率的になり、クライアントとサーバ双方の負荷が軽減されます。 - 暗号化アルゴリズム
- SSLでは旧式の暗号化アルゴリズムが使われているのに対し、TLSでは最新の暗号化アルゴリズムが使われており、より高速かつ安全です。
- 鍵交換方式
- TLSは、Diffie-Hellman Ephemeral(DHE)やElliptic-Curve Diffie-Hellman(ECDHE)など、SSLよりも安全性の高い鍵交換方式を実装しています。
- Webサイトのセキュリティへの影響
- TLSは、盗聴や中間者攻撃(Man-in-the-Middle攻撃)、データ改竄をSSLよりも効果的に防ぐことで、Webサイトのセキュリティを大幅に向上させます。
その結果、今ではWebサイトの保護にはTLSが標準として使用されており、SSLは脆弱性の問題から推奨されていません。
なぜTLSがSSLに取って代わったのか?
SSLは、すべてのバージョンに重大なセキュリティ上の脆弱性が存在したため、TLSに置き換えられました。
最もよく知られている攻撃の一つに、POODLE(Padding Oracle On Downgraded Legacy Encryption)攻撃があり、これは攻撃者が機密情報を復号できる可能性がある攻撃です。
SSL 2.0および3.0は根本的な欠陥があることが判明しており、現在では完全に廃止されています。
TLSは、より安全な後継プロトコルとして導入され、前方秘匿性(Forward Secrecy)の実装、より強力な暗号化アルゴリズム、より安全なハンドシェイクプロトコル、より優れた認証メカニズムなどの大幅な改良が加えられました。
これらの強化により、中間者攻撃(Man-in-the-Middle攻撃)やデータ漏洩、暗号攻撃のリスクが大幅に低減されました。
現在では、主要なブラウザやプラットフォームはTLSのみを実装するようになっています。
SSLは現代のシステムでは実装されておらず、使用すると接続に失敗したり、安全でない接続とみなされたりする可能性があります。
WebサイトでSSLまたはTLSが使用されているかを確認する方法
証明書を確認すれば、WebサイトがSSLまたはTLSを使用しているかを確認することができます。
- ブラウザの場合
- ブラウザでは、アドレスバーの鍵アイコンをクリックし、証明書の詳細を表示します。
通常、「Connection」または「Security」タブにTLSのバージョンが表示されます。 - オンラインのSSLチェックツールの場合
- オンラインのSSLチェックツールでは、SSL LabsのSSL Testのようなツールを使用すると、サイトの設定を分析し、使用されているTLSのバージョンや暗号スイートを確認できます。
一般的な誤解として、Webサイトが依然としてSSLを使用していると考えられがちですが、「SSL証明書」という用語はよく使われるものの、実際にはTLS証明書です。
名称として「SSL」が残っているだけであり、実際の安全な通信はTLSによって行われています。
TLSを使用すべきタイミングと理由
常に最新の実装されているTLSバージョン、理想的にはTLS 1.3、少なくともTLS 1.2を使用することが推奨されます。
これらのバージョンは、高いレベルのセキュリティとパフォーマンスを提供します。
旧式のSSLプロトコルの実装を継続すると、データ漏洩の可能性やPCI-DSSやHIPAAなどの業界標準への非準拠といった重大なリスクにさらすことになります。
Webサイト管理者および開発者のベストプラクティスとして、以下が挙げられます。
- SSLおよび古いTLSバージョン(1.0および1.1)を無効化する
- TLS 1.2および1.3のみを有効化する
- サーバソフトウェア、ライブラリ、および証明書を最新の状態に保つ
- SSL/TLSテストツールを使用してドメインを定期的にスキャンする
- 前方秘匿性(Forward Secrecy)を実装する強力な暗号スイートを使用する
これらを実践することで、一般的な脅威の軽減にもつながり、Web通信の継続的なセキュリティが確保されます。
まとめ
SSLとTLS証明書はいずれも、データ通信を暗号化するという同じ役割を持ちます。
TLSはSSLの改良版であり、より安全なプロトコルです。
しかし、一般に「SSL証明書」と呼ばれているものも、Webサイトを保護するという同じ役割を果たします。
いずれもHTTPSによる接続を実現し、ブラウザのアドレスバーに鍵アイコンが表示されることで、安全な通信の目印として認識されています。
SSLとTLSがWebサイトの通信を保護する一方で、DMARCはメールドメインをなりすましから保護します。
DMARCはメール認証の標準であり、ドメイン名を装った未承認の送信元から送られるメールに対処できるようにします。
PowerDMARCを利用することで、ドメインを包括的に管理し、メールチャネルの可視性を迅速に高め、より厳格なポリシーへ安全に移行することができます。
よくある質問(FAQs)
- なぜTLSが標準なのに、いまだに「SSL」と呼ばれるのですか。
- すべての最新の証明書と安全な接続はTLSを使用していますが、「SSL」は長年の普及とマーケティングの影響により、現在でも一般的に使用されている用語です。
現在も一般的に使われています。 - サーバ上でSSLを完全に無効化できますか。
- はい、可能であり、無効化が推奨されています。
無効化することで、既知の脆弱性からWebサイトとユーザを保護することができます。 - TLSに切り替える場合、SSL証明書を更新する必要がありますか。
- いいえ、必要ありません。
証明書はSSL専用・TLS専用といった区別はありません。
証明書が有効であれば、そのままTLSでも使用できます。
ただし、サーバがTLS 1.2または1.3を実装していることを確認する必要があります。