web-dev-qa-db-ja.com

ユーザーに代わってユーザーがドメイン用に発行された証明書を取得しないようにするにはどうすればよいですか?

私にはドメインがあり、他のユーザーがファイルのアップロード、メールの使用、XMPPの使用などにアクセスできます。

これらのユーザーが認証局に行って自分のドメインの証明書を取得することを防ぐにはどうすればよいですか?CAが個人の連絡を必要としない限り、どのようにして技術的にドメインの所有権を証明しますか?

(やや「信頼された」CA、つまりブラウザのリストにあるCAを想定しています。これは、どのようにすべきかではなく、どのようにしてまたは実際にそれを行っている可能性があります。脆弱なプロセスには、弱いプロセスを持つ1つのCAで十分です。)

例えば:

  • 特定の場所にある特定の名前のファイルのアップロード/編集を禁止する必要がありますか?所有者の確認のために予約されたファイルの場所/名前はありますか?
  • 特定のメールアドレスの配布を禁止する必要がありますか? CAが使用する予約済みアドレスはありますか?
    • または、Whoisのメールアドレスを使用していますか?しかし、電子メールが指定されていない場合はどうなりますか?
  • 特定のJabber IDの配布を禁止する必要がありますか? CAはXMPPを使用していますか?
  • 使用される可能性のある他のプロトコルはありますか? DNSに何か?

この質問 は関連していますが、そもそもサーバーへのアクセスを許可すべきではない攻撃者についてです。しかし、私の場合、私は人々にアクセス権を与えたいです。許可しないでください。)

22
unor

更新:フィンランド人は証明書を発行することでこれを示すことができた 「攻撃」ドメインlive.fiの場合は、アドレス[email protected]を使用します。


昨年、私は友人と賭けをしました。彼のログインフォームでMiTM攻撃を成功させてパスワードを盗むために、彼のドメイン名でブラウザが信頼する証明書を取得できることに賭けました。要するに、私は賭けに負けました。 連絡した16のCAのいずれにも、自分がドメインの正当な所有者であることを納得させることができませんでした。メールアカウントを持っているにもかかわらず彼のメールサーバーで、WWWディレクトリの下のユーザーディレクトリへのFTPアクセスがありました。

少し戻りましょう。基本的な証明書を発行する前にCAは何をしますか?彼らには、ドメイン制御検証(DCV)と呼ばれるプロセスがあります。 DCVでは、誰かがあなたに代わって証明書を発行することが難しくなっています。悪い知らせは、各CAがDCVにカスタムの修正や変更を加えることができるため、どのCAが最も弱いリンクになるかを見分けることができないことです。

一般的に、CAは次のいずれかの方法を使用します。

1。ドメインのメール検証:次のいずれかのメールアドレスに確認リンク/確認コードが送信されます。

  • WHOISレコードにどのようなメールがあっても(WHOISプライバシーがある場合は、登録者に連絡してメール転送を設定するよう求められます)。
  • admin @ YourDomain
  • administrator @ YourDomain
  • hostmaster @ YourDomain
  • root @ YourDomain
  • webmaster @ YourDomain
  • postmaster @ YourDomain


2。ドメインCNAME検証:カスタムCNAMEエントリを作成するよう求められます。通常、証明書署名要求(CSR)のハッシュ、またはランダムに生成された任意のキーが含まれます。そのようなエントリの例は

<MD5(CSR)>.yourdomain.com.  CNAME  <SHA1(CSR)>.CA.com


3。 HTTPリクエストの検証:ドメインのrootに特定のテキストファイルをアップロードするように求められます。ファイルは、次のHTTPリクエストでアクセスできる必要があります

http://YourDomain/<MD5(CSR)>.txt

そして、それはSHA1(CSR)を含むべきです。

興味深い結果:「チャレンジ」の最中に、1つのCA(SSL.COM)を取得して、テキストファイルをDomain/MyUserName/Something.txtにアップロードしてメールで送信することに同意しましたMyUserName@Domainへの確認リンク。ただし、WHOISレコードの番号への電話で確認する必要があると主張しました。また、一部のCAは、電子メールの検証前であっても、最初のステップの検証として電話を必要とすることもわかりました。このようなCAは、プライバシーオプションを使用してドメイン名の証明書を発行しません。

したがって、質問に直接回答するには、ユーザーが特別なメールアドレス(上記)を作成できないようにします。また、it@hostadmin@などを追加することもできます。ユーザーがCNAMEエントリを作成できないようにし、最後に、ドメインのルートにファイルを追加できないようにします。

注:16のCAが適切であることが判明したからといって、「顧客の利便性」の名のもとに妥協しようとするCAが存在しないというわけではありません。

39
Adi

私の経験では、CAは次の2つのいずれかを行います。

  • WHOISに記載されているドメイン所有者にチャレンジメールを送信します。
  • カスタムだが一時的なDNSレコードを作成するように顧客に要求します。

時々彼らは両方を尋ねるかもしれません。

この答えはやや逸話なので、偽の証明書を作成できるかどうかに関係なく、強力なセキュリティを実装することをお勧めします。 Google Apps たとえば、サイトにCNAMEレコードの作成を要求しますが、代わりにアップロードされたHTMLドキュメントを受け入れます。これはCAではありませんが、ドメインの所有権の確認に取り組んでいます。

一般に、ユーザーがWebサイトにコンテンツをアップロードできるようにすることには問題があります。

1
David Houde