web-dev-qa-db-ja.com

「指紋チェック」はHTTPS証明書を検証するのに十分ですか?

だから私は場所Aにいます、このサインを見てください:

Secure Connection Failed

指紋を紙に書いています(このWebサイトは一例です):

Certificate fingerprints

OK。それからB(他の国など)に行って、このサイトをチェック。署名(自己署名証明書用)が再び表示されます。しかし:私は私の用紙を取り出し、サイトの指紋を確認します。それは同じだ。

[〜#〜] question [〜#〜]:Webサイトのフィンガープリントを確認すると、次のことを100%確信できます。

  • 2つの場所で同じサイト(サーバー)にアクセスしています(他のサーバーでこのフィンガープリントを作成することはできませんか?、MiTM?)
  • HTTPS接続のコンテンツを盗聴できないため、私は安全です。

pS:ノートブックのFirefoxでプライベートブラウジングを使用しています。サーバー側も私の物です。私は自己署名証明書を生成しました。その間にノートブック側が再起動されたので、もう一度クリックする必要があります。「リスクを受け入れ、とにかく続行します」

16
gasko peter

はい。同じMD5ハッシュで別の証明書を作成する可能性はわずかです(MD5衝突)。基本的に、2つの入力が同じMD5と同じSHA1ハッシュを持つ可能性はありません。このデュアルハッシュフィンガープリントは法廷で証拠として使用されます。ファイルが同じファイルであることを証明したい、または法執行機関の手中にHDDの内容が変更されなかったなどのように、これが行われます。

11
Rod MacPherson

はい、あなたは証明書が正しいものであることを保証しています。これは、関連するハッシュ関数の2番目のプリイメージ耐性に依存しています。

ハッシュ関数の衝突に対する抵抗hは、2つの異なる入力xx 'を見つけてh( x)= h(x ')xが固定されていることを除いて、2番目のプリイメージへの耐性はほとんど同じです。値xが指定されている場合、値を見つけることは不可能ですx ' =、-xとは異なり、-h(x)= h(x ')となります。これがあなたのケースです:xは実際の証明書であり、「場所A」から確認した後、紙にh(x)と書き留めます。攻撃者は、偽造した証明書x 'を作成できる場合にのみ成功します。そのハッシュは、論文に書いたものと一致します。攻撃者はxやあなたが紙に書いた値を選択することができません。彼はこれらの制約の中で働く必要があります。

MD5は衝突に関して完全に壊れている(そしてSHA-1はまだ理論的な方法で弱められている)が、2番目のプリイメージに対するMD5の耐性は非常に優れている(理論上の最大値とほぼ同じ)ため、ニュアンスはある程度重要です。 、そして予見可能なテクノロジーでクラックされる可能性があるものをはるかに超えています)。したがって、あなたの安全。 both MD5とSHA-1を使用する必要すらありません。どちらかをチェックするだけで十分です。

ただし、すべての16進数を確認してください。最初の数個だけをチェックすれば、攻撃者のタスクがはるかに簡単になります。

9
Thomas Pornin