Wie kann Let’s Encrypt die Identität über unsicheres HTTP überprüfen?

Wie kann Let’s Encrypt die Identität über unsicheres HTTP überprüfen?

Ich habe gerade angefangen, Let’s Encrypt zu verwenden. Die http-01-Challenge ist recht einfach:

Funktioniert einwandfrei. Aber wie stellen sie sicher, dass ich bei einer unsicheren HTTP-Verbindung wirklich der Eigentümer von example.com bin?

Könnte nicht ein Administrator in meinem Rechenzentrum (oder bei meinem ISP) einfach ein Zertifikat anfordern und die von Let’s Enrypt gesendeten HTTP-Anfragen abfangen, um die Identität des Servers zu überprüfen?

Antwort1

Tatsächlich gibt es für die HTTP-01-Challenge keinen unfehlbaren Schutz gegen einen Man-in-the-Middle-Angriff.
Jemand, der den Datenverkehr zwischen den Let’s Encrypt-Validierungsknoten und Ihrem Server abfangen kann, KANN die Challenge bestehen und ein Zertifikat erhalten. Wenn ihm ein BGP-Trick gelingt, muss er nicht einmal im herkömmlichen Sinne in der Mitte sein.
Dies gilt für die HTTP-01-Challenge und für nicht signierte Domänen auch für die DNS-01-Challenge.

Es ist erwähnenswert, dass dieses Problem nicht nur bei Lets Encrypt auftritt. Die von herkömmlichen Zertifizierungsstellen für DV-Zertifikate durchgeführte Validierung weist im Allgemeinen dasselbe Problem auf. Sie bieten normalerweise HTTP-, DNS- und E-Mail-Validierungsoptionen an, die alle anfällig für einen MITM-Angriff sind.

WasLass uns verschlüsselnhatgetan, um das Problem zu mildernbesteht darin, jede Validierung von mehreren Testknoten in verschiedenen Rechenzentren aus auszuführen, wobei alle Testergebnisse übereinstimmen müssen, um das Zertifikat ausstellen zu können. (Ich vermute, dass sie dadurch für diese Art von Missbrauch weniger anfällig sind als die meisten herkömmlichen Zertifizierungsstellen.)
Dies reduziert zumindest den Umfang der Personen, die sich möglicherweise in „der Mitte“ befinden, da große Teile „der Mitte“ aus Sicht der verschiedenen Testknoten unterschiedlich sein werden.

Hierbei handelt es sich um das Standardverhalten der automatischen Domänenvalidierung durch Let‘s Encrypt (und CAs im Allgemeinen), allerdings wurden dem Domäneninhaber durch die Anforderung, dass öffentliche CAs die CAADatensätze prüfen müssen, zusätzliche Kontrollmöglichkeiten eingeräumt.

Um tatsächlich die Kontrolle zu übernehmen, kann der Domäneninhaber diese Schritte unternehmen:

  1. DNSSEC-Signieren Sie die Zone, um sicherzustellen, dass die CAADaten nicht manipuliert werden
    (schützt im Fall von DNS-01 auch die Challenge selbst)
  2. Fügen Sie einen oder mehrere CAADatensätze hinzu, um die Ausstellung von Zertifikaten einzuschränken
    (insbesondere CAADatensätze, die nicht nur die Zertifizierungsstelle benennen, die Zertifikate ausstellen darf, sondern auch das Konto bei dieser Zertifizierungsstelle, das dazu berechtigt ist)

Mit einem CAADatensatz, der ungefähr so ​​aussieht:

example.com. IN CAA 0 issue "letsencrypt.org; accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/12346789"

Das Problem wird erheblich reduziert, da ein Betrüger die Herausforderung gar nicht erst einfach initiieren kann.

Achten Sie besonders auf den accounturiParameter in den CAADaten. Dieser macht die Richtlinie spezifisch für das Konto des Domäneninhabers bei der angegebenen Zertifizierungsstelle.
Ein CAAEintrag, der nur die Zertifizierungsstelle, aber kein Konto angibt, wäre zwar gültig, aber nur von begrenzter Hilfe, da eine solche Richtlinie jedem anderen Kunden dieser Zertifizierungsstelle weiterhin erlaubt, die Ausstellung von Zertifikaten anzufordern.

Antwort2

Begründung für die Verwendung von httpbeim Abrufen der HTTP-01-Herausforderung steht in der Spezifikation:

Da viele Webserver einem bestimmten Tenant-Benutzer mit geringen Berechtigungen auf subtile und nicht intuitive Weise einen standardmäßigen virtuellen HTTPS-Host zuweisen, muss die Herausforderung über HTTP und nicht HTTPS abgeschlossen werden.

Diese Herausforderung unterscheidet sich von den ACME-Protokollnachrichten. Die Spezifikation schreibt https vor. ACME hat auchIntegritätUndWiederholungSchutz für seine signierten Nachrichten. Selbst wenn der Datenverkehr abgefangen wurde, kann er durch mehr gefährdet werden als nur durch die unverschlüsselte Abfrage. Natürlich besteht ein gewisses Risiko, aber was ist die Alternative zu einem besseren Domänenüberprüfungsverfahren?


Ein umfassenderer Ansatz zur Überwachung nicht autorisierter Zertifikate kann die Zertifikatstransparenz umfassen. Suchen Sie in CT-Protokollen nach Ihren Namen oder richten Sie Warnmeldungen ein. Ausstellende Zertifizierungsstelle, Seriennummer und Datum sollten Ihnen bekannt sein.

verwandte Informationen