ホームページ >ウェブフロントエンド >フロントエンドQ&A >マスターが HTTPS と HTTP の違いを分析します。
今日 Yahoo で作業していたときに、サードパーティのツールを使用してクライアントとサーバー間の通信を傍受できないことがわかりました。詳しく調べてみると、URL リクエストが原因であることがわかりました。 https プロトコルと http には大きな違いがあることがわかりました。一般に、http の方が効率的であり、https の方が安全です。
まず、HTTPS とは何かについて話しましょう:
HTTPS (セキュア ハイパーテキスト転送プロトコル) セキュア ハイパーテキスト転送プロトコル これは、クライアント コンピューターとサーバー間の情報交換のために HTTP に基づいて開発された安全な通信チャネルです。情報交換には、HTTP の安全なバージョンである Secure Socket Layer (SSL) が使用されます。 これは Netscape によって開発され、そのブラウザに組み込まれ、データの圧縮および解凍操作を実行し、ネットワーク経由で結果を返します。 HTTPS は実際には、Netscape の Secure Socket Layer (SSL) を HTTP アプリケーション層のサブレイヤーとして使用します。 (HTTPS は、TCP/IP との通信に HTTP のようなポート 80 ではなくポート 443 を使用します。) SSL は、ビジネス情報の暗号化に適した RC4 ストリーム暗号化アルゴリズムとして 40 ビット キーワードを使用します。 HTTPS と SSL は X.509 デジタル認証の使用をサポートしているため、ユーザーは必要に応じて送信者を確認できます。
HTTPS と HTTP の違い:
https プロトコルでは、CA に証明書を申請する必要があります。通常、無料の証明書はほとんどなく、料金を支払う必要があります。 http はハイパーテキスト転送プロトコルであり、情報は平文で送信されますが、https は安全な SSL 暗号化通信プロトコルであり、前者は 80、後者は 443 というまったく異なる接続方法を使用します。
http 接続は非常にシンプルで、SSL+HTTP プロトコルによって構築されたネットワーク プロトコルであり、HTTP プロトコルよりも安全です。 :
1. ホストの信頼の問題 . https を使用するサーバーは、サーバーの使用タイプを証明するために CA に証明書を申請する必要があります。その証明書が対応するサーバーに使用されている場合にのみ、クライアントはセカンダリ ホストを信頼します。したがって、現在の銀行システムの Web サイトと主要なアプリケーションはすべて https です。実際、これは非常に非効率ですが、銀行はサーバーを使用することに何の意味もありません。ローカルの問題、クライアントはすべて私たち自身のものであるため、サーバーを信頼する必要があります
2. 通信プロセス中のデータ漏洩と改ざん
一般に、https はサーバーを意味します。証明書があります。
a) 主な目的は、サーバーがそのサーバーであることを確認することです。これは最初の点と同じです。
b) サーバーとクライアント間のすべての通信が暗号化されます。具体的には、クライアントが生成する対称キーは、一般的な意味でのハンドシェイク プロセスを通じて暗号化されます。もちろん、クライアントに要件がある場合には、クライアント証明書も必要になります。個人情報を表す場合は、ユーザー名/パスワードに加えて、CA によって認証された身元情報も必要になります。一般に、個人証明書は他人が模倣することができないため、これによりあなたの身元をさらに確認できます
b) 現在、プロフェッショナル版です。このように、特定の証明書はバックアップ キャリアとして USB フラッシュ ドライブになる場合があります。たとえば、私が使用している通信銀行のオンライン バンキングではこの方法が使用されています。 HTTPS は面倒なはずです。 a) 元の単純な http プロトコルでは、https がキーを返して暗号化アルゴリズムを確認する必要があるため、どのアプリケーションでも 6/7 回のラウンド トリップが必要です。 b) 次は、特定の http プロトコルです。すべての応答またはサーバーは、対称暗号化/復号化の方が効率的ですが、それでも CPU を大量に消費するため、CPU パワーが比較的低い場合、パフォーマンスが確実に低下し、より多くのリクエストが処理されなくなります。
特徴: SSL の概要:
SSL は、Netscape によって提案されたセキュリティおよび機密性プロトコルであり、ブラウザ (Internet Explorer、Netscape Navigator など) と Web サーバー (Netscape の Netscape Enterprise Server、ColdFusion Server など) の間に SSL データ送信用の安全なチャネルを構築します。 TCP/IP 層の上位およびアプリケーション層の下で実行され、RC4、MD5、RSA などの暗号化アルゴリズムを使用し、ビジネス情報の暗号化に適した 40 ビット キーを使用して、アプリケーションに暗号化されたデータ チャネルを提供します。 。同時に、Netscape はそれに応じて HTTPS プロトコルを開発し、それをブラウザに組み込みました。HTTPS は、実際には HTTP のようなポート 80 を使用するのではなく、デフォルトのポート 443 を使用して TCP/IP と通信します。 HTTPS プロトコルでは、送信側で元のデータを暗号化し、受信側で復号化するために、送信側と受信側が相互に既知のキーを交換する必要があるため、送信されたデータはネットワーク ハッカーによって簡単にハッキングされません。復号化。 ただし、暗号化と復号化のプロセスには多くのシステム オーバーヘッドが必要であり、マシンのパフォーマンスが大幅に低下することが、HTTPS プロトコルを使用したデータ送信の効率が HTTP プロトコルを使用した場合の 10 分の 1 にすぎないことを示しています。セキュリティと機密保持のため、Web サイトのすべての Web アプリケーションで暗号化用の SSL テクノロジーが有効になり、HTTPS プロトコルを使用して送信される場合、Web サイトのパフォーマンスと効率は大幅に低下しますが、その必要はありません。一般的に言えば、すべてのデータにそれほど高いレベルのセキュリティと機密性が必要なわけではないため、機密データを含む対話型処理に HTTPS プロトコルを使用するだけで済み、両方の利点を最大限に活かすことができます。つまり、https を使用する必要がない場合は、使用しないようにしてください。