ページ更新日:2024/02/14
SSL/TLSは、インターネット上の通信を安全に暗号化するためのプロトコルです。
現在、安全とされるバージョンは TLS 1.2 以上です。
WebでSSL/TLSを利用する際は「https://」プロトコルを使用し、SSL証明書 をWebサーバーにインストールして運用します。
SSL(Secure Sockets Layer)は、ネットスケープコミュニケーションズ社によって開発された通信暗号化技術です。
TLS(Transport Layer Security)はSSLの後継規格であり、SSLの技術をベースにより安全性を高めた暗号化プロトコルです。
現在、SSL(SSL2.0~3.0)は非推奨であり、実際には多くの環境でTLSが使用されています。しかし「SSL」という名称が広く普及しているため、TLS通信を「SSL通信」と表現することが一般的です。 そのため、TLS通信で利用される証明書も「SSL証明書」と呼ばれています。
SSL/TLS には以下のバージョンがあります。
暗号スイートは、SSL/TLS通信において暗号化・鍵交換・改ざん検知を行うアルゴリズムの組み合わせを指します。
SSL/TLS通信では、データ暗号化に共通鍵暗号(AES・Camelliaなど)が使用され、鍵交換は公開鍵暗号(RSA、DH、DSAなど)で安全に行われます。 また、改ざん検知にはSHA1、SHA-256などのハッシュアルゴリズムが利用されます。
SSL/TLS通信では、使用するバージョンと暗号スイートは、サーバーとクライアント間のハンドシェイクで決定されます。
両者が脆弱性のない最新バージョンおよび安全な暗号スイートに対応していることが重要です。
最近のIntelやAMDのCPUはAES-NI(AES専用ハードウェア処理)をサポートし、ARMではv8以降でAES専用処理が可能です。
そのため、サーバー側でAESの優先度を上げることで処理効率を向上できます。
また、CPU専用回路を必要としない「ChaCha20(ストリーム暗号)」はTLS 1.2以降で利用可能で、AESと併用することでさらなる効率化が可能です。