私はTLSプロトコルハンドシェイクプロセスについて学びました。私の理解からTLSバージョンは、純粋にクライアントOS\Browserサポートによって決まります。そして選択された暗号スイートはサーバーによって決定されます(クライアントの利用可能なスイートに基づいて)
証明書がどのようなプロトコルの一部がどの部分に影響を与えているかを理解しようとしています。 chromeをSHA1証明書について警告し、私のサーバー上の証明書の更新を強制することを忘れないでください(私の組織CAサーバをアップグレードするために基本的に強制的にする)
私の理解からTLSバージョンは、純粋にクライアントOS\Browserサポートによって決まります。
ほとんどの部分では真です。クライアントは強いオプションから始めて、サーバーが提供するものと一致しない場合は、古いプロトコルを再試行することができます。
そして選択された暗号スイートはサーバーによって決定されます(クライアントの利用可能なスイートに基づいて)
かなりない。暗号スイートはサーバーとクライアントの間で合意されています。サーバーは、それがサポートしているものをサポートする1つ以上を提供し、それが強度の降順であるかもしれませんが、クライアントは使用することを選択したもので応答します。
証明書がどのようなプロトコルの一部がどの部分に影響を与えているかを理解しようとしています。
証明書は(相互)認証と鍵交換のためにプレイされました。証明書の費用は、特定のサーバーが自分が主張するかどうかを確認できます(そのPKIの上部に相互に信頼されているCAがあるため)、またクライアントサイドの証明書を使用できる証明書を使用していることを確認できます。認証係数として。証明書上のキーペアを使用した非対称暗号化は、その時点から通信を暗号化するための対称鍵をネゴシエートするためにも使用されます。この方法にはひどいたくさんのニュースとバリエーションがあり、それは非常に複雑で関与していますが、Nutshellでは、それは証明書が有効にするものです。
chromeをSHA1証明書について警告し、私のサーバー上の証明書の更新を強制することを忘れないでください(私の組織CAサーバをアップグレードするために基本的に強制的にする)
これは、提示された証明書に署名するために使用されるアルゴリズムと関係があります。 SHA1は、証明書に署名を生み出すための安全な方法として廃止された衝突のために十分に受けやすいことが証明されています。
合意された暗号の主な寄稿者は次のとおりです。
証明書内の鍵のタイプは、TLS暗号に影響を与える可能性があります。
RSAキーを持つ多くの証明書が表示されます。そのように、相互に合意された暗号スイートは、RSAキーと連携する暗号のみを含むことができる。たとえば、OpenSSLで示すように、このサイトはRSAキーと暗号を使用します。ECDHE-RSA-AES128-GCM-SHA256
(RSAに注意してください)。
ただし、他のサイトはRSAキーを使用しないため、上記の暗号は許可/同意されません。正直な場合は、例を見つけるのに苦労しました。しかしどこかにいなければならない!
以下はTLSセッションの設定に影響を与えます。合意された暗号には影響しませんが、よりバイナリの成功/失敗することになります。
これは暗号の選択を制限しませんが、最近のSHA1の廃止はクライアント、特にブラウザを意味し、SHA1を使用して署名されている証明書(自己署名以外の)を拒否します。
証明書は(そしてほとんどの場合やる)鍵の使用を制限する拡張子を含みます。このリストは RFC 5280セクション4.1.2. と定義され、digitalSignature
など、keyEncipherment
などの高レベルの目的で、ここでは誤った値が含まれている場合、クライアントは証明書を拒否する必要があります。たとえば、CA証明書はkeyCertSign
とcrlSign
しか持たないため、TLSセッション(HTTPSなど)を設定するために使用できないようにしてください。
これは前の拡張子と似ていますが、よりきめ細かいレベルです。このリストは RFC 5280セクション5.2.1.12 で定義されています。たとえば、2つの一般的なEKUSはid-kp-serverAuth
とid-kp-clientAuth
です。どちらもエンティティを認証するためのキーの使用を許可しますが、異なる方向にそうすることができます。サーバー証明書は前者を持つことが期待され、クライアント証明書(たぶんTPMまたはSmartCardなど)は後者を持つことが期待されます。適合ソフトウェアは、正しいEKUを持っていない証明書を拒否すると予想されます。