Zum Hauptinhalt springen

3. ECHConfig-Datei

3. ECHConfig-Datei

Eine PEM-ECH-Datei enthält null oder einen privaten Schlüssel und eine codierte ECHConfigList. Öffentliche und private Schlüssel müssen beide PEM-codiert sein [RFC7468].

Die Datei enthält die Verkettung der PEM-Codierung des privaten Schlüssels, falls vorhanden, gefolgt von der PEM-Codierung der öffentlichen Schlüssel als ECHConfigList. Wenn ein privater Schlüssel vorhanden ist, muss die ECHConfigList eine ECHConfig enthalten, die zu diesem privaten Schlüssel passt. Der private Schlüssel muss als PKCS #8 PrivateKey [RFC7468] codiert sein.

Die öffentlichen Schlüssel müssen die base64-codierte Form eines ECHConfigList-Werts sein, der im DNS mithilfe eines HTTPS-Ressourceneintrags gemäß [RFC9848] veröffentlicht werden kann. Die Zeichenkette "ECHCONFIG" muss im PEM-Dateitrenner für den öffentlichen Schlüssel verwendet werden. Jeder Inhalt nach der PEM-codierten ECHConfigList sollte ignoriert werden.

Abbildung 1 zeigt ein Beispiel für eine ECHConfig-PEM-Datei.

-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VuBCIEICjd4yGRdsoP9gU7YT7My8DHx1Tjme8GYDXrOMCi8v1V
-----END PRIVATE KEY-----
-----BEGIN ECHCONFIG-----
AD7+DQA65wAgACA8wVN2BtscOl3vQheUzHeIkVmKIiydUhDCliA4iyQRCwAEAAEA
AQALZXhhbXBsZS5jb20AAA==
-----END ECHCONFIG-----

Abbildung 1: Beispiel einer ECHConfig-PEM-Datei

Wenn diese ECHConfigList im DNS für foo.example.com veröffentlicht wäre, könnte sie wie in Abbildung 2 gezeigt abgerufen werden.

$ dig +short HTTPS foo.example.com
1 . ech=AD7+DQA65wAgACA8wVN2BtscOl3vQheUzHeIkVmKIiydUhDCliA4iyQR
wAEAAEAAQALZXhhbXBsZS5jb20AAA==

Abbildung 2: Verwendung von dig zum Abrufen der ECHConfigList aus dem DNS

TLS-Server, die dieses Dateiformat verwenden, können mehrere Dateinamen als Teil ihrer Gesamtkonfiguration konfigurieren, zum Beispiel wenn nur die ECHConfigList-Werte aus einer Teilmenge dieser Dateien im ECH-Fallback-Szenario als retry_configs verwendet werden sollen.

Eine ECHConfigList in einer PEM-Datei kann mehr als eine ECHConfig enthalten, etwa wenn diese Werte unterschiedliche Erweiterungen oder unterschiedliche public_name-Werte enthalten. In Übereinstimmung mit [RFC9849] erscheinen ECHConfig-Werte in absteigender Reihenfolge der Präferenz. Wenn die ECHConfigList als retry_configs verwendet wird, kann sie unterschiedliche öffentliche Schlüssel enthalten. Dennoch muss ein vorhandener privater Schlüssel zum öffentlichen Schlüssel aus einem der ECHConfig-Werte passen.