Warum benötigen Sie den awverify-CNAME-Eintrag für Azure?

7

Siehe z. B.: So richten Sie CNAME so ein, dass es auf Azure verweist

oder der Text im Azure-Portal:

Verwalten Sie benutzerdefinierten Domänentext

Warum ist das überhaupt notwendig? Warum beweist das Zeigen des Domainnamens durch einen A-Eintrag nicht , dass ich der Eigentümer der Domain bin?

Ich meine ... wie kann man sonst überhaupt einen DNS-Eintrag ändern?

Welchen Missbrauch verhindert diese Regel?

Dirk Boer
quelle
Möchten Sie die Abstimmung erklären, damit ich meine Frage aktualisieren kann?
Dirk Boer
Sie bitten zufällige Fremde im Internet, die Richtlinien eines Unternehmens zu erläutern. Es wäre viel sinnvoller, diese Firma zu fragen.
Jenny D
Ich bin mir ziemlich sicher, dass es dafür tatsächlich einen technischen Grund gibt. Leute, die viel über DNS und Cloud wissen, kennen möglicherweise den Grund dafür - sie geben mir und anderen ein viel besseres Verständnis für diese Systeme und ihre Einschränkungen. Außerdem bezieht sich Azure bei Fragen tatsächlich auf StackOverflow, also stelle ich sie theoretisch.
Dirk Boer
Mir ist bewusst, dass sie Leute hier verweisen. Mir ist nicht bekannt, dass die Leute, die hier freiwillig helfen, bei Azure angestellt sind. Wir sind klug und hilfsbereit, aber wir sind sie nicht.
Jenny D
Ich vermute jedoch, warum sie sich für diese Option entschieden haben, als sie ihr Verifizierungssystem erstellt haben, dass das System nach einem CNAME und nicht nach einem A-Datensatz sucht. Warum sie diese Entscheidung getroffen haben, können nur sie beantworten.
Jenny D

Antworten:

6

Wenn Sie die Kontrolle über eine DNS-Suche für einen Computer haben oder einen Host-Eintrag einfügen können, können Sie einen A-Eintrag für diesen Computer fälschen und auf eine Azure-Website verweisen (nichts hindert Sie daran, dies für eine VM zu tun obwohl)

Wenn Sie einen cname-Eintrag erstellen und ihn unabhängig überprüfen (über das interne / öffentliche DNS-System), haben Sie die Kontrolle über die Domain und fälschen nicht die Domain eines anderen.

Michael B.
quelle
Warum wurde diese Antwort akzeptiert, wenn sie ungenau ist, sehr wenig aussagt und es viele bessere (und positivere) gibt?
Massimo
@Massimo es scheint gleichermaßen positive Antworten zu geben! Sie können es jederzeit bearbeiten, wenn Sie der Meinung sind, dass es "ungenau" ist, oder eine korrekte Antwort liefern. Persönlich hatte ich das Gefühl, dass die anderen Antworten die Frage, warum ein cname verwendet wird, nicht beantworteten, also habe ich eine Antwort beigesteuert, die den Grund erklärte. Zum Zeitpunkt des Schreibens gab es eine einzige Antwort, die falsch war.
Michael B
Die Frage war, warum ein CNAME anstelle anderer Datensatztypen verwendet wird, nicht das Grundthema "Sie müssen Änderungen am DNS vornehmen, um den Domainbesitz nachzuweisen". Die richtige Antwort lautet "Weil Azure-Websites über eine dynamische IP-Adressierung verfügen und Sie daher mit ihren öffentlichen Namen auf sie verweisen". Außerdem hat Ihr Punkt über Spoofing hier eigentlich nichts zu bedeuten ...
Massimo
@Massimo gemäß Azure-Dokumentation "Azure weist auch eine virtuelle IP-Adresse zu" und "Für Webanwendungen erstellen Sie entweder einen A-Datensatz oder einen CNAME-Datensatz." auch "Die IP-Adresse kann sich ändern, wenn Sie Ihre Web-App löschen und neu erstellen oder den Web-App-Modus wieder auf kostenlos ändern" - Die Frage "Warum ist dies notwendig / welcher Missbrauch hört damit auf" ist die Frage, die ich beantwortet habe Der awverify-Datensatz hat nichts mit dem Herstellen einer Verbindung zur Website zu tun - er dient zur Überprüfung (der Hinweis befindet sich im Namen)
Michael B
2

Um die Kontrolle über die Domäne nachzuweisen, müssen Sie einige Informationen in einen DNS-Eintrag in der Domäne einfügen, der Ihr Azure-Konto identifiziert.

Solche Informationen können in den Domänennamen eingebettet werden, auf den ein CNAME verweist. Der Teil der Domain, der in Ihrem Beitrag weggelassen wurde, würde voraussichtlich Ihr bestimmtes Azure-Konto identifizieren.

Sie müssen diesen Namen eigentlich nicht geheim halten. Schließlich wird es öffentlich sichtbar, sobald Sie es in einen DNS-Eintrag einfügen.

Der Grund, warum sie mit einem A-Datensatz nicht dasselbe tun konnten, ist, dass ein A-Datensatz nicht genügend Entropie enthält, um die gleiche Sicherheit zu erreichen.

Das bedeutet nicht, dass der CNAME die einzige Methode ist, die sie hätten verwenden können. Andere Methoden, die hätten funktionieren können, sind:

  • Ein TXT-Datensatz
  • Ein AAAA-Datensatz
  • Mehrere A-Datensätze

Persönlich halte ich einen TXT-Datensatz für eine vom Verifizierer zufällig generierte Subdomain für die beste Methode, da sie am wenigsten aufdringlich ist. Dies scheint in Ihrem Fall jedoch nicht unterstützt zu werden.

Kasperd
quelle
Hallo @kasperd, danke für deine ausführliche Antwort. Was meinst du mit "nicht genügend Entropie"? Könnte damit zu tun haben, dass Englisch nicht meine Muttersprache ist :)
Dirk Boer
@DirkBoer Wenn zwei Benutzer jemals versuchen würden, gleichzeitig für dieselbe Domain verifiziert zu werden, müssten ihnen unterschiedliche IP-Adressen zugewiesen worden sein, um zu wissen, welcher der Benutzer erfolgreich verifiziert wurde. Und die IP-Adressen sollten besser so unterschiedlich sein, dass eine nicht versehentlich in die andere umgewandelt wird, weil der Benutzer einen Tippfehler macht. Um so etwas auf robuste Weise zu tun, sind mehr Adressen erforderlich, als aufgrund eines IPv4-Mangels verfügbar sind.
Kasperd
@DirkBoer Sie können 2 ^ 16 IPv4-Adressen nicht nur für solche Überprüfungen angemessen zuweisen. Und das würde immer noch nur 16 Bit Entropie ergeben. Mit IPv6 könnten Sie 2 ^ 80 Adressen ohne die geringste Sorge zuweisen, was Ihnen viel Entropie geben würde, sodass ein AAAA-Datensatz funktionieren würde. Ein CNAME- oder TXT-Datensatz würde eine Textzeichenfolge enthalten, die noch mehr Entropie enthalten könnte.
Kasperd
2

Lassen Sie mich versuchen, Ihre Frage mit zwei Fällen zu beantworten. In beiden Fällen müssen Sie weiterhin überprüfen, ob Sie der Eigentümer sind. Dies ist nur ein Sicherheitsschritt.

1) www.example.comwird nicht besucht und ist nicht in Produktion

2) www.example.comist derzeit in Produktion und wird stark genutzt

1) Wenn Ihre Domain gerade eingerichtet wird oder sich nicht in der Produktion befindet oder auf die zugegriffen wird, können Sie einen CNAME-Datensatz erstellen, auf den verwiesen wird yoursite.azurewebsites.net. Nicht awverify.myhost.azurewebsites.netbenötigt.

2) Wenn Ihre Domain stark genutzt wird und derzeit auf sie zugegriffen wird und Sie testen möchten, ob Azure die Änderungen in Ihren DNS-Einträgen sieht, können Sie eine Subdomain mit dem Namen ' awverify' wie in erstellen awverify.example.comund auf ein erstelltes Sub verweisen -domain awverify.myhost.azurewebsites.net. Dies hat keine Auswirkungen auf Ihre aktuellen Benutzer, die auf Ihre Website zugreifen www.example.com. Sobald Azure überprüft, ob die Änderung im CNAME angezeigt wird, können Sie Benutzer über die Wartung benachrichtigen und den A-Datensatz ändern. Wenn Sie nur den A-Datensatz ändern, wird die Site möglicherweise bis zu 8 Stunden lang als offline angezeigt.

Um Ihre Frage einfach zu beantworten, müssen Sie sie nicht verwenden awverify. Nur das Ändern des CNAME kann ebenfalls funktionieren. Durch einfaches Ändern des A-Datensatzes wird der gesamte Datenverkehr von yourdomain.comnach umgeleitetyoursite.azurewebsites.net

Hoffe das hilft.

Yudhistre
quelle
Hallo @Massimo / Yudhistre, danke für die erweiterte Antwort. Aber was ich immer noch nicht bekomme - wie überprüft ein CNAME, ob ich der Eigentümer bin, und ein A-Datensatz nicht ?
Dirk Boer
2
Ein Datensatz verweist auf IP-Adressen, CNAME-Datensätze verweisen auf Namen (sie sind Aliase). Sie verwenden keine A-Datensätze, um auf Azure-Dienste zu verweisen, da diese eine dynamische IP-Adressierung verwenden und ein A-Datensatz auf eine statische IP-Adresse verweisen muss. Stattdessen haben Azure-Dienste feste Namen , sodass Sie CNAME-Datensätze verwenden müssen, um auf sie zu verweisen.
Massimo
Sie können tatsächlich eine statische IP reservieren ( blogs.msdn.com/b/benjaminperkins/archive/2014/05/05/… ) - außerdem wird explizit davon gesprochen, einen A-Eintrag auf Ihre IP zu verweisen (was für nackte Benutzer häufig erforderlich ist) Domains)
Dirk Boer
Ich denke also, irgendwo muss es tatsächlich einen anderen technischen Grund für den gesamten Awverify-Prozess geben.
Dirk Boer
1
Ihre zweite 1) ist falsch. Sie können den Datenverkehr nur dann auf eine Website in Azure leiten, wenn Sie den Awverify-Schritt ausgeführt haben. (Ich habe dies gerade überprüft.) Sie werden einfach zu einer Seite weitergeleitet, auf der steht: "Der Web-App-Eigentümer hat eine benutzerdefinierte Domäne registriert, die auf den Microsoft Azure-App-Dienst verweist, Azure jedoch noch nicht so konfiguriert, dass er sie erkennt."
Michael B
0

1) Ich habe mehrere Sites in Azure eingerichtet und alle haben dieselbe IP-Adresse im A-Datensatz. Ich weiß nicht, ob die IP-Adresse des A-Datensatzes möglicherweise auch einem anderen Konto zugewiesen wurde, aber möglicherweise ist dies eine Möglichkeit. In diesem Fall kann die Azure-Website eines anderen Benutzers möglicherweise hochgeladen werden, indem die Domäne einfach in das eigene Azure-Kontrollfeld eingegeben wird. Dies ist nur eine Theorie, ich weiß nicht, ob es aus der Ferne möglich ist.

2) Wie oben erwähnt, ist der CNAME-Datensatz im Grunde ein inerter Datensatz. Der Verkehr wird nicht umgeleitet. Als ich eine große Site und ihr SSL-Zertifikat migrierte, war es ein Segen, mit awsverify den Besitz beanspruchen zu können, die Domäne und das SSL-Zertifikat konfigurieren zu lassen und dann den gesamten Code in Azure zu testen. Wochen später habe ich den A-Datensatz geändert, um live zu gehen. Der Punkt ist, dass der A-Datensatz erst zum Zeitpunkt der Inbetriebnahme geändert wurde, Wochen nachdem die awsverify-Funktion zur Überprüfung des Eigentums an der Domain verwendet wurde. In meinem Fall war es also hilfreich.

Bill Clark
quelle
0

Nicht, dass ich damit einverstanden wäre, aber hier ist die Antwort, die ich direkt von Microsoft erhalten habe. Kurz gesagt, es verhindert, dass jemand eine Domain, die Sie besitzen, zu einer anderen Azure-Webanwendung hinzufügt, jedoch nur im selben Datencenter wie Sie. Im Wesentlichen müsste jemand versuchen, eine Domäne zu registrieren, die Sie besitzen UND die sich im selben Datencenter (Azure-Region) befindet, damit dieser Schutz hilfreich ist. Aus DNS-Sicht macht es wenig Sinn, da ich www.microsoft.com hinzufügen und auf jedem Webserver, den ich besitze, eine gefälschte Webseite einrichten kann. Wenn ich jedoch keinen Zugriff habe, um den DNS-Eintrag zu ändern, bedeutet dies nichts. Sicher, ich könnte dies mit einem nicht autorisierten DNS-Server auf einem nicht autorisierten Zugriffspunkt tun, aber wofür benötige ich in diesem Fall eine Azure-Webanwendung? Ich kann eine VM hochfahren und die Einschränkung trotzdem umgehen. Es macht für mich wirklich keinen Sinn und ist wirklich nur ein Ärger, wenn es darum geht, eine neue Site hinzuzufügen. Der Vorgang, der einige Minuten dauert, setzt jetzt auf DNS, bevor ich einer Webanwendung überhaupt eine Domain hinzufügen kann. Dies ist im Allgemeinen für neue Domains in Ordnung, aber wenn ich eine vorhandene Domain habe, ist das ein Schmerz. Ich muss diesen anderen DNS-Eintrag erstellen, ihn dann löschen, nachdem ich meine Domain zu meiner Webanwendung hinzugefügt habe, und dann den DNS-Eintrag ändern, den ich tatsächlich ändern möchte. Hier ist die Antwort von Microsoft, warum: Ändern Sie dann den DNS-Eintrag, den ich tatsächlich ändern möchte. Hier ist die Antwort von Microsoft, warum: Ändern Sie dann den DNS-Eintrag, den ich tatsächlich ändern möchte. Hier ist die Antwort von Microsoft, warum:

In Anbetracht dieses Szenarios besteht die Sicherheitsbedenken darin, dass Sie Ihre Domain aufgrund von Konflikten nicht erneut hinzufügen können, wenn jemand Ihre Domain zu seiner App hinzufügen kann, bevor Sie dies zu Ihrer Web-App tun können, da Azure-Web-Apps dieselbe gemeinsam nutzen Front-End-Server im selben Rechenzentrum. Daher muss jede Domain / Subdomain überprüft werden, bevor sie einer Web-App zugewiesen wird. Wenn wir Websites auf einer virtuellen Maschine hosten, gibt es keine Einschränkungen.

DubStep
quelle