1. https プロトコルは ca
からの証明書を申請する必要があります2. http はハイパーテキスト転送プロトコルであり、情報はプレーンテキストで送信されますが、https は安全な SSL です。暗号化された送信プロトコル
3. http と https はまったく異なる接続方法を使用し、異なるポートを使用します。http のデフォルトのポートは 80 で、https は 443 です
4. http の接続は非常にシンプルでステートレスです。 SSLの導入 +HTTPプロトコルで構築されたネットワークプロトコルは、httpプロトコルよりも安全な暗号化通信や本人認証が可能です。
2. SSL プロトコルは、SSL レコード プロトコルと SSL ハンドシェイク プロトコルの 2 つの層に分かれています
SSL レコード プロトコルは、信頼性の高い送信プロトコル (tcp など) に基づいており、基本的なデータのカプセル化、圧縮、暗号化などの基本的なプロトコルを提供します。高レベルのプロトコルの機能のサポート。
SSL ハンドシェイク プロトコルは、SSL レコード プロトコルに基づいて構築されており、実際のデータ送信が開始される前に、ID 認証、暗号化アルゴリズムのネゴシエーション、および通信当事者間の暗号キーの交換に使用されます。
3. SSL プロトコルによって提供されるサービスには主に
1) データが正しいクライアントとサーバーに送信されることを保証するためのユーザーとサーバーの認証
2) データが途中で盗まれるのを防ぐためのデータの暗号化
3)データの整合性を維持し、送信中にデータが変更されないようにします。
4. SSL プロトコルのワークフロー
サーバー認証フェーズ:
1) クライアントは、新しいセッション接続を開始するためにサーバーに開始メッセージ「hello」を送信します
2) サーバーは、新しいセッションを生成する必要があるかどうかを判断しますクライアントの情報に基づくマスターキー、必要に応じて、サーバーはクライアントの「hello」メッセージに応答するときに、生成されたマスターキーに必要な情報を含めます
3) クライアントは、受信したサーバー応答情報に基づいてマスターキーを生成しますサーバーの公開キーは暗号化されてサーバーに送信されます
4) サーバーはマスターキーを復号化し、マスターキーで認証されたメッセージをクライアントに返し、クライアントがサーバーを認証できるようにします
ユーザー認証フェーズ
認証済み サーバーはクライアントに質問を送信し、クライアントはデジタル署名された質問とその公開鍵を返すことで、サーバーに認証が提供されます
1) クライアントのブラウザは、クライアントの SSL プロトコルのバージョン番号と暗号化アルゴリズムの種類をクライアントに送信します。サーバーとの間の通信に必要な、生成された乱数やその他のさまざまな情報。
2) サーバーは、SSL プロトコルのバージョン番号、暗号化アルゴリズムの種類、乱数、およびその他の関連情報をクライアントに送信します。同時に、サーバーは独自の証明書もクライアントに送信します。
3) クライアントは、サーバーから送信された情報を使用してサーバーの正当性を検証します。サーバーの正当性には、証明書の有効期限が切れているかどうか、サーバー証明書を発行した CA が信頼できるかどうか、公開鍵が信頼できるかどうかが含まれます。発行者のデジタル署名がサーバー証明書のロックを正しく解除できるかどうか、サーバー証明書のドメイン名がサーバーの実際のドメイン名と一致しているかどうかを確認します。合法性検証が失敗した場合、通信は切断され、合法性検証に合格した場合は、4 番目のステップが続行されます。
4) クライアントは、以降の通信用に「対称パスワード」をランダムに生成し、サーバーの公開鍵で暗号化します (サーバーの公開鍵は手順②でサーバーの証明書から取得します)。パスワード」がサーバーに渡されます。
5) サーバーがクライアントの ID 認証を必要とする場合 (ハンドシェイク プロセス中のオプション)、ユーザーは乱数を作成し、その乱数に対してデータ署名を実行し、この署名された乱数をクライアント自身の証明書および暗号化されたデータと組み合わせます。 「プレマスターパスワード」もサーバーに送信されます。
6) サーバーがクライアントの ID 認証を必要とする場合、サーバーはクライアントの証明書と署名された乱数の正当性を検証する必要があります。具体的な正当性検証プロセスには、クライアントの証明書の使用日が有効であるかどうか、および提供する CA が含まれるかどうかが含まれます。証明書を持つクライアントが信頼できるかどうか、発行元 CA の公開キーが顧客の証明書の発行元 CA のデジタル署名を正しく復号化できるかどうか、および顧客の証明書が証明書失効リスト (CRL) に含まれているかどうかを確認します。検証に失敗した場合、通信は直ちに中断されます。検証に合格した場合、サーバーは独自の秘密キーを使用して暗号化された「プレマスター パスワード」を復号化し、一連の手順を実行してマスター通信パスワードを生成します(クライアントも同じ方法でマスター通信パスワードを生成します)。
7) サーバーとクライアントは同じマスター パスワード、つまり「通話パスワード」を使用し、SSL プロトコルでの安全なデータ通信の暗号化と復号化に使用されます。同時に、データ通信の変更を防ぐために、SSL 通信プロセス中にデータ通信の整合性を完了する必要があります。
8) クライアントは、手順⑦のマスターパスワードを以降のデータ通信で対称鍵として使用することを示すメッセージをサーバーに送信し、クライアントのハンドシェイク処理が終了したことをサーバーに通知します。
9) サーバーはクライアントに、手順⑦のマスターパスワードを以降のデータ通信で対称鍵として使用することを示すメッセージを送信し、サーバー側のハンドシェイク処理が完了したことをクライアントに通知します。
10) SSL のハンドシェイク部分が終了し、SSL セキュア チャネルのデータ通信が開始され、クライアントとサーバーはデータ通信に同じ対称キーの使用を開始し、同時に通信の整合性を確認します。