【ITニュース解説】Understanding SSL/TLS
2025年10月05日に「Dev.to」が公開したITニュース「Understanding SSL/TLS」について初心者にもわかりやすく解説しています。
ITニュース概要
SSL/TLSは、ブラウザとサーバー間でデータを暗号化し、個人情報などを保護する技術だ。HTTPSサイトの🔒マークがその証。両者はハンドシェイクで証明書を検証し、セッションキーを共有して安全な通信を確立する。オンラインでの安全なデータ送受信を可能にする。
ITニュース解説
ウェブサイトを見る際やオンラインで買い物をするとき、私たちの情報が安全にやり取りされているか心配になることがあるかもしれない。インターネット上でデータを安全にやり取りするために非常に重要な技術が、SSLとTLSである。これらは、あなたのパソコンとウェブサイトのサーバーの間で送受信される情報を暗号化し、悪意のある第三者から情報を守るための決まりごと、つまり「プロトコル」である。SSLはSecure Sockets Layerの略で、元々この目的のために開発された技術だが、TLS、すなわちTransport Layer Securityは、SSLのより新しく、より安全な進化版として登場した。現在では、ほとんどの場合でTLSが使われているが、歴史的な経緯から「SSL/TLS」とまとめて呼ばれることが多い。
ウェブサイトのアドレスが「https://」で始まっているのを見たことがあるだろうか。「s」は「secure(安全)」を意味し、この「https」という表示があるウェブサイトは、SSL/TLSによる暗号化が利用されていることを示している。これは、ブラウザとサーバーの間でやり取りされるデータが、暗号化という処理によって、もし誰かに盗み見られても内容が分からないように保護されていることを意味する。これにより、個人情報やパスワード、クレジットカード情報などが、安全にウェブサイトに送信される保証が得られる。
では、実際にウェブサイトがどのようにしてこの安全な接続を確立するのか見ていこう。この一連のやり取りは「SSLハンドシェイク」と呼ばれている。
まず、あなたがブラウザで「https」で始まるウェブサイトにアクセスすると、ブラウザはそのウェブサイトのサーバーに対して「Client Hello!」というメッセージを送る。このメッセージには、あなたの使っているブラウザの種類やバージョン、オペレーティングシステムの情報、そしてブラウザがサポートしている様々な暗号化方式(「Cipher settings」や「Supported encryption algorithms」と呼ばれる)などが含まれている。
この「Client Hello!」を受け取ったサーバーは、それに対して「Server Hello!」というメッセージで応答する。このメッセージには、サーバー自身の情報や、ブラウザが提案した暗号化方式の中からサーバーが利用可能な、最も安全で互換性のある暗号化方式が選択され、伝えられる。さらに重要なのは、サーバーが自身の「デジタルSSL証明書」をブラウザに提示することだ。このデジタルSSL証明書は、そのウェブサイトが本物であることを証明する身分証明書のようなもので、そのウェブサイトのドメイン名、証明書を発行した「Certificate Authority(CA、認証局)」の名前、そして「公開鍵」と呼ばれる特別な情報が含まれている。
ここで登場する「Certificate Authority(CA)」とは、その名の通り、SSL証明書の信頼性を保証する第三者機関のことだ。CAは、その証明書が本当にそのドメインの持ち主によって申請され、その情報が正しいことを確認し、デジタル署名を行う。ブラウザは、受け取ったSSL証明書が有効であるか、そして信頼できるCAによって発行されたかを厳しくチェックする。もし証明書が偽物であったり、信頼できないCAによって発行されたものであったりすれば、ブラウザは警告を表示し、そのウェブサイトへの安全な接続を確立しない。これは、偽サイトに接続してしまうのを防ぐための重要な仕組みである。
ブラウザがサーバーのSSL証明書を信頼できると判断した場合、次のステップとして、実際にデータを暗号化・復号するための「セッション鍵」という一時的な鍵の交換が行われる。まず、ブラウザはランダムな数字の組み合わせから、その接続専用の「セッション鍵」を生成する。このセッション鍵は、その後のすべての通信を暗号化するために使われる非常に重要な鍵だ。
ブラウザは、このセッション鍵を、先ほどサーバーからもらったデジタルSSL証明書に含まれる「公開鍵」を使って暗号化する。公開鍵で暗号化されたデータは、その公開鍵と対になる「秘密鍵」でしか復号できないという特性がある。秘密鍵はサーバーだけが持っているため、公開鍵で暗号化されたセッション鍵は、サーバー以外には誰にも復号できない。ブラウザはこの暗号化されたセッション鍵をサーバーに送信する。
サーバーは、受け取った暗号化されたセッション鍵を、自身だけが持っている「秘密鍵」を使って復号する。これで、ブラウザとサーバーの両方が同じセッション鍵を共有できたことになる。この鍵は、その接続の間だけ有効な一時的なもので、接続が終了すれば破棄される。
セッション鍵の交換が成功すると、サーバーはブラウザに「Finished」というメッセージを送り、ブラウザもそれに応答して自身の「Finished」メッセージを送り返す。これらのメッセージは、互いに合意したセッション鍵を使ってすでに暗号化されている。両者がこれらのメッセージを正常に検証できれば、ついにブラウザとサーバーの間に「安全な接続」が確立されたことになる。
この時点から、あなたのブラウザとウェブサイトのサーバーとの間でやり取りされるすべてのデータは、先ほど交換された共有のセッション鍵を使って暗号化される。これにより、パスワードを入力したり、オンラインで買い物をしたり、個人情報を送信したりする際にも、その情報が第三者に傍受されても内容が分からないように保護される。
つまり、SSL/TLSは、あなたがインターネットを安全に利用するために不可欠な技術であり、日々のオンライン活動、例えば安全なウェブサイトの閲覧、オンラインショッピング、機密性の高い情報を含むコミュニケーションなどを安心して行える理由となっている。ウェブブラウザのアドレスバーに表示される小さな鍵アイコン(🔒)は、このSSL/TLSがきちんと機能しており、あなたの接続が保護されていることの証なのだ。システムエンジニアを目指す上で、このようなインターネットの基盤技術を理解することは、非常に重要な第一歩となるだろう。