SSLの仕組みとは?| SSL証明書とTLS

SSL(TLSとも呼ばれます)は、暗号化を使用してユーザーデータをセキュアに保ち、WebサイトのIDを認証し、攻撃者によるインターネット通信の改ざんを防ぎます。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • SSL/TLSの意味を理解する
  • SSL/TLSがインターネット通信をセキュアに保つ方法を説明する
  • SSL証明書を取得する方法、およびSSL証明書がユーザーデータを安全に保持する方法を学ぶ

関連コンテンツ


さらに詳しく知りたいとお考えですか?

サインアップして、Cloudflareからセキュリティ関連の学習用記事をお受け取りください。

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

SSLとは?

SSLはSecure Sockets Layerの略で、インターネット上で行われる通信を暗号化、保護および認証するためのプロトコルを指します。SSLは少し前にTLS(Transport Layer Security)と呼ばれる最新版プロトコルに置き換えられましたが、依然としてこのテクノロジーは一般的に「SSL」と呼ばれています。

SSL/TLSの主な使用例は、クライアントとサーバーの間の通信を保護することですが、メール、VoIP、およびセキュリティで保護されていないネットワーク上の他の通信も保護できます。

サインアップ
Cloudflare CDNを使用してパフォーマンスを向上

SSL /TLSの仕組みは?

SSL/TLSがどのように機能するかを理解するために把握する必要がある基本原則は次のとおりです。

  • セキュアな通信はTLSハンドシェイクで始まり、2つの通信パーティがセキュアな接続を開き、公開鍵を交換します
  • TLSハンドシェイク中に、2者はセッションキーを生成し、TLSハンドシェイク後のセッションキーはすべての通信を暗号化および復号化します
  • 新しいセッションごとに、通信を暗号化するための異なるセッションキーが使用されます
  • TLSにより、サーバー側の当事者、またはユーザーが対話しているWebサイトが、実際に彼らが主張している人であることを保証します
  • TLSは、メッセージ認証コード(MAC)が送信に含まれるため、データが変更されていないことも保証します

TLSを使用すると、ユーザーが(クリック、フォームへの入力などにより)Webサイトに送信するHTTPデータと、Webサイトがユーザーに送信するHTTPデータの両方が暗号化されます。暗号化されたデータは、キーを使用して受信者が復号化する必要があります。

ホワイトペーパー
TLSの力を最大化

TLSハンドシェイク

TLS通信セッションは、TLSハンドシェイクで始まります。TLSハンドシェイクは、非対称暗号化と呼ばれるものを使用します。つまり、会話の両端で2つの異なるキーが使用されます。これは、公開鍵暗号化と呼ばれる技術により可能になります。

公開鍵暗号では、2つの鍵が使用されます。サーバーが公開する公開鍵と、秘密にされ、サーバー側でのみ使用される秘密鍵です。公開鍵で暗号化されたデータは、秘密鍵でのみ解除できます。

TLSハンドシェイク中、クライアントとサーバーは公開鍵とプライベートキーを使用してランダムに生成されたデータを交換し、このランダムデータを使用して、セッションキーと呼ばれる暗号化用の新しいキーを作成します。

セッションキーを使用した対称暗号化

非対称暗号化とは異なり、対称暗号化では、会話の2者が同じキーを使用します。TLSハンドシェイク後、両者は暗号化に同じセッションキーを使用します。セッションキーが使用されると、公開鍵とプライベートキーは使用されなくなります。セッションキーは、セッションが終了した後は使用されない一時キーです。次のセッションのためには、新しいランダムセットのセッションキーが作成されます。

対称暗号化

配信元サーバーの認証

サーバーからのTLS通信には、メッセージ認証コード(MAC)が含まれます。MACは、通信が実際のWebサイトから発信されたことを確認するデジタル署名です。これによりサーバーが認証され、オンパス攻撃およびドメインスプーフィングが防止されます。また、データが転送中に変更されていないことも保証します。

SSL証明書とは?

SSL証明書は、Webサイトの配信元サーバーにインストールされるファイルです。これは、公開鍵とWebサイト所有者のID、およびその他の情報を含む単なるデータファイルです。SSL証明書がないと、WebサイトのトラフィックをTLSで暗号化できません。

技術的には、すべてのWebサイトの所有者は独自のSSL証明書を作成でき、そのような証明書は自己署名証明書と呼ばれます。ただし、ブラウザは、自己署名証明書は証明書認証局によって発行されたSSL証明書ほど信頼できるとは見なしません。

WebサイトがSSL証明書を取得する方法とは?

Webサイトの所有者は、証明書認証局からSSL証明書を取得して、Webサーバーにインストールする必要があります(多くの場合、Webホストがこのプロセスを処理できます)。証明書認証局は、Webサイトの所有者が本人であることを確認できる外部の当事者です。彼らは発行する証明書のコピーを保持します。

無料のSSL証明書を取得することができるか?

多くの証明書認証局はSSL証明書の発行料を請求します。インターネットをより安全にするために、Cloudflareは無料のSSL証明書を提供しています。Cloudflare は、このようなサービスを提供した最初のインターネット・セキュリティおよびパフォーマンス企業です。また、CloudflareではHTTPからHTTPSに移行するWebサイトのパフォーマンスに影響を与えないよう、SSL/TLS パフォーマンスの最適化に取り組みも行っています。Cloudflare の SSL オプションの詳細については、開発者向けドキュメントを参照してください。

HTTPとHTTPSの違いとは?

「HTTPS」のSは、「セキュア」を表します。HTTPSはSSL/TLSを使用したHTTPに過ぎません。HTTPSアドレスを持つWebサイトには、証明書認証局によって発行された正当なSSL証明書があり、そのWebサイトとの間のトラフィックはSSL/TLSプロトコルで認証および暗号化されます。

インターネット全体として、よりセキュアなHTTPSに移動することを奨励するために、多くのWebブラウザは、HTTPのWebサイトに「セキュアでない」または「安全でない」という印をつけ始めました。したがって、HTTPSはユーザーの安全とユーザーデータのセキュリティを守るために不可欠であるだけでなく、ユーザーとの信頼を構築するためにも不可欠になっています。