HTTPS(フルネーム:SecureSocketレイヤーを介したハイパーテキスト転送プロトコル)は、セキュリティを目標とするHTTPチャネルです。 HTTPに基づいて、送信暗号化とID認証により、送信プロセスのセキュリティが確保されます[1]。 HTTPSは、HTTPに基づいてSSLを追加します。 HTTPSのセキュリティ基盤はSSLであるため、暗号化の詳細にはSSLが必要です。 HTTPSには、HTTPとは異なるデフォルトのポートと、暗号化/認証レイヤー(HTTPとTCPの間)があります。 このシステムは、認証と暗号化された通信方法を提供します。 これは、トランザクション支払いなど、ワールドワイドウェブ上のセキュリティに敏感な通信で広く使用されています。
HTTPSは、主に2つの部分で構成されています。HTTP+ SSL / TLS、つまり、暗号化された情報を処理するためのモジュールのレイヤーがHTTPに追加されます。 サーバーとクライアント間の情報送信はTLSで暗号化されるため、送信されるデータはすべて暗号化されたデータです。
HTTPの原則
①クライアント'のブラウザは、最初にネットワークを介してサーバーとの接続を確立する必要があります。 接続はTCPを介して完了します。 通常、TCP接続のポート番号は80です。接続が確立された後、クライアントはサーバーに要求を送信します。 リクエストの形式は、Uniform Resource Identifier(URL)、プロトコルバージョン番号、それに続くリクエスト修飾子、クライアント情報、ライセンスコンテンツなどのMIME情報です。
②リクエストを受信した後、サーバーは対応するレスポンス情報を提供します。 形式は、情報のプロトコルバージョン番号、成功またはエラーコードを含むステータス行であり、MIME情報には、サーバー情報、エンティティ情報、および可能なコンテンツが含まれます。
HTTPSの原則
①クライアントは、サポートするアルゴリズムのリストと、キーの生成に使用される乱数をサーバーに送信します。
②サーバーはアルゴリズムリストから暗号化アルゴリズムを選択し、それとサーバーの公開鍵を含む証明書をクライアントに送信します。 証明書には、認証目的のサーバーIDも含まれ、サーバーは、キーを生成するための乱数として使用されるユーザーも提供します。
③クライアントはサーバー'の証明書を検証し(証明書の検証にはデジタル署名を参照できます)、サーバー'の公開鍵を抽出します。 次に、pre_master_secretというランダムなパスワード文字列を生成し、サーバー'の公開鍵を使用して暗号化し(非対称暗号化/復号化を参照)、暗号化された情報をサーバーに送信します。
④クライアントとサーバーは、pre_master_secretとクライアントとサーバーのランダムな値に基づいて、暗号化キーとMACキーを個別に計算します(DHキー交換アルゴリズムを参照)。
⑤クライアントはすべてのハンドシェイクメッセージのMAC値をサーバーに送信します。
✧サーバーはすべてのハンドシェイクメッセージのMAC値をクライアントに送信します
アドバンテージ
HTTPSプロトコルを使用してユーザーとサーバーを認証し、データが正しいクライアントとサーバーに送信されるようにします。
HTTPSプロトコルは、SSL + HTTPによって構築されたネットワークプロトコルであり、暗号化された送信とID認証に使用できます。 HTTPより安全です。 送信中にデータが盗まれたり変更されたりするのを防ぎ、データの整合性を確保できます。
HTTPSは、現在のアーキテクチャで最も安全なソリューションです。 完全に安全というわけではありませんが、man-in-the-middle攻撃のコストが大幅に増加します。
欠点
同じネットワーク環境で、HTTPSプロトコルはページの読み込み時間を50%近く延長し、消費電力を10%から20%増加させます。 さらに、HTTPSプロトコルもキャッシュに影響を与え、データのオーバーヘッドと消費電力を増加させます。
HTTPSプロトコルのセキュリティには範囲があり、ハッカー攻撃、サービス拒否攻撃、およびサーバーハイジャックにはほとんど影響しません。
最も重要なことは、SSL証明書のクレジットチェーンシステムが安全ではないということです。 特に、一部の国がCAルート証明書を制御できる場合、man-in-the-middle攻撃も同様に実行可能です。
コストの増加。 HTTPSが展開された後、HTTPSプロトコルの作業により、追加のコンピューティングリソースの消費が増加します。 たとえば、SSLプロトコル暗号化アルゴリズムとSSLインタラクションの数は、一定量のコンピューティングリソースとサーバーコストを占有します。 大規模なユーザーアクセスアプリケーションのシナリオでは、サーバーは頻繁な暗号化および復号化操作を実行する必要があり、ほぼすべてのバイトを暗号化および復号化する必要があり、サーバーのコストが発生します。 クラウドコンピューティング技術の発展に伴い、データセンターに導入されたサーバーの使用コストは、規模の拡大に伴い徐々に減少しています。 ユーザーアクセスセキュリティの向上と比較して、投入コストは許容レベルまで低下しています。




