HTTP (Hypertext Transfer Protocol) は、現在インターネット上で最も広く使用されているプロトコルであり、ネットワーク セキュリティに対する人々の意識が高まるにつれて、HTTPS の採用が増えています。ショッピング Web サイトにアクセスする場合でも、ブログやフォーラムなどにログインする場合でも、私たちはすべて HTTPS によって保護されています。Google Chrome や Firefox などの主流ブラウザでさえ、すべての HTTP ベースのサイトを安全でないとしてマークしています。
なぜ HTTPS は HTTP より安全なのでしょうか?この質問に答える前に、まず HTTP と HTTPS とは何かを理解する必要があります。
HTTP と HTTPS のアクセス プロセス
インターネットの発展以来、HTTP はインターネット上で情報を送信するための標準プロトコルとなってきました。インターネット内のコンピュータ間で転送される情報は、文書、ファイル、画像、ビデオなどです。
HTTP リクエスト プロセス中、クライアントとサーバーの間の ID 確認プロセスは存在せず、すべてのデータはインターネット上でクリア テキストおよび「ストリーキング」で送信されるため、攻撃されやすい、ハッカーが攻撃する。
上の図からわかるように、クライアントから送信されたリクエストはハッカーによって簡単に傍受される可能性があります。このときハッカーがサーバーになりすました場合、クライアントに気付かれずにあらゆる情報を返すことができるため、「ハイジャック」という言葉をよく聞きます。
そして、HTTPS は実際には SSL を備えた HTTP (HTTP SSL=HTTPS) です。ブラウザのアドレス バーに HTTPS が表示される場合は、Web サイトとのすべての通信が暗号化され、訪問全体がより安全になることを意味します。
HTTPS が HTTP よりも安全である理由
HTTPS のセキュリティは、次の 3 つの側面に反映されることがよくあります。
サーバーを介したサーバー認証ID 検証により、ユーザーは現在対応するサーバーと通信していることを知ることができます。
データの機密性。送信されたデータは暗号化されているため、他の当事者は送信されたデータの内容を理解できません。
データの整合性。送信には検証用のメッセージ認証コード (MAC) が含まれるため、送信データが相手によって変更されることはありません。
例を挙げて比較してみましょう。 HTTP リクエストは、次の GET リクエストのように、HTTP プロトコルに従う複数行のテキストで構成されます:
GET /helloupyun.txt HTTP/1.1 User-Agent: curl/7.73.0 libcurl/7.73.0 OpenSSL/1.1.l zlib/1.2.11 Host: www.upyun.com Accept-Language: en
リクエストはクリア テキストで直接送信されます。クリア テキストであるため、プロトコル コマンドと構文 基本を理解している人は、リクエストの送信プロセスを監視している限り、リクエストの意味を取得して理解することができます。そのため、HTTP 経由でパスワードなどのデータを送信する場合、セキュリティは非常に低くなります。
対照的に、HTTPS は SSL (または TLS) を使用して HTTP リクエストとレスポンスを暗号化するため、上記の例では、リクエストを監視しているユーザーには、判読できないテキストである乱数の文字列が表示されます。
GsERHg9YDMpYk0VVDiRvw1H5miNieJeJ/FNUjgH0BmVAWII6+T4MnDwmCMZUI/orxP3HGwYCSIvyzS3MpmmSe4iaWKCOHH==
暗号化プロセスでは、非対称キーと対称キーをカバーする標準セキュリティ技術である SSL (Secure Sockets Layer) を使用します。
#対称暗号化
対称暗号化とは、暗号化と復号化に同じキーを使用する暗号化アルゴリズムを指します。 現在一般的な暗号化アルゴリズムには、DES、AES、IDEA などがあります。非対称暗号化
非対称暗号化では、公開鍵と秘密鍵の 2 つの鍵を使用します。キーを使用すると、公開キーを使用して Web サイトのアカウントのパスワードとその他のデータを暗号化し、秘密キーを使用してデータを復号化します。この公開キーは Web サイトを閲覧するすべてのユーザーに送信されますが、秘密キーは Web サイトのサーバー自体のみが所有します。 現在一般的な非対称暗号化アルゴリズム: RSA、DSA、DH など。 ChaCha20-Poly1305 暗号化スイートなどの一般的に使用されるスイートでは、これら 2 つのアルゴリズムが使用されます。Chacha20 は対称暗号化アルゴリズムを指し、Poly1305 は ID 認証アルゴリズムを指します。 RFC ドキュメントを参照すると、ChaCha20 が 256 ビットの暗号化強度を提供していることがわかります。これは、HTTPS セキュリティを確保するための対称暗号化アルゴリズムとして十分です。 Poly1305 は、ID 認証アルゴリズムとして認証を提供し、TLS ハンドシェイク プロセス中に攻撃者が安全なデータ ストリームに偽の情報を挿入することを防ぎます。Poly1305 アルゴリズムは、A のセキュリティ暗号化強度を提供します。このタイプの攻撃を防ぐには、約 100 ビットで十分です。 一般に、HTTP と比較して、HTTPS は暗号化方式としてデータを暗号化するだけでなく、Web サイトに安全で信頼できる ID カードを提供します。HTTPS の利点と欠点についてお話しましょう
全体的に、HTTPS には次の 5 つの利点があります。
●最大Web 上のデータとトランザクションのセキュリティを最大限に高める;#● ユーザーの機密情報や機密情報を暗号化する;
#● 検索エンジンでのランキングを向上させる;#● ブラウザ内での " 「安全ではありません」というプロンプトが表示される;
## ● Web サイトに対するユーザーの信頼を高めます。比較的、欠点も重要です:
#● HTTPS プロトコルはハンドシェイク フェーズで比較的長い時間がかかるため、全体的なページの読み込み速度に影響します。 ● データの暗号化/復号化にはブラウザとサーバーでより多くの CPU サイクルが必要になります;#● SSL 証明書の取得には通常料金が必要で、多くの場合コストは低くありません;
● 絶対に安全ではない Web サイトが攻撃され、サーバーが乗っ取られた場合、HTTPS では基本的にセキュリティを保護できません。
関連記事チュートリアル:
Web セキュリティ チュートリアル以上がHTTPS が HTTP より安全である理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。