web-dev-qa-db-ja.com

SSLの証明書に自己署名するリスクは何ですか

私が自分でSSL証明書に署名し、認定されたCAを使用していないとします。それを行うことのリスクおよび/または脅威は何ですか?

56
Timo Willemsen

リスクはクライアントにあります。 SSLサーバー証明書の要点は、サーバーの公開鍵を知るためにクライアントが使用することであり、鍵が実際に目的のサーバーに属していることがある程度保証されています。保証はCAから提供されます。CAは、証明書を発行する前に、要求者IDの広範な検証を実行することになっています。

クライアント(ユーザーとそのWebブラウザー)が、クライアントが信頼するCA(MicrosoftによってWindowsに組み込まれたCA)のいずれかによって発行されていない証明書を「受け入れる」場合、リスクは、クライアントが現在、偽のサーバーと通信している、つまり攻撃を受​​けている。 passive攻撃(攻撃者はデータを監視するが、データを変更しない)は、CA証明書が発行されたかどうかに関係なく、SSLによって阻止されることに注意してください。主流のCAかどうか。

一般的には、ブラウザからの恐ろしいセキュリティ警告を無視するようにユーザーをトレーニングするのは望ましくありません。これにより、サーバーのなりすまし攻撃に対して脆弱になります(たとえば、 DNS poisoningを使用して) )。一方、証明書が本物であることを他の方法で確認できる場合(== --- ==)一度、ブラウザは証明書を記憶し、同じ自己署名証明書が使用されている限り、以降のアクセスで警告は表示されません。新しく提案された Convergence PKIは、この原則の拡張です。この「記憶された証明書」は、証明書が変更されない限り保持されるため、遠い将来に自己署名証明書の有効期限を設定する必要があります(ただし、避けたい場合は2038年を超えないようにしてください 相互運用性)問題 )。

自己署名証明書はCAによって「管理」されないため、取り消すことはできないことに注意してください。攻撃者が秘密鍵を盗んだ場合、あなたが永久に失われます一方で、CAが発行した証明書には、理論的には失効の安全策があります(CAが特定の証明書が腐っていることを宣言します)。実際には、現在のWebブラウザは失効ステータスをチェックしません。

66
Thomas Pornin