Schwache Schlüssel auch auf Fritz-Boxen

SnoopyDog

IPPF-Promi
Mitglied seit
14 Jul 2005
Beiträge
3,054
Punkte für Reaktionen
224
Punkte
63
Viel Lärm um (fast) nichts.
Wer nicht aus dubiosen Netzen auf seine Fritzbox zugreift, braucht sich keine Sorgen zu machen. Abgesehen davon ignorieren mit Sicherheit 99% aller Benutzer eventuelle falsche Zertifikate, insbesondere wenn sie eh selbst signiert sind.
 
Schwache Debian-Schlüssel auf Fritzboxen

AVM hat nach dieser Meldung von Heise den Private Key der Boxen offensichtlich mit Debian erzeugt, und er ist unsicher, Punkt.

Kann man hier testen. Dazu ist bei AVM auf jeder Box der gleiche Key, was sogar noch fahrlässiger ist.

Was immer neu erzeugt wird, ist leider nur das Zertifikat, das jeweils für den Dyndns-Hostnamen erstellt wird, wenn man diesen ändert.

Für eine schnelle Lösung:

Der Private Key steht (allerdings muß er verschlüsselt sein) in /etc/websrv_ssl_key.pem.

Man kann sich einen eigenen Key mit openssl erzeugen (natürlich nicht mit einer kaputten Debian!):

openssl genrsa -aes128 -out websrv_ssl_key.pem 1024

Das Passwort muß "fritzbox" lauten (2x eingeben).

Hups, habe ich jetzt etwa auch noch verraten, wie das Passwort für den Original-Key ist? Könnte man mit diesem Wissen und der Originaldatei jede mitgeschnittene Fernwartungsseitzung einer jeden Fritzbox entschlüsseln? Nein, kann gar nicht sein. Oder darf nicht. Oder so. :D

Die erzeugte Datei websrv_ssl_key.pem sieht dann etwa so aus:

Code:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,F5D755C5C4094BADAA9329C7A03EB6AF

jQrqcYBDjG5gT7/CGvZ5Aw5RC8f6KGPXWHBbChsaLA30bymBnm+Jg/DstKZBerOt
9bATedKnJD60Hpf3PT94WVTViMxqtc2ZDFyySo5rp2+WwDE3oWLwlo73Qa+iYnEj
NamlfxOWz4Daz4VsuSYqmF7OSPDGJ6x9SkRs7Ep4T8+Uh6U4N/BhBcIdaB04M4SD
PECQK2CQ+DvGBgk2mfLovrCmoJh6gueI9GxnXUeqIhzpIMof/MML13plppimVI+9
AI9Oz+jEqz6x6uTxDMQNlg8y1htnh1zz+LYxwRl+HlTcv/sOS2QUg9sthCcBR+U8
81U81nannedD6WlwKKRWuEl90hDlgWnya3E+lsSUc6q5OH6wtutjYgiw4AM8YQVY
nARSpF+yKHJtiyNzWBrAXtrkU8nC4Ck9Xrx46L7pwjtswfSOc4X9VwuX4fZ2GQqd
DWTmqAsAwwn/kQFHFGFDudpt9+Dh/1nMvhNiUJLssPbm334i7Kb8JNneZqHn5jAv
mS4XOQ1xG0Zkj4JXYi7aqZdKKoMc5JvhS1NYwjvHR8XYaz038LI+76fo6ABlics0
sQuDC16fGp7098Kk5SVoqYRZRaS3IjvyHyHhAnOMQUzrtwwZ/r7lmY7dXFcr+FTd
irdQ4ZaDICMOXaC2k6rnjrkLkRHU9bPRA6mbSug8tuYl6EVVx9yC+Ka3kcT2ahOr
tx9D9aHtLwarnrNDyyYk5YqOr1YIO2MrPop3lYtjlBXR8UWF0SsVzVSg2gZ2Jukg
Q0HzMD+Ot8zLHfr9iwTLSNxrHGEpPh1NxVeZJ4ZgHbkUCKbFIH47PrhdreB/+tD1
-----END RSA PRIVATE KEY-----

Dann erzeugt man auf der Fritzbox eine Datei /var/tmp/debug.cfg mit folgendem Inhalt:

Code:
cat <<EOF >/var/tmp/websrv_ssl_key.pem
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,F5D755C5C4094BADAA9329C7A03EB6AF

jQrqcYBDjG5gT7/CGvZ5Aw5RC8f6KGPXWHBbChsaLA30bymBnm+Jg/DstKZBerOt
9bATedKnJD60Hpf3PT94WVTViMxqtc2ZDFyySo5rp2+WwDE3oWLwlo73Qa+iYnEj
NamlfxOWz4Daz4VsuSYqmF7OSPDGJ6x9SkRs7Ep4T8+Uh6U4N/BhBcIdaB04M4SD
PECQK2CQ+DvGBgk2mfLovrCmoJh6gueI9GxnXUeqIhzpIMof/MML13plppimVI+9
AI9Oz+jEqz6x6uTxDMQNlg8y1htnh1zz+LYxwRl+HlTcv/sOS2QUg9sthCcBR+U8
81U81nannedD6WlwKKRWuEl90hDlgWnya3E+lsSUc6q5OH6wtutjYgiw4AM8YQVY
nARSpF+yKHJtiyNzWBrAXtrkU8nC4Ck9Xrx46L7pwjtswfSOc4X9VwuX4fZ2GQqd
DWTmqAsAwwn/kQFHFGFDudpt9+Dh/1nMvhNiUJLssPbm334i7Kb8JNneZqHn5jAv
mS4XOQ1xG0Zkj4JXYi7aqZdKKoMc5JvhS1NYwjvHR8XYaz038LI+76fo6ABlics0
sQuDC16fGp7098Kk5SVoqYRZRaS3IjvyHyHhAnOMQUzrtwwZ/r7lmY7dXFcr+FTd
irdQ4ZaDICMOXaC2k6rnjrkLkRHU9bPRA6mbSug8tuYl6EVVx9yC+Ka3kcT2ahOr
tx9D9aHtLwarnrNDyyYk5YqOr1YIO2MrPop3lYtjlBXR8UWF0SsVzVSg2gZ2Jukg
Q0HzMD+Ot8zLHfr9iwTLSNxrHGEpPh1NxVeZJ4ZgHbkUCKbFIH47PrhdreB/+tD1
-----END RSA PRIVATE KEY-----
EOF

mount -o bind /var/tmp/websrv_ssl_key.pem /etc/websrv_ssl_key.pem

Natürlich ersetzt man den RSA-Key vorher durch den eigenen.

Diese Datei kopiert man dann nach /var/flash/debug.cfg (Vorsicht, falls sie schon existiert!):

cat /var/tmp/debug.cfg > /var/flash/debug.cfg

Nun Box neustarten, danach Dyndns-Hostnamen ändern und dann hier nochmals testen. Voila.

Vorsicht! Alles nichts für Anfänger, ich übernehme keine Garantie und beantworte keine Fragen. Wer das nicht versteht und/oder hinbekommt, soll auf die AVM-Lösung warten.
 
Heise schreibt, es gäbe bereits ein Download mit neuen Schlüsseln. Davon sehe ich aber nichts (außer Labor-Versionen, aber die mag ich mir aufgrund der eventuellen Update-Probleme nicht antun - die Features benötige ich einfach nicht).

Ich sehe aber keine neue Firmware.

Dass AVM das Problem mit den nicht-geheimen Debian-Schlüssel nicht bereits gelöst hat, ist superpeinlich. Das wurde überall in der IT-Branche diskutiert, und es wäre durch ein einfaches Firmware-Update mit einem anderen Schlüssel lösbar. Ohne tiefen Eingriff in die Software. Das hätte binnen zwei Tagen bereitstehen können.

Auf der Webseite von AVM steht auch keine Klärung dazu. Das macht auf mich einen sehr nachlässigen Eindruck.

Bei der ganzen SSL-Sache gibt es allerdings ein Grundproblem. Das Zertifikat muss zum Rechnernamen passen, also muss es auf der Box erzeugt werden. Ich sehe da keinen einfachen Weg, wie das richtig abgesichert werden könnte, so dass es auch ohne weitere Konfiguration in den Browsern funktioniert.

Letztlich kann man sich nur selber ein selbstsigniertes Schlüsselpaar erstellen und sich die Signatur auf 'nem USB-Stick mitnehmen, um sie auf dem Browser der Wahl zu installieren. Oder man besorgt sich gleich ein offizielles Zertifikat von Verisign oder Co ...
 
Dass AVM das Problem mit den nicht-geheimen Debian-Schlüssel nicht bereits gelöst hat, ist superpeinlich. Das wurde überall in der IT-Branche diskutiert, und es wäre durch ein einfaches Firmware-Update mit einem anderen Schlüssel lösbar. Ohne tiefen Eingriff in die Software. Das hätte binnen zwei Tagen bereitstehen können.

Nein, so einfach ist es nicht. Schau mal meinen Beitrag oben an. Der Private Key liegt zwar mit Passwort verschlüsselt in der Box, aber es ist überall der gleiche. Und da das Passwort nun bekannt ist, hat man alles, um abgehörten Traffic zu jeder Fritzbox zu entschlüsseln. Angesichts dessen spielt der schwache Debian-Key gar keine Rolle mehr, auch ein starker Key wäre ja bekannt. Die einzige Lösung ist, auf jeder Box einen zufälligen Schlüssel zu erzeugen, und das hat AVM ja auch vor.

<edit>Bzw. hat es zumindest in der Labor-Firmware 54.04.93-11632 bereits getan!</edit>

Bei der ganzen SSL-Sache gibt es allerdings ein Grundproblem. Das Zertifikat muss zum Rechnernamen passen, also muss es auf der Box erzeugt werden. Ich sehe da keinen einfachen Weg, wie das richtig abgesichert werden könnte, so dass es auch ohne weitere Konfiguration in den Browsern funktioniert.

Letztlich kann man sich nur selber ein selbstsigniertes Schlüsselpaar erstellen und sich die Signatur auf 'nem USB-Stick mitnehmen, um sie auf dem Browser der Wahl zu installieren. Oder man besorgt sich gleich ein offizielles Zertifikat von Verisign oder Co ...

Das stimmt, man kann das nur verifizieren, indem man sich den Hashwert des Zertifikats aufschreibt oder nur seinen eigenen Browser verwendet, wo man einmal das Zertifikat akzeptiert hat, bzw. die Einstellungen mitnimmt (z.B. U3-Stick o.ä.). Für das echte Zertifikat müßte AVM eine Möglichkeit zum "Import" von Schlüsseln/Zertifikaten anbieten.

Mit einer leicht modifizierten Lösung wie meiner oben beschriebenen könnte man das allerdings auch selbst hinbekommen. Den Key habe ich ja schon ausgetauscht, ebenso könnte man das dazugehörige Zertifikat austauschen, es steht in /var/websrv_ssl_cert.pem.
 
Zuletzt bearbeitet:
Habe vorhin auf meine 7170 die 29.04.59 gepackt. Für die Fernwartung wurde ein neuer HTTPS-Schlüssel erzeugt, der auch nicht vom Debian-Bug befallen ist. Vorher hatte ich 29.04.57 drauf, und der "damalige" Key hatte das Problem noch (wobei da schon auf verschiedenen FBen unterschiedliche Keys verwendet wurden).
Was natürlich bleibt ist, dass es ein self signed certificate ist, aber das ist m.E. kein echtes Problem. Zumindest beim Firefox kann ich das Zertifkat bei der ersten Nutzung einfach importieren, damit es für die Zukunft akzeptiert wird.
 
Korrekt. Bei der 7170 ist die 29.04.59 die erste Non-Beta, die das Problem so löst, daß ein eigener, starker Key auf der Box erzeugt wird. Für die 7270 war das die .58.

Was natürlich bleibt ist, dass es ein self signed certificate ist, aber das ist m.E. kein echtes Problem. Zumindest beim Firefox kann ich das Zertifkat bei der ersten Nutzung einfach importieren, damit es für die Zukunft akzeptiert wird.

Du hast aber schon gelesen, was Du da geschrieben hast, oder? ;)

Der ganze Sinn und Zweck bei SSL ist eine echte Ende-Zu-Ende-Verschlüsselung, so daß niemand auf dem Weg mitlesen oder modifizieren kann.

Das ist ja gerade das Problem bei self-signed Zertifikaten: Man muß Ihnen "einfach so" glauben. Wenn - rein hypothetisch - ein Man-In-The-Middle schon bei der ersten Verbindungsaufnahme da wäre, würdest Du dessen Zertifikat akzeptieren. Das ist zugegebenermaßen unwahrscheinlich, aber nicht viel unwahrscheinlicher als das überhaupt jemand Deinen IP-Traffic mitlesen oder abfangen kann (und nur gegen solche Angriffe schützt SSL überhaupt).
 
@meyergru: Warum sollte ICH lesen, was ich geschrieben habe, dazu gibt es doch das Forum :) Im Ernst: Du hast recht und mir ist das Thema schon bewusst. Da ich mir das Zertifikat aber gespeichert habe, muss in Deinem Szenario der Angreifer das nicht nur beim ersten Mal machen, sondern bei ALLEN meinen Verbindungsaufnahmen, sonst bekomme ich ja wieder eine Warnung, wenn ich dann das echte Zertifikat bekomme (Ohne abschweifen zu wollen: bei SSH habe ich ja auch das gleiche Prinzip). Wenn ich richtig paranoid sein will (und als Mensch, der beruflich IT-Security-Verantwortlicher ist, ist "paranoid" für mich kein Schimpfwort), dann verbinde ich mich mit der Fritzbox per Ethernet, aktiviere den Fernzugang, rufe ihn über diesen Weg das erste Mal auf und importiere dabei das Zertifikat.

Das Zertifikatsproblem ließe sich nur lösen, wenn Du nach dem Generieren des Zertifikats einen CSR herunterladen, diesen bei einer offiziellen CA einreichen und dann das signierte Zertifikat wieder einspielen könntest. Ließe sich für AVM machen, aber ich behaupte, dass nur seeeehhhhr wenige Nutzer diesen Aufwand trieben.

Mir reicht es, dass es jetzt individuelle und starke Zertifikate sind. Das gibt mir die Grundlage, von der aus ich dann selbst für die Sache sorgen kann (s.o.).
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.