この記事では、HTTP の問題について説明し、HTTPS がどのようにセキュリティを確保するかを紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
#HTTP に関する問題
1、盗聴のリスク: 通信はプレーンを使用テキスト(暗号化されていない)のため、内容が盗聴される可能性があります(通信内容を第三者に知られる可能性があります)
2,なりすましの危険性 : 通信相手の本人確認が取れないため、通信内容が盗聴される可能性があります。偽装に遭遇する可能性があります
3,改ざんリスク: メッセージの完全性が証明できないため、改ざんされている可能性があります
HTTPS
##HTTPS の Web サイトが表示され、ブラウザのアドレスバーに鍵マークが表示されます。
HTTPS はアプリケーション層の新しいプロトコルではありません。通常、HTTP は TCP と直接通信しますが、HTTPS は最初にセキュリティ層 (SSL/TLS) と通信し、次にセキュリティ層が TCP 層と通信します。
SSL/TLS プロトコルは、上記の HTTP の問題を解決するために生まれました。どのように解決されるかを見てみましょう。:
1. すべての情報は暗号化されて送信され、第三者が盗聴することはできません。
2. なりすましを防止するための本人確認機能を備えています
3. 一旦改ざんされた場合の認証機構を備えています
#暗号化##対称暗号化
暗号化メソッド復号化に同じ秘密キーを使用することは、共有キー暗号化と呼ばれ、対称キー暗号化とも呼ばれます。
#ブラウザはサーバーに
client_randomサーバーはそれをブラウザに送信します
##既存のブラウザとサーバーには 3 つの同一の資格情報があります:
client_random
暗号化方式を使用して 2 つの乱数 client_random
と server_random
を混合して秘密鍵を生成します。ブラウザとサーバー間の通信用のパスワードです。 既存の問題点:
client_random、
server_random
#非対称暗号化
##ブラウザは一連の暗号化メソッドをサーバーに送信します
サーバーは暗号化方式と公開キーをブラウザに送信します。
ブラウザはデータを暗号化し、公開キーを介してサーバーに送信します。サーバーはデータを受信します 秘密鍵を使用して復号化します。サーバーはブラウザにデータを送信するときに秘密キーを使用して暗号化し、ブラウザはサーバーから送信されたデータを受信し、公開キーを使用して復号化します。
データ送信フェーズでは引き続き対称暗号化を使用しますが、非対称暗号化を使用します。対称的に暗号化された送信。
#ブラウザは client_random と暗号化方式のリストをサーバーに送信します。
サーバーはそれを受け取り、server_random、暗号化方式、公開鍵を返します。
これまでのところ、サーバーとブラウザには同じ client_random
、server_random
、pre_master
があり、さらにサーバーとブラウザにはサーバーはこれら 3 セットの乱数を使用して対称秘密キーを生成します。対称秘密キーを使用すると、双方が対称暗号化を使用してデータを送信できます。
CA (デジタル証明書)
は、対称および非対称のハイブリッド方式を使用して、データの暗号化された送信を実現します。しかし、まだ問題があり、サーバーがハッカーになりすまされている可能性があります。このようにして、ブラウザはハッカーのサーバーにアクセスし、ハッカーは自分のサーバーに公開鍵と秘密鍵を実装できますが、ブラウザはハッカーのサイトにアクセスしていることを完全には知りません。
サーバーは自身の身元を証明する必要があり、権威ある組織が発行した証明書を使用する必要があります。この権威のある組織がCA(認証局)であり、発行された証明書をデジタル証明書(デジタル証明書)と呼びます。
ブラウザの場合、デジタル証明書には 2 つの機能があります。
デジタル証明書を通じてブラウザにサーバーの ID を証明する
デジタル証明書にはサーバー公開キーが含まれています
デジタル証明書を含む HTTPS リクエスト プロセスを見てみましょう
##デジタル証明書を使用しない HTTPS リクエスト プロセスと比較して、次の 2 つの主な変更が加えられています。
#参考
以上がHTTPS はどのようにセキュリティを確保しますか? (詳しい説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。