- Mit einem günstigen Logikanalysator lässt sich die vollständige Festplattenverschlüsselung von BitLocker auf Computern mit separatem TPM-Chip umgehen.
- BitLocker erzeugt zunächst den FVEK (Full Volume Encryption Key), verschlüsselt ihn anschließend mit dem VMK (Volume Master Key) und speichert ihn auf der Festplatte.
- Ist TPM aktiviert, wird der VMK im TPM gespeichert und beim Booten vom TPM abgerufen, um die Festplatte zu entschlüsseln.
- Beim Abrufen des VMK werden jedoch Nachrichten im Klartext übertragen.
- Um dies zu entschlüsseln, müssen die SPI-Befehle, die zwischen CPU und TPM-Chip ausgetauscht werden, mit einem Logikanalysator mitgeschnitten werden.
- Da es sehr schwierig ist, den Logikanalysator direkt an den TPM-Chip anzuschließen, beginnt man mit der Signalerfassung über einen anderen Chip, der sich den SPI-Bus mit dem TPM teilt.
- Zuerst müssen leicht erkennbare SPI-Anfragen aufgezeichnet werden, danach muss TIS entschlüsselt werden, das in der TPM-Interface-Spezifikation die Kommunikation beschreibt.
- Da es keine einfache Methode zur Entschlüsselung von TIS gab, wurde es manuell dekodiert, wodurch sich das Start-Byte des TPM-Signals bestimmen ließ.
- Anschließend kann der in der TPM-2.0-Spezifikation definierte Befehl
TPM2_Unseal aufgezeichnet werden, um das Geheimnis auszulesen.
- Mit den aus TIS gewonnenen Bytes werden die TPM-2.0-Befehle gefunden, die Antworten getrennt und dann mit einem Werkzeug wie
tpmstream-web der Puffer aus der TPM-Antwort extrahiert.
- Sobald der Schlüssel bekannt ist, kann auf die Daten der Festplatte zugegriffen werden.
- Dazu wird die Festplatte ausgebaut und an ein anderes System angeschlossen; mit einem Werkzeug wie
dislocker lässt sich dann das verschlüsselte Dateisystem durchsuchen.
- Mit der klassischen Methode, ein bestimmtes Programm durch
cmd.exe zu ersetzen, wird ein System-Shell-Zugang erzeugt, der sich am Anmeldebildschirm nutzen lässt.
- Da man nun eine
cmd mit Administratorrechten hat, kann man alles tun.
- Letztlich macht ein physisches TPM BitLocker sehr angreifbar; empfohlen wird daher ein vollständig in die CPU integriertes fTPM, bei dem solche Angriffe nicht möglich sind.
- Wer BitLocker auf einem System mit physischem TPM sicher verwenden will, sollte eine PIN oder ein Passwort festlegen.
1 Kommentare
Dies ist ein weiterer Beitrag zum selben Thema.
Offenbar tritt dieses Problem nur bei BitLocker auf, weil es merkwürdigerweise nicht die verschlüsselte Sitzung nutzt, die das TPM zur Abwehr solcher Man-in-the-Middle-Angriffe bereitstellt.
Bei systemd soll dieses Problem bei der Verwendung von TPM und LUKS-Verschlüsselung nicht auftreten.
BitLocker war in bestimmten Situationen offenbar deutlich verwundbarer, als ich gedacht hatte.
Da es sich um ein Sicherheitsmodul handelt, in dessen Namen sogar "Trusted" vorkommt, hätte ich nicht erwartet, dass so etwas passieren kann ...