Alexander (HH): Wie sicher ist die Keydatei? (LUKS)

Beitrag lesen

Moin Moin!

Daran hab ich gar nicht mehr gedacht, dass man den Raspi auch mit Monitor und keyboard starten kann :-| Liegt daran, dass ich nur noch mit SSH arbeite.

Monitor und Tastatur brauche ich für den schnellen Angriff gar nicht. Ich brauche nicht einmal irgendein Passwort. Netzstecker raus, SD-Karte raus, kopieren, wieder rein, Netzstecker wieder rein. Das dauert je nach SD-Karte schlimmstenfalls ein paar Minuten, und am Raspi muß ich außer Netzstecker und SD-Karte nichts anfassen.

Das ist die klassische "evil maid attack". Und wehe, Du stellst Dir jetzt vor, dass ich im Minikleid den Staubwedel schwinge! Im Ernst: Für den Angriff brauche ich gar nicht selbst loszuziehen. Ich bringe jemandem bei, den Raspi stromlos zu machen, die SD-Karte in eine mitgeschleppte magische Kiste (iPhone mit Cardreader, Laptop, Raspi mit Batterie, was auch immer) zu stecken, einen Knopf zu drücken und dann zu warten, bis die magische Kiste "fertig" anzeigt. Danach muß mein Helfer (m/w) in Minikleid oder Hausmeister-Kittel nur noch die SD-Karte wieder zurückstecken und den Raspi wieder mit Strom versorgen. Den Angriff kann ich einem sechsjährigen Kind beibringen.

Alles, was Du siehst, ist ein Stromausfall von 5 Minuten.

Denkbar wäre, dass ich den Raspi doch physisch einschließe

Das solltest Du tun, wenn Du meinst, die Daten auf dem System seien wertvoll. Das ist Schritt 1. Danach folgt der Schutz gegen Angriffe aus dem Netz.

und mir das Passwort online hole

Wie sicherst Du das ab? Setzt Du verschlüsselte Kommunikation ein oder läßt Du das Passwort im Klartext über die Leitung laufen? Ich rate mal: HTTPS oder SSH, meinetwegen auch ein VPN. Da kommen dann gleich zwei nächste Fragen: Wie stellt der Raspi sicher, dass er mit dem Passwort-Server kommuniziert und nicht mit einem Fake-Server oder einem Proxy unter meiner Kontrolle? Das kann eigentlich nur mit Zertifikaten und Pinning funktionieren. Und wie stellt der Passwort-Server sicher, dass er wirklich mit dem Raspi kommuniziert und nicht mit einem Rechner unter meiner Kontrolle, der nur einen Deiner Raspis simuliert? Ich rate mal: Client-Zertifikate.

Und genau an diesem Punkt kommt die Nummer mit der Henne und dem Ei. Die Evil Maid Attack erlaubt mir, die Client-Zertifikate zu kopieren. Du brauchst also einen Passwort-Schutz für die Client-Zertifikate. Wo holst Du das Passwort für die Zertifikate her? Online über eine gesicherte Verbindung? Die braucht wieder ein Passwort ...

Was machst Du, wenn der Raspi sich nicht mit dem Passwort-Server verbinden kann? Kein Passwort, keine verschlüsselte Partition. Störungs-LED an und warten, bis der Netzzugang wieder funktioniert. So lange ist der Raspi unbenutzbar.

unter senden der MAC-Adresse.

Die MAC-Adresse hat 48 Bit, die ersten 24 davon sind durch die OUI für alle Raspis vermutlich gleich bzw. es gibt nur einige wenige OUIs. Bleiben 24 Bit, die den Raspi halbwegs eindeutig identifizieren. Eine aus 16,7 Mio Möglichkeiten. Nicht schlecht, aber auch nicht besonders gut. Die Rate-Chance ist ungefähr so gut wie ein 6er im Lotto. Lotto spielt man 1x in der Woche, Hardcore-Spieler vielleicht 10 Scheine parallel. Und fast jede Woche gibt es einen 6er-Gewinner. Computer können wesentlich öfter als 1x je Woche Zahlen raten, und auch mehrere Zahlen parallel raten.

Deswegen ist es auch eher ungeschickt, die MAC-Adresse als Grundlage für das Passwort zu benutzen. Außerdem muß der Algorithmus für das Berechnen eines Passworts aus der MAC-Adresse mehr oder weniger im Klartext (Script, compilierter Code) auf dem nicht verschlüsselten Bereich der SD-Karte liegen. Den kann ich entweder analysieren oder stumpf mit 16,7 Mio möglichen MAC-Adressen füttern und das jeweils berechnete Passwort ausprobieren. Dagegen hilft nur, möglichst aufwendig und schwer parallelisierbar das Passwort zu berechnen, so dass ich auch mit vielen Rechnern wirklich alle Kombinationen aufwendig komplett durchrechnen muß, ohne mathematische Abkürzungen nehmen zu können.

Was machst Du, wenn Du einen defekten Raspi tauschst? Verpaßt Du dem zwingend eine neue SD-Karte und einen neuen Zugang zum Passwort-Server? Oder fängst Du an, die MAC-Adresse des neuen Raspis auf die des alten zu ändern? Ja, das geht. Der LAN9512 von Microchip, der auf dem Raspi sitzt, kann die MAC-Adresse wahlweise aus einem daran angeschlossenen EEPROM lesen oder vom Host zugeteilt bekommen. So weit ich das überblicke, hat der LAN9512 auf dem Raspi kein eigenes EEPROM. Also kommt die MAC-Adresse aus der CPU in den LAN9512, z.B. über die config.txt.

Das bedeutet auch, dass ich notfalls massenhat Raspis mit identischen MAC-Adressen produzieren kann, damit sie alle die selbe Kennung benutzen - nämlich die von dem Raspi, dessen SD-Karte ich kopiert habe.

Klar, pro Netzwerk funktioniert dann immer nur einer der Raspis, aber das könnte schon reichen. Es reicht mir auf jeden Fall, wenn ich einmal das Passwort für die verschlüsselte Partition in die Finger bekomme. Dann stricke ich das kopierte System so um, dass es unverschlüsselt arbeitet oder mit einer Verschlüsselung meiner Wahl, mit meinem Passwort. Und dann kann ich auch wieder kollisionsfreie MAC-Adressen verteilen.

Was wäre den noch möglich?

Vieles. Angefangen damit, dass Du beim Systemstart das Passwort für den Key der verschlüsselten Partition abfragst. Die Leute von der c't haben das mal durchexerziert, leider ein kostenpflichtiger Artikel. TLDP hat noch das Encrypted-Root-Filesystem-HOWTO, das hat allerdings schon etwas Staub angesetzt.

Der Witz an einem verschlüsselten Root-Dateisystem ist, dass es ohne Kenntnis des Schlüssels gar nicht als solches zu erkennen ist. Auch kann ich mir nicht einfach die Schlüssel für andere Dateisysteme so leicht abgreifen wie in Deinem aktuellen Aufbau.

Im Disk-Encryption-HOWTO ist außerdem noch eine kurze Übersicht über Angriffsszenarien und Abwehrmaßnahmen, auch schon etwas angestaubt.

Demontieren aller Schnittstellen

Wie sollte das helfen? Du brauchst I/O-Pins, um die Heizung zu steuern oder was auch immer Du vor hast. Du brauchst einen LAN-Port für Deine Online-Aktivierung. Du brauchst einen USB-Port für eine Standard-Tastatur, um beim Booten das Passwort abzufragen. Alternativ benutzt Du ein paar I/O-Pins für eine Tastaturmatrix.

Ausgelötete Pins helfen übrigens nicht gegen Angriffe. Ein paar Prüfspitzen und ich komme wieder an die Anschlüsse heran. Notfalls löte ich einfach neue Pins und Buchsen ein.

und einkleben der SD-Card?

Was machst Du, wenn Raspi ODER SD-Karte ausfallen? Beides gleichzeitig tauschen? Wie liest Du die noch benötigten Daten auf der funktionierenden SD-Karte von einem defekten Raspi aus? Wenn Du Lösungsmittel einsetzen kannst, um den Kleber loszuwerden, kann ich das auch.

Vergießen in Beton könnte helfen. Stahlfaß drum, ab in den Salzstock und schon kommt keiner mehr an Deine SD-Karte ran. Wobei - so ganz funktioniert das denn doch nicht.

Die große Frage ist, immer noch mit dem schwarzen Hut auf dem Kopf: LOHNT SICH DAS? Sprich: Was hast Du auf der SD-Karte?

Irgendeine selbstgestrickte Ergänzung zu irgendeiner antiken Heizung, die nur für Deine spezielle Heizung und Dein Haus wirklich funktioniert? Kein lohnendes Ziel, sorry.

Nacktbilder von ... - ach vergessen wir's. Die sind schon alle im Netz rum, bis auf die, die nun wirklich keiner sehen will.

Aktuelle Kreditkartendaten, so ab 1 Mio aufwärts, mit allen Zugangsdaten, Adressen usw.? Oh ja, die sind etwas wert. Oder Konstruktionsdaten für aktuelle, teure, komplexe Technik? Auch gerne genommen. Nur wird man so etwas kaum auf einem Raspi ablegen.

Login + Passwort für größere Mengen Benutzer-Accounts, z.B. bei Fratzenbuch, E-Bucht oder anderen großen Plattformen? Auch interessant. Auch sowas liegt selten auf Raspis.

Medizinische Befunde? Sagen wir mal, die Ergebnisse der HIV- und Syphilis-Tests von A- und B-Promis? Auch die lassen sich vergolden. Die von Hein Meier aus Hintertupfingen eher nicht. Es sei denn, ich hätte einen wirklich ernstaften Hass auf Hein Meier aus Hintertupfingen UND er wäre bei wenigstens einem der Tests positiv. Oder aber ich hätte ein Interesse daran, das untersuchende Labor bloßzustellen.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".