
AES-CFB-IV-Generierungsschwachstelle in der Reolink-Desktopanwendung
Die Reolink-Desktop-Anwendung (Version 8.18.12) verwendet den AES-CFB-Algorithmus, um Konfigurationsdateien und andere sensible Daten zu verschlüsseln.
Allerdings wird der dabei verwendete Initialisierungsvektor (IV) unsachgemäß behandelt, was zu einer Schwachstelle führt, durch die verschlüsselte Konfigurationsdaten von einem Angreifer leicht entschlüsselt werden können.
Der folgende Code zeigt, dass der IV zur Laufzeit dynamisch erzeugt wird:
{
key: "fetchAesIv",
value: function () {
return window.napiDecrypt.getAesIv();
},
}
Der zurückgegebene Wert ist jedoch immer dieselbe Zeichenfolge: bcswebapp1234567.
Das bedeutet, dass der IV zwar technisch gesehen zur Laufzeit erzeugt wird, aber faktisch fest verdrahtet ist und keine zusätzliche Sicherheit bietet.
Während die Anwendung ausgeführt wird, kann der IV-Wert dynamisch über die JavaScript-Konsole der DevTools abgerufen werden.
Die Funktion window.napiDecrypt.getAesIv() gibt ein Promise zurück, das sich zu einer konstanten Zeichenfolge bcswebapp1234567 auflöst.

Dies zeigt, dass der IV bei allen Verschlüsselungsvorgängen wiederverwendet wird, was gegen kryptografische Best Practices verstößt.
In Blockchiffre-Modi wie CFB, CBC und OFB kann die Wiederverwendung eines IV einem Angreifer ermöglichen, Chiffrat-Muster vorherzusagen und letztlich die Vertraulichkeit der Daten zu gefährden. Um den Zweck eines IV zu erfüllen, muss ein neuer, unvorhersehbarer Wert dynamisch erzeugt werden.