web-dev-qa-db-ja.com

誰かが私と同じDNSサーバーを使用してドメインをハイジャックできますか?

新しいドメインを登録するときは、registarの設定でドメインネームサーバーを割り当てて、ホスティングプロバイダーに送信します。たとえば、Digital Oceanでは、次のように入力します。

ns1.digitalocean.com
ns2.digitalocean.com
ns3.digitalocean.com

次に、サーバーのAレコードにドメイン設定を追加します。同じホスティングプロバイダーの他の誰もが、自分が所有するドメインでAレコードを追加できることに気づきました。

これの発生を妨げているものはありますか?同じドメインネームサーバーを使用する2つの異なるサーバーがAレコードを使用して自分自身にドメインを割り当てようとした場合、ブラウザーでドメインを入力すると、ドメインは実際に解決されますか?同じDNSサーバーでドメイン名の衝突を防ぐものは何ですか?

48
Eran Galperin

以下のコメントセクションを気にしないでください。また、編集履歴の以前の回答を気にしないでください。友人との約1時間の会話(@ joeQwerty、@ Iain、および@JourneymanGeekに感謝します)、そしていくつかの陽気なハッキングの後、私たちはあなたの質問と全体の状況の両方の底に達しました。最初は無茶苦茶で完全に状況を誤解してしまい申し訳ありません。

プロセスをステップ実行してみましょう:

  1. NameCheap.comでwesleyisaderp.comを購入するとします。
  2. レジストラとしてのNamecheapは、NSレコードを入力する場所になります。DigitalOceanでDNSゾーンをホストしたいとします。
  3. 光沢のある新しいドメインのNSレコードをns1.digitalocean.comおよびns2.digitalocean.comにポイントします。
  4. ただし、そのドメインを登録したことを確認できたとしましょうさらに、NSレコードをDigital Ocean'sに変更した。その後、 Digital Oceanアカウントを作成し、ゾーンwesleyisaderp.comを自分のアカウントに追加しました。
  5. * your *アカウントでゾーンを追加しようとしましたが、Digital Oceanはゾーンがすでにシステムに存在していると言っています! あらら!
  6. CNAME wesleyisaderp.comからwesleyisbetterthanyou.comへ。
  7. 陽気さが続く。

一部の友人と私はこのシナリオを実行しました。 @JoeQwertyがドメインを購入し、それをDigital Oceanネームサーバーにポイントしているが、すでにそのゾーンがアカウントに追加されている場合、私はゾーンマスターであり、それを好きなように使用できます。

ただし、誰かが最初にゾーンをDNSアカウントに追加する必要があり、悪意のある事態が発生した場合は、NSレコードを同じホストのネームサーバーにポイントする必要があります。さらに、ドメイン所有者は、NSレコードをいつでも切り替えることができ、不良ゾーンのホストから解決策を移動できます。

これが起こる可能性は控えめに言っても少し低いです。統計的には、52枚のトランプのデッキをシャッフルして、他の人間がこれまでに得たことのない、他の人間がこれまでに経験したことのない順序を取得できると言われています。同じ理由がここにもあると思います。誰かがこれを悪用する可能性は非常に低く、存在するより良いショートカットがあり、おそらく偶然に自然界で発生することはありません。

さらに、レジストラでドメインを所有していて、Digital Oceanなどのプロバイダーで競合するゾーンを誰かが作成した場合、所有権の証明を提供すれば、作成者に尋ねるでしょう。彼らはドメイン名の所有者ではないため、存在する理由はないので、アカウントのゾーンを削除して削除します。

しかし、Aレコードはどうですか?

たとえばDigital Oceanなどのゾーンを最初に持つ人が、それを制御する人になります。同じDNSインフラストラクチャ上に複数の同一のゾーンを持つことはできません。したがって、たとえば、上記のばかげた名前を使用して、wesleyisaderp.comをDigital Oceanのゾーンとして持っている場合、Digital OceanのDNSインフラストラクチャの他の誰もそれをアカウントに追加できません。

ここが楽しい部分です。私は実際にデジタルオーシャンアカウントにwesleyisaderp.comを追加しました。先に行き、それをあなたのものに追加してみてください。それは何も傷つけません。

したがって、結果として、wesleyisaderp.comにAレコードを追加することはできません。それはすべて私のものです。

しかし、どうですか...

@Iainが下で指摘したように、上の私のポイント4は実際には冗長すぎます。私は待つか、計画するか、計画する必要はまったくありません。アカウントでthousandsのゾーンを作成して、しばらくお待ちください。技術的に。何千ものドメインを作成し、それらが登録されるのを待ってから、ゾーンを設定したDNSホストをそれらが使用することを望んでいる場合...何か悪いことをすることができますか?多分?しかし、おそらくそうではありませんか?

Digital Ocean&NameCheapへの謝罪

Digital OceanとNameCheapは一意ではなく、このシナリオとは関係がないことに注意してください。これは正常な動作です。彼らはすべての面で責任がありません。それが与えられた例だったので、私はそれらを使用しました、そしてそれらは非常に有名なブランドです。

60
Wesley

ウェスリーの優れた答えに加えて、これを防ぐための解決策がすでにあることを付け加えたいと思います。 DNSSECと呼ばれます。

基本はこれです:

  • あなたはあなたのドメインを登録します(私はここにwesleyisaderp.comという著名な名前を付けます)
  • ネームサーバーは、通常はユーザー名とパスワードの組み合わせで認証するウェブインターフェースを介して、レジストラに登録します。
  • また、公開鍵と秘密鍵のペアを作成し、公開鍵をDNSKEYレコードの形式でレジストラにアップロードします。 (これは、レジストラがトップレベルドメインのルートサーバー(この場合は.comのルートサーバー)への信頼チェーンを設定する方法です。)再度、独自のユーザー名/パスワードの組み合わせ。ドメインに接続され、他人のドメインには接続されません。
  • ネームサーバーに移動し、レコードを入力して、結果のゾーンファイルに秘密鍵で署名します。または、DNSホスティングサービスへのウェブインターフェースがある場合は、秘密鍵をアップロードして、ゾーンファイルに署名できるようにします。
  • ウェスリーがドメインをハイジャックしてwesleyisbetterthanyou.comにCNAMEしようとすると、彼のレコードは正しいキーで署名されていないため、.comルートドメインサーバーに受け入れられません。 DNSホスティングプロバイダーが賢い場合は、すぐにそれを確認し、適切な秘密キーがない限り、そのドメインにレコードを追加することもできません。
  • 独自のレコードを入力すると、正しいキーで署名されるため、機能します。
  • これでウェズリーをくつろいで笑うことができます。

(ウェスリーが述べた元のケースでは、主なエラーは、Digital Oceanがドメインの所有権を確認せずに誰かにドメインのDNSレコードをセットアップすることを許可しなかったことです。残念ながら、これだけではありません。同じ問題を持つ少なくとも1つのスウェーデンの登録事業者の。)

32
Jenny D

レジストラにネームサーバーを使用するように指示する前に、DigitalOceanでドメインの所有権を主張する(つまり、ドメインをアカウントに関連付ける)限り、問題はありません。

誰かが自分のドメインを自分のアカウントにすでに関連付けている場合は、DigitalOceanネームサーバーが信頼できるようになる前にわかるでしょう。それが発生した場合は、DigitalOceanに連絡して、その人をアカウントから起動させる方法を教えてください。

ベストプラクティスに従って、{ns1、ns2、ns3} .DigitalOcean.comは、他の場所でホストされているドメインの再帰リゾルバとして機能しません。その場合、DigitalOceanがホストするサーバーがこれらのサーバーを汎用リゾルバーとして使用すると、はるかに大きな問題が発生します。これが悪い習慣であることがよく知られていることすべてのために、それを誤解しているホスティングプロバイダーを見つけることはおそらくそれほど難しくありません、そしてそれは乱用の可能性を開きます。

6
mc0e

この問題は、誰もが既存のドメインのネームサーバーを作成できるため、そのようなネームサーバー(Digital Oceanなど)をリゾルバーとして使用するべきではないことを意味すると思います。ドメインの所有権は簡単に証明できるため、ドメインの制御をめぐる戦いは関係ありませんが、たとえば、Digital Oceanでまだホストされていない既存のドメインを好きな場所に向けることができます。

結論:ドメインの所有権の証明を必要としないホスティングサービスのDNSサーバーを信頼しない(たとえば、上記で提案された方法でTXT最初にドメインに特定の値を記録します。これは、たとえばMicrosoft O365とGoogleが行うことです)。