265

SSL 証明書を安全に検証するために必要な一連の手順は何ですか? 私の(非常に限られた)理解では、httpsサイトにアクセスすると、サーバーがクライアント(ブラウザ)に証明書を送信し、ブラウザがその証明書から証明書の発行者情報を取得し、それを使用して発行者に連絡し、何らかの形で比較します有効性のための証明書。

  • これはどのように正確に行われますか?
  • 中間者攻撃の影響を受けないようにするプロセスについてはどうですか?
  • ランダムな人物が独自の検証サービスをセットアップして中間者攻撃に使用し、すべてが「安全に見える」ようにするのを妨げるものは何ですか?
4

6 に答える 6

357

これは非常に単純化された説明です:

  1. Web ブラウザは、Web サーバーの公開鍵を含む Web サーバーの証明書をダウンロードします。この証明書は、信頼できる認証局の秘密鍵で署名されています。

  2. Web ブラウザには、すべての主要な認証局の公開鍵がインストールされています。この公開鍵を使用して、Web サーバーの証明書が信頼できる認証局によって実際に署名されていることを確認します。

  3. 証明書には、Web サーバーのドメイン名や IP アドレスが含まれています。Web ブラウザは、証明書に記載されているアドレスが接続を開いているアドレスであることを証明機関に確認します。

  4. Web ブラウザは、この接続で HTTP トラフィックを暗号化するために使用される共有対称キーを生成します。これは、すべてに公開鍵/秘密鍵の暗号化を使用するよりもはるかに効率的です。ブラウザは Web サーバーの公開鍵を使用して対称鍵を暗号化し、それを返送します。これにより、Web サーバーだけが秘密鍵を持っているため、Web サーバーだけが復号化できるようになります。

中間者攻撃を防ぐには、認証局 (CA) が不可欠であることに注意してください。ただし、署名されていない証明書であっても、共有対称キーにアクセスする方法がないため、誰かが暗号化されたトラフィックを受動的にリッスンすることはできません。

于 2008-10-09T17:28:36.913 に答える
68

(上記のように)証明書を購入することに加えて、無料で独自の証明書を作成することもできることに注意してください。これは「自己署名証明書」と呼ばれます。自己署名証明書と購入した証明書の違いは単純です。購入した証明書は、ブラウザがすでに認識している認証局によって署名されています。つまり、ブラウザは購入した証明書の信頼性を簡単に検証できます。

残念ながら、これにより、自己署名証明書はGoDaddyやVerisignなどの商用CAで販売されている証明書よりも本質的に安全性が低く、使用する場合はブラウザの警告/例外に対応する必要があるという一般的な誤解が生じています。これは正しくありません

自己署名証明書(またはbobinceが提案するCA証明書)を安全に配布し、サイトを使用するブラウザーにインストールすると、購入したものと同じくらい安全であり、中間者に対して脆弱ではありません。攻撃と証明書の偽造。明らかに、これは、サイトへの安全なアクセスが必要なのが少数の人だけである場合にのみ実行可能であることを意味します(たとえば、内部アプリ、個人ブログなど)。

于 2009-02-05T02:16:53.953 に答える
61

あなたが言った

ブラウザーはその証明書から証明書の発行者情報を取得し、それを使用して発行者に連絡し、何らかの方法で証明書の有効性を比較します。

次の 2 つの理由から、クライアントは発行者に確認する必要はありません。

  1. すべてのブラウザには、すべての主要な CA 公開鍵のリストが事前にインストールされています
  2. 証明書は署名されており、その署名自体が証明書が有効であることを証明するのに十分です。クライアントは、発行者のサーバーに連絡することなく、その証明書が本物であることを確認できるからです。それが非対称暗号化の利点です。

2. は 1 なしでは実行できないことに注意してください。

これは、私が以前に作成したこの大きな図でよりよく説明されています

(下部の「署名とは」にスキップ)

ブロブ

于 2016-05-30T16:06:06.837 に答える
10

クライアントには、事前にシードされた SSL 認証局の公開鍵のストアがあります。サーバーが信頼されるためには、サーバーの証明書から中間機関を経て、いわゆる「ルート」証明書の 1 つに至る信頼のチェーンが必要です。

信頼できる機関のリストを調べたり、変更したりできます。多くの場合、信頼できる地方自治体の証明書を追加するためにこれを行います。たとえば、勤務先の会社や通っている学校などです。

事前にシードされたリストは、使用するクライアントによって異なります。主要な SSL 証明書ベンダーは、ルート証明書がすべての主要なブラウザー ($$$) にあることを保証します。

攻撃者が信頼されたルート証明書の秘密鍵を持っていない限り、中間者攻撃は「不可能」です。対応する証明書は広く展開されているため、このような秘密鍵が公開されると、e コマースのセキュリティ全般に深刻な影響を与える可能性があります。そのため、これらの秘密鍵は非常に厳重に保護されています。

于 2008-10-09T17:24:35.627 に答える
9

より技術的なことに関心がある場合は、おそらく次のサイトが最適です: http://www.zytrax.com/tech/survival/ssl.html

警告: うさぎの穴は深くなります :)。

于 2016-06-22T19:27:16.883 に答える