ホームページ >運用・保守 >安全性 >HTTPS はどのようにセキュリティを確保しますか? (詳しい説明)

HTTPS はどのようにセキュリティを確保しますか? (詳しい説明)

青灯夜游
青灯夜游オリジナル
2020-06-17 10:59:282890ブラウズ

この記事では、HTTP の問題について説明し、HTTPS がどのようにセキュリティを確保するかを紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

HTTPS はどのようにセキュリティを確保しますか? (詳しい説明)

#HTTP に関する問題

1、

盗聴のリスク: 通信はプレーンを使用テキスト(暗号化されていない)のため、内容が盗聴される可能性があります(通信内容を第三者に知られる可能性があります)

2,

なりすましの危険性 : 通信相手の本人確認が取れないため、通信内容が盗聴される可能性があります。偽装に遭遇する可能性があります

3,

改ざんリスク: メッセージの完全性が証明できないため、改ざんされている可能性があります

HTTPS

HTTPS はどのようにセキュリティを確保しますか? (詳しい説明)##HTTPS の Web サイトが表示され、ブラウザのアドレスバーに鍵マークが表示されます。

HTTPS はアプリケーション層の新しいプロトコルではありません。通常、HTTP は TCP と直接通信しますが、HTTPS は最初にセキュリティ層 (SSL/TLS) と通信し、次にセキュリティ層が TCP 層と通信します。

HTTPS はどのようにセキュリティを確保しますか? (詳しい説明)SSL/TLS プロトコルは、上記の HTTP の問題を解決するために生まれました。どのように解決されるかを見てみましょう。:

1. すべての情報は暗号化されて送信され、第三者が盗聴することはできません。

2. なりすましを防止するための本人確認機能を備えています

3. 一旦改ざんされた場合の認証機構を備えています

#暗号化##対称暗号化

暗号化メソッド復号化に同じ秘密キーを使用することは、共有キー暗号化と呼ばれ、対称キー暗号化とも呼ばれます。

HTTPS はどのようにセキュリティを確保しますか? (詳しい説明)#ブラウザはサーバーに

client_random
    と一連の暗号化メソッドを送信します
  • サーバーはそれをブラウザに送信します

    server_random
  • と暗号化方式
  • ##既存のブラウザとサーバーには 3 つの同一の資格情報があります:client_random

  • server_random
と暗号化方式

暗号化方式を使用して 2 つの乱数 client_randomserver_random を混合して秘密鍵を生成します。ブラウザとサーバー間の通信用のパスワードです。
既存の問題点: client_randomserver_random

と途中の暗号化方式を第三者が入手でき、この暗号化方式は同時に復号化できるため、仲介者がパスワードを解読することに成功し、復号化してデータを取得することで、この暗号化方式を簡単に破ることができます。

#非対称暗号化

##ブラウザは一連の暗号化メソッドをサーバーに送信します

HTTPS はどのようにセキュリティを確保しますか? (詳しい説明)サーバーは暗号化方式と公開キーをブラウザに送信します。

  • ブラウザはデータを暗号化し、公開キーを介してサーバーに送信します。サーバーはデータを受信します 秘密鍵を使用して復号化します。サーバーはブラウザにデータを送信するときに秘密キーを使用して暗号化し、ブラウザはサーバーから送信されたデータを受信し、公開キーを使用して復号化します。

  • 既存の問題:
非対称暗号化の効率が低すぎるため、暗号化と復号化の速度に重大な影響があり、その後、ユーザーがページを開く速度。

    サーバーからブラウザに送信されるデータのセキュリティは保証できません
  • 。サーバーのデータは秘密キーでのみ暗号化できます (公開キーを使用する場合)。仲介者が公開鍵を取得すると、サーバーから送信されたデータを復号化でき、再び解読されます。

  • HTTPS は対称暗号化と非対称暗号化を組み合わせて使用​​します
  • データ送信フェーズでは引き続き対称暗号化を使用しますが、非対称暗号化を使用します。対称的に暗号化された送信。

#ブラウザは client_random と暗号化方式のリストをサーバーに送信します。

サーバーはそれを受け取り、server_random、暗号化方式、公開鍵を返します。 HTTPS はどのようにセキュリティを確保しますか? (詳しい説明)

    ブラウザはそれを受信し、別の乱数 pre_master を生成し、公開鍵で暗号化し、サーバーに送信します。 (キー操作!)
  • サーバーは秘密キーを使用して、暗号化された pre_master を復号します。

これまでのところ、サーバーとブラウザには同じ client_randomserver_randompre_master があり、さらにサーバーとブラウザにはサーバーはこれら 3 セットの乱数を使用して対称秘密キーを生成します。対称秘密キーを使用すると、双方が対称暗号化を使用してデータを送信できます。

CA (デジタル証明書)

は、対称および非対称のハイブリッド方式を使用して、データの暗号化された送信を実現します。しかし、まだ問題があり、サーバーがハッカーになりすまされている可能性があります。このようにして、ブラウザはハッカーのサーバーにアクセスし、ハッカーは自分のサーバーに公開鍵と秘密鍵を実装できますが、ブラウザはハッカーのサイトにアクセスしていることを完全には知りません。

サーバーは自身の身元を証明する必要があり、権威ある組織が発行した証明書を使用する必要があります。この権威のある組織がCA(認証局)であり、発行された証明書をデジタル証明書(デジタル証明書)と呼びます。

ブラウザの場合、デジタル証明書には 2 つの機能があります。

  • デジタル証明書を通じてブラウザにサーバーの ID を証明する

  • デジタル証明書にはサーバー公開キーが含まれています

デジタル証明書を含む HTTPS リクエスト プロセスを見てみましょう

HTTPS はどのようにセキュリティを確保しますか? (詳しい説明)

##デジタル証明書を使用しない HTTPS リクエスト プロセスと比較して、次の 2 つの主な変更が加えられています。

  • サーバーは公開キーをブラウザに直接返しません。 、しかし番号 Certificate を返します、そして公開キーはデジタル証明書に含まれています;

  • ブラウザ側で追加の証明書検証操作があります。証明書が検証された後、後続のプロセスは継続します。

#参考

  • 非対称性をわかりやすく説明する方法用語 暗号化?

  • #HTTP プロトコルと HTTPS プロトコルを理解するのに 10 分かかりますか?

  • HTTPS 原理分析 - 質問をもとにさらに深く掘り下げる

  • 図解 HTTP

  • ブラウザの動作原理と実践

  • (1.6 ワード) ブラウザの魂 どうやって尋ねるかたくさん拾えますか?

  • 推奨チュートリアル:
Web サーバーのセキュリティ

以上がHTTPS はどのようにセキュリティを確保しますか? (詳しい説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。