[Bagu] コンピュータネットワーク - HTTPとHTTPSの違い、HTTPS暗号化通信の原理

1. HTTPとHTTPSの基本概念

HTTP: インターネット上で最も広く使用されているネットワーク プロトコルです。クライアントおよびサーバーの要求と応答 (TCP) の標準です。WWW サーバーからローカル ブラウザにハイパーテキストを送信するために使用される送信プロトコルです。ブラウジング サーバーの効率が向上し、ネットワーク送信が削減されます。

HTTPS:セキュリティを目的としたHTTPチャネルであり、簡単に言えばHTTPにSSL層を追加したHTTPの安全版であり、HTTPSのセキュリティ基盤はSSLであるため、暗号化の詳細にはSSLが必要となります。

HTTPS プロトコルの主な機能は、データ送信の安全性を確保するために情報セキュリティ チャネルを再開する機能と、Web サイトの信頼性を確認する機能の 2 つに分類できます。

2. HTTPとHTTPSの違い

1. HTTPS プロトコルは CA に証明書を申請する必要がありますが、一般に無料の証明書が比較的少ないため、一定の料金が必要です。

2. HTTP はハイパーテキスト転送プロトコルであり、情報は平文で送信されますが、HTTPS は安全な SSL 暗号化転送プロトコルです。

3. HTTP と HTTPS はまったく異なるリンク方式を使用し、使用するポートも異なります (前者はポート 80、後者はポート 443)。

4. HTTP リンクは非常にシンプルでステートレスです。HTTPS プロトコルは、SSL+HTTP プロトコルから構築されたネットワーク プロトコルで、暗号化された送信と ID 認証を実行でき、HTTP プロトコルよりも安全です。

3. HTTPS暗号化通信原理

1.HTTPSとは何ですか

1.1 httpsの誕生の理由

HTTP (Hypertext Transport Protocol) は、ネットワーク通信を実現するための仕様で、実際のアプリケーションでは、Web ブラウザと Web サイト サーバー間の情報転送によく使用されます。

ただし、HTTP はコンテンツをクリア テキストで送信し、いかなる形式のデータ暗号化も提供しません。ただし、この場合、送信プロセスのあらゆる段階でデータが盗まれたり改ざんされたりする可能性があり、これはまた、ユーザーとユーザーの間で矛盾が生じる可能性があることを意味します。以下に示すように、仲介者が存在し、通信プロセスで行うことはすべて仲介者の制御下にあります。

ここに画像の説明を挿入しますHTTP のクリア テキスト送信では送信プロセスが安全ではないという事実を考慮して、暗号化のために HTTPS が登場しました。

1.2 https暗号化方式

https では、実際に http をセキュアな SSL/TLS プロトコルで実行できます。これにより、HTTPS = HTTP + SSL/TLS,SSL/TLS プロトコルを使用してサーバーの ID が確認され、ブラウザとサーバー間の通信が暗号化されます。

SSL プロトコルは HTTP と TCP の間のセキュリティ層にあり、このセキュリティ層を通過するデータは暗号化および復号化されます。一般的な構造は次のとおりです。

ここに画像の説明を挿入します
図からわかるように、HTTPS は新しいプロトコルではありません。

1.3.httpとhttpsの違い

  • http はクリア テキスト送信であるためセキュリティ リスクがありますが、https は暗号化と復号化に SSL/TLS プロトコルを使用するため、データ送信の安全性が高まります。
  • http のポートは 80、https のポートは 443、
  • http を使用したデータ送信には、TCP 3 ウェイ ハンドシェイク接続のみが必要です。https を使用したデータ送信には、TPC 3 ウェイ ハンドシェイクに加えて、暗号化送信に入る前に SSL/TLS ハンドシェイクも必要です。
  • https では暗号化が必要なため、サーバーの ID が信頼できることを確認するために CA (認証局) にデジタル証明書を申請する必要があり、証明書が強力であればあるほど、コストも高くなります。

2.httpsワークフロー

  • クライアントは https リクエストを開始し、サーバーのポート 443 に接続します。
  • サーバーにはデジタル証明書のセット (証明書の内容には公開鍵、認証局、有効期限などが含まれます) があり、要求を受信した後、デジタル証明書情報をクライアントに送信します (公開鍵は証明書情報に含まれています)。 、秘密鍵はサーバーによって保持されます)
  • クライアントはデジタル証明書の有効性を検証します
  • 検証に合格した後、クライアントは証明書情報内の公開キーを取り出し、その公開キーを使用してランダムに生成されたキーを暗号化し、サーバーに送信します。
  • サーバーは、暗号化されたデータを受け取り、独自の秘密鍵を使用して非対称復号を実行し、クライアントの鍵を取り出し、ユーザーが要求した結果データをクライアントの鍵を使用して暗号化し、クライアントに送信します。 。
  • クライアントはデータを受信すると、独自のキーを使用して対称的に復号化し、最終的な平文データを取得します。

ここに画像の説明を挿入しますここに画像の説明を挿入します

3. デジタル証明書

3.1 デジタル証明書とは何ですか

上記のプロセスでデジタル証明書というものがありますが、これは何ですか?何に使うのですか?

対称方式と非対称方式を組み合わせることで、データの暗号化された送信を実現できます。しかし、この方法にはまだ問題があり、私たちが公式ウェブサイトにアクセスしたいIPアドレスをハッカーがDNSハイジャックによってハッカーのIPアドレスに書き換えてしまうと、私たちがそのウェブサイトにアクセスすると、実際にハッカーのサーバーにアクセスしてしまうことになります。自ら公式サイトにアクセスすると、公開鍵と秘密鍵はサーバー上に実装されており、ブラウザにとってはハッカーのサイトにアクセスしていることは分かりません。

したがって、この状況では、サーバーがブラウザに「私が私である」という証明を提供する必要もあります。現時点では、権威ある組織が発行した証明書を通じて自分自身を証明する必要があります。

この権威ある機関をCA(Certificate Authority)といい、発行される証明書をデジタル証明書といいます。

ブラウザにとって、デジタル証明書には 2 つの機能があります。1 つはデジタル証明書を通じてブラウザに対してサーバーの ID を証明することであり、もう 1 つはデジタル証明書にサーバーの公開キーが含まれていることです。

3.2 電子証明書の申請方法

では、CA に証明書を申請する方法を説明します。たとえば、Web サイト A が CA にデジタル証明書を申請する必要がある場合、通常の申請プロセスは次の手順に分かれています。

  • まず、A は秘密鍵と公開鍵のセットを準備し、秘密鍵を自分用に保管する必要があります。
  • 次に、公開キー、会社、サイト、およびその他の情報を CA 機関に送信し、認証を待ちます。この認証プロセスには料金がかかる場合があります。
  • CA は、A がオンライン、オフライン、およびその他のチャネルを通じて提供した情報の信頼性 (企業が存在するかどうか、企業が合法であるかどうか、ドメイン名が企業に属しているかどうかなど) を検証します。
  • 情報が確認されると、CA は A に認証デジタル証明書を発行します。これには、A の公開鍵、組織情報、CA 情報、有効期間、証明書のシリアル番号などが含まれます。この情報はすべて平文であり、生成された証明書が含まれています。 CA.サインのそばにあります。

3.3 証明書の有効性を確認する方法

ここに画像の説明を挿入します
まず CA が証明書を発行するプロセスを理解する

  • CA はまず、Web サイト A から送信された公開鍵、目的、発行者、有効期限、およびその他の情報をパッケージに入れ、次にハッシュ アルゴリズムを使用してこの情報を計算し、ハッシュ値を取得します。
  • 次に、CA は独自のキーを使用してハッシュ値を非対称暗号化し、証明書署名を生成します。つまり、CA は証明書に署名します。
  • 最後に、証明書の署名を証明書に追加してデジタル証明書を形成します

次に、クライアントがサーバーのデジタル証明書を検証するプロセスは、次のプロセスに従って元に戻すことができます。

  • まず、ブラウザは証明書内の関連する平文情報を読み取り、CA の署名時に使用したのと同じハッシュ関数を使用してハッシュ値 H1 を計算して取得します。
  • 通常、ブラウザとオペレーティング システムは CA の公開キー情報を統合し、ブラウザは CA 公開キーを使用して受信した証明書の署名を復号化し、別のハッシュ値 H2 を取得します。
  • H1 と H2 の値を比較し、同じであれば証明書が正当であることを証明すると同時に、ブラウザはドメイン名情報、有効期限など証明書に関連する情報も検証します。
  • この時点では、CA が誰であるかを確認することに相当しますが、この CA は比較的ニッチな可能性があり、ブラウザはそれを信頼してよいかわかりません。その後、ブラウザはこの CA に証明書を発行した CA の検索を続けます。を検証し、同様に CA の信頼性を検証します。通常、OSには信頼できる最上位CAの証明書情報(公開鍵を含む)が組み込まれていますが、ブラウザに組み込まれている最上位CAがCAチェーン内に見つからない場合も、証明書は有効であると判断されます。違法であること。
    (組み込み CA に対応する証明書はルート証明書と呼ばれます。ルート証明書は最も権威のある組織です。ルート証明書は自ら署名します。これを自己署名証明書と呼びます。)

4. まとめ

この記事では、まず https とは何か、http と https の違い、次に https のワークフローを紹介し、最後にデジタル証明書とは何か、デジタル証明書の申請と検証方法を紹介します。

おすすめ

転載: blog.csdn.net/weixin_39589455/article/details/130904398