Fedora 25 – Secure Boot und VirtualBox 5

Wer unter Fedora 25 VirtualBox nutzen will, hat mindestens zwei Möglichkeiten: 1. Secure Boot ausschalten, damit der Linux Kernel das unsignierte Modul für VirtualBox laden kann, oder 2. das Modul selber signieren, damit Secure Boot weiterhin funktioniert.

Hier der Weg, um die zweite Möglichkeit umzusetzen:

  1. Nach der Installation von VirtualBox mit „dnf install VirtualBox“ generieren wir als erstes unseren eigenen MOK im Verzeichnis „/PFAD_ZUM_MOK/“ mit:
    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Custom MOK/"
  2. Dann die erzeugten Schlüssel für Secure Boot importieren. Als root ausführen:
    mokutil --import MOK.der

    Dabei muss ein Passwort gesetzt werden, dass einmalig zur Sicherheit beim Neustart abgefragt wird.

  3. Jetzt den Computer neu starten. Es erscheint ein blauer Screen, auf dem 1. eine Taste gedrückt, 2. „Enroll MOK“ ausgewählt, 3. „Continue“ ausgewählt, 4. „Yes“ ausgewählt, 5. das vergebene Passwort eingegeben und 6. „Ok“ ausgewählt werden muss (Hier der Prozess in Bildern).
  4. Jetzt geht es an das Signieren des VirtualBox Moduls. Dazu brauchen wir das Skript „sign-file“. Unter Fedora finden wir dieses im Verzeichnis „/usr/src/kernels/KERNEL_VERSION/scripts/“ (bitte die Versionsnummer KERNEL_VERSION entsprechend des eingesetzten Kernels anpassen, die sich mit dem Befehl „uname -r“ anzeigen lässt). Eventuell muss dafür zunächst noch ein Paket installiert werden:
    dnf install kernel-devel-$(uname -r)
  5. Der gesamte Signierbefehl, auszuführen als root, lautet dann:
    /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 /PFAD_ZUM_MOK/MOK.priv /PFAD_ZUM_MOK/MOK.der $(modinfo -n vboxdrv)
  6. Sollte es beim Signierbefehlt zur Fehlermeldung „modinfo: ERROR: Module vboxdrv not found.“ auftreten, zunächst als root den Befehl „akmods;“ ausführen und dann den Signierbefehl wiederholen.
  7. Jetzt einfach VirtualBox beenden, neu starten und eventuell als root vboxdrv laden:
    modprobe vboxdrv

Quellen:

HP EliteBook Folio G1 – Teil 4: Update auf Fedora 25 – Was geht?

Nach den grundlegenden Daten ,dem ersten Eindruck und den Versuchen mit Fedora 24 folgt nun eine Übersicht darüber, wie gut sich HPs EliteBook Folio G1 unter der neuen Fedora 25 Version so schlägt.
Die folgenden Ausführungen beziehen sich dabei auf:

  • HP EliteBook Folio G1, FullHD mit BIOS Version 1.11,  Thunderbolt Firmware 16.1.7.0.9, Corporate Management Engine (ME) Firmware 11.0.18.1002
  • Fedora 25 64bit
  • Kernel 4.8.16-300

Das Starten der Live Version von Fedora 25 funktioniert mit UEFI und aktiviertem SecureBoot problemlos. Die Out-of-the-Box Funktionsfähigkeit des Folio G1 hat sich unter Fedora 25 noch einmal verbessert und sieht jetzt wie folgt aus:

Funktion Stand der Dinge
Touchpad TapToClick und TwoFingerScroll funktionieren.
Tastatur Funktioniert problemlos.
USB-C Anschlüsse Aufladen über beide Ports ohne Probleme.
USB-C auf HDMI: problemlos (4k 60Hz).
USB-C auf VGA: problemlos (nur FullHD getestet).
USB-C auf USB-A: problemlos.
Thunderbolt über USB-C: Video problemlos (4k 60Hz mit Apple TB3 auf TB2 Adapter an LG Monitor getestet).

Thunderbolt über USB-C: USB funktioniert nicht (Festplatte und Tastatur getestet)
Kamera Funktioniert problemlos.
HP Elite Thunderbolt 3 Docking Station Nicht getestet. Für Fedora 24 siehe alten Beitrag.
HP Elite USB-C Docking Station Nicht getestet. Für Fedora 24 siehe alten Beitrag.
Audio Soundausgabe funktioniert problemlos.
Mikrofon funktioniert problemlos.
WLan Funktioniert problemlos.
Bluetooth Funktioniert problemlos.
Standby Die Tastatur funktioniert nach dem Aufwachen nicht mehr.
Shortcuts Stand der Dinge
Bildschirmhelligkeit Funktionieren problemlos.
Keyboard Backlight Funktioniert problemlos.
Lautstärke Funktionieren problemlos.
Mikrofon stummschalten Funktioniert nicht, unbehandelter Tastencode.
Telefon abheben/auflegen Löst jeweils zwei unbehandelte Tastencodes aus.
Kalender Löst zwei unbehandelte Tastencodes aus.
Flugmodus Taste funktioniert, sendet den Tastencode aber doppelt, so dass der Flugmodus sofort wieder ausgeschaltet wird.
Externer Bildschirm Funktioniert problemlos (schaltet erweitert, mirror, nur extern, nur intern durch).

Nach der Installation von TLP verbraucht das Folio G1 zwar etwas weniger Strom, aber es gibt im Batteriemodus massive Probleme. Der Bildschirm flackert so stark, dass ein Arbeiten damit unmöglich ist.

Laptop absichern – Kapitel 2: Anmeldung – Abschnitt 1: Passwörter

Kapitel 2: Anmeldung

Quelle: openclipart.org
Quelle: openclipart.org

„Wehret den Anfängen.“
Ovid

Die erste Barrier zum Schutz des eigenen Laptops und insbesondere der eigenen Daten vor fremden Zugriffen besteht im simplen Anmelde-Management. Es darf nur für autorisierte Personen möglich sein, das Notebook zu benutzen und auf gespeicherte Inhalte zuzugreifen. Für die Autorisierung benutzen wir die vorgesehenen Mechanismen des jeweiligen Betriebssystems. Diese bestehen zunächst in dem einfachen Setzen eines zur Anmeldung benötigten „Geheimnisses“: dem Passwort.

Abschnitt 1: Passwort

„Choosing a hard-to-guess, but easy-to-remember password is important!“
Kevin Mitnick

Was macht ein gutes Passwort aus?

Damit ein Passwort gut ist, darf es nicht zu kurz sein. Kurze Passwörter lässt sich leicht mittels „durchprobieren“ aller möglichen Kombinationen herausfinden.

?

Wenn versucht wird, ein Passwort durch ausprobieren aller möglichen Kombinationen zu knacken, spricht man vom Einsatz der so genannten „Brute-Force-Methode“. Es wird „rohe Gewalt“ eingesetzt und nicht versucht, logisch auf mögliche Passwörter zu schließen.

Daher muss man lange Passwörter benutzen. Dabei sollte man aber nicht mehr auf den alten Tipp, mindestens 8 Zeichen zu benutzen, hören. Heutzutage sollten es mindestens 10, besser 12 oder mehr Zeichen sein.

Aber auch ein langes Passwort ist noch kein Garant für ein gutes Passwort. Besteht etwa ein acht Zeichen langes Passwort ausschließlich aus Zahlen (von 0 bis 9), gibt es insgesamt 10 hoch 8 + 10 hoch 7 + … + 10 hoch 1 mögliche Passwörter (= 111.111.111), die durchprobiert werden müssen. Auch wenn sich 111 Millionen Passwörter zunächst einmal viel anhört, ist es für einen Computer kein Problem, diese einfach durchzuprobieren. Eine moderne CPU mit mehr als 3 GHz kann vielleicht 150 Millionen Versuche in einer Sekunde durchführen. Ein Passwort mit 8 Zahlen wäre also in deutlich weniger als einer Sekunde geknackt.

Wenn nicht nur die 10 möglichen Zahlen an jeder Stelle des Passwortes stehen können, sondern auch noch 26 Groß- oder 26 Kleinbuchstaben, steigt die Zahl der möglichen Passworte schon einmal auf 62 hoch 8 + 62 hoch 7 + … + 62 noch 1 an (= 221.919.451.578.090). Um diese Passwörter alle durchzuprobieren, würde die CPU bereits 410 Stunden oder 17 Tage rechnen.

17 Tage hört sich doch schon einmal besser an. Allerdings braucht die CPU im Durchschnitt ja nur die Hälfte der Zeit, um ein Passwort zu finden. Wenn dann nicht nur eine CPU, sondern gleich mehrere parallel arbeiten (oder noch einmal deutlich schnellere GPUs von Grafikkarten benutzt werden), verringert sich die Dauer zum Durchprobieren dieser Passwörter wieder auf einige Stunden oder Minuten.

Also erweitern wir am besten das Passwort auch noch um etwa die folgenden 12 Sonderzeichen (!§$%&=?*+-#_), sind 74 hoch 8 + 74 hoch 7 + … + 74 hoch 1 Passwörter möglich (= 911.512.476.370.950). Jetzt benötigt die CPU schon 1687 Stunden oder 70 Tage. Hört sich viel an, aber wenn man mehr als eine CPU nutzt, schnurrt auch diese Zeitspanne schnell wieder zusammen. Daher sollte man sich merken: 8 Zeichen lange Passwörter sind heutzutage zu kurz. Wenn man die Passwortlänge von 8 auf 9 Zeichen erhöht (+ 74 hoch 9 Möglichkeiten), werden aus den 70 Tagen etwa bereits 5.204 Tage oder 14,3 Jahre.

Ein gutes Passwort ist kein gutes Passwort

Jetzt haben wir uns also ein gutes Passwort konstruiert, was man sich am auch noch irgendwie merken kann (denn nichts ist schlecht als ein Anmeldepasswort, dass direkt auf’s Laptop, den Schreibtisch oder den Monitor geklebt wird, damit man es nur abtippen braucht). Was man nun auf keinen Fall tun sollte: das gleiche Passwort für alle möglichen anderen Anmeldevorgänge verwenden.

Statt einem guten Passwort, brauchen wir eigentlich so viele gute verschiedene Passwörter, wie unterschiedliche passwortgeschützte Zugänge vorhanden sind. Insbesondere wenn es um Login-Daten für Webseiten geht ist dies wichtig. Und extrem wichtig wird es bei den Seiten, die bei missbräuchlicher Nutzung richtig Geld und Aufwand kosten wie die Webseiten für das Online-Banking oder Einkaufsportale. Würde wir für jede Webseite das gleiche Passwort verwenden, müssten wir uns sicher sein, dass jeder Seite das ihr anvertraute Passwort richtig – und damit sicher – verwahrt. Angesichts der gerade in den letzter Zeit gehäuften öffentlich gewordenen Passwortleaks selbst von großen Webseiten wie Yahoo, Twitter oder Dropbox lässt sich eigentlich nur eine Schlussfolgerung ziehen: vertraue keiner Webseite, die du nicht selber programmiert hast.

?

Warum sollte man Webseiten nicht generell vertrauen, dass sie das Passwort sicher verwahren? Was kann schief gehen, wenn wir unser Passwort in das Passwortfeld einer Webseite eingeben? Nur weil das Formularfeld, in das wir unser Passwort eingeben, Sternchen statt der tatsächlich eingegebene Zeichen anzeigt, heißt das noch lange nicht, dass das Passwort nicht sehr einfach abgegriffen werden kann.  Mögliche kritische Implementierungsfehler sind:

1. Die Kommunikation mit der Webseite läuft über eine ungesicherte http statt https Verbindung. Wenn hier beim Klick auf den Login-Button tatsächlich das gerade in das Formularfeld eingetragene Passwort übertragen wird, kann wirklich jeder, der Zugriff auf einen Computer im gleichen Netzwerk oder auf einen der Rechner über die die Verbindung mit der Webseite läuft, das Passwort einfach im Klartext lesen. Es hilft auch wenig, wenn das Passwort zwar nicht im Klartext übertragen wird, sondern nur ein zuvor im eigenen Browser aus dem Passwort errechneter Hash-Wert (eine Hash-Funktion liefert für ein Passwort immer den gleichen Hash-Wert, der, von der Webseite gespeichert, statt des Klartextpassworts auf Korrektheit überprüft wird. Aus dem Hash-Wert lässt sich, bei aktuellen Algorithmen, nicht das Klartextpasswort zurückrechnen). Auch wenn der Angreifer hier also nicht ohne weiteres an das ursprüngliche Passwort herankommt, kann er sich natürlich ohne Probleme mit dem abgegriffenen Hash-Wert selbst jederzeit auf der aufgerufenen Webseite einloggen.

2. Das Passwort wird von der Webseite im Klartext und nicht als Hash-Wert in einer Datenbank gespeichert. Um das Passwort auf Korrektheit zu überprüfen, muss die Webseite dieses oder einen davon abhängigen Wert irgendwo speichern. Wenn diese Speicherung im Klartext erfolgt und nicht als Hash-Wert, kann bei einem unerlaubten Zugriff auf die Datenbank der Webseite jeder die Passwörter aller Nutzer lesen.

3. Die Webseite benutzt veraltete Hash-Algorithmen bzw. verwendet kein „Salt and Pepper“. Da jedem Passwort immer der gleiche Hash-Wert zugeteilt wird (sonst könnte dieser ja nicht anstelle des Passworts zum Vergleich der Korrektheit benutzt werden), können Angreifer Hash-Werte vorberechnen. Für ein mit dem veralteten und nicht sicheren Hash-Algorithmus md5 gehashtes Passwort namens „Passwort“ würde als Hash-Wert „3e45af4ca27ea2b03fc6183af40ea112“ in der Datenbank stehen. Der Angreifer könnte jetzt einfach alle häufig genutzten Passwörter selber hashen und dann alle diese Hash-Werte mit den aus der Datenbank geklauten Hash-Passwörtern vergleichen. So käme der Angreifer an potenzielle Klartextpasswörter die er dann auch bei anderen Webseiten zum Einloggen ausprobieren könnte. Dem kann eine Webseite entgegenwirken, indem sie nicht nur das Passwort hasht, sondern etwas „Salz und Pfeffer“ hinzufügt. Im Prinzip geht es dabei darum, dass von der Webseite an das Klartextpasswort eine beliebige Zeichenfolge vor dem Hashen angehängt wird. Bei Nutzung des Salt „Salz“ würde also im obigen Beispiel „PasswortSalz“ gehasht: „fedb6be7f8919b4f90a0b500d613fe69“. Jetzt könnte das ursprüngliche Passwort „Passwort“ nicht mehr einfach durch nachschlagen in einer vorberechneten Tabelle nachgeschlagen werden, da in dieser ja nur der Hash-Wert von „Passwort“ ohne Salz stehen würde.

In der Konsequenz sollte man für jeden Login ein eigenes gutes Passwort benutzen. Dabei sollten sich die verschiedenen guten Passwörter aber nicht trivial voneinander unterscheiden. Und damit wird es natürlich schwierig, alle Passwörter im „griffbereit“ im Kopf zu haben.

!

Warum es nicht gut ist, nur leichte Abwandlungen eines guten Passworts zu benutzen, ergibt sich aus den obigen Anmerkungen im Kasten. Wer aus dem guten Passwort „H4r7eQ1n!“ für die gehackte Seite Abcd.ef das Passwort „H4r7eQ1n!ABCD“ abgeleitet hat, hat ein echtes Problem, wenn das Passwort im Klartext gespeichert war und das Passwort für Amazon dem Schema entsprechend „H4r7eQ1n!Amazon“ heißt. Aus dem gleichen Grund verbietet es sich genauso, regelmäßig zu ändernde Passwörter einfach nur hoch zu zählen und statt „Passwort1“ einfache „Passwort2“ zu nutzen.

Rezept für gute Passwörter:

  • Mindestens 10, besser 12+ Zeichen lang
  • Beinhalten Großbuchstaben
  • Beinhalten Kleinbuchstaben
  • Beinhalten Zahlen
  • Beinhalten Sonderzeichen
  • Ein Passwort für jeden Dienst
    • Keine trivialen Unterschiede
    • Passwörter nicht „durchnummerieren“

Wann ein gutes Passwort doch ein gutes Passwort

Wer meint, dass sie ja niemand so viele gute Passwörter merken kann, hat wohl normalerweise recht. Daher der praktikable Tipp:  nutzt einen Passwortmanager. Dann braucht man sich nur noch ein gutes Passwort, das Masterpasswort, merken, um damit alle anderen Passwörter aus dem Passwortmanager abrufen zu können. Dafür gibt es unterschiedliche Lösungen. Ja nach Nutzungsart können sich kostenpflichtige Angebote (etwa LastPass oder 1Password) oder kostenlose Angebote eignen.

Wer Mozilla Firefox benutzen (den ich jedem Nutzer von propritären Browsern wie Edge oder Safari wärmstens ans Herz lege), kann etwa Mozillas Sync Funktion nutzen. Damit nicht jeder den ihr mal kurz an euren Rechner lasst die Passwörter abschreiben kann, sollte auf jeden Fall die Abfrage eines Masterpassworts eingestellt werden. Dieses muss dann nach jedem neuen Start von Firefox einmalig vor der ersten Passwortfreigabe eingegeben werden.

Wer nicht Firefox benutzten möchte findet eine ähnlich Passwortsynchronisation auch bei Microsoft Edge und Apple Safari. Die Passwörter werden dabei (hoffentlich gut verschlüsselt…) auf Servern von Apple bzw. Microsoft  gespeichert. Wenn man beiden Konzernen hier nicht vertrauen, sollte man ernsthaft über den Kauf eines Rechners für GNU/Linux nachdenken, denn wenn macOS oder Windwos auf dem Laptop laufen, könnte das Betriebssystem, wenn es das wollte, ohnehin alle Daten abgreifen und nach Hause schicken.

Praktisch ist auch, wenn man sich nicht für jede Webseite selber ein gutes Passwort ausdenken muss, sondern Software für sich arbeit lässt. Wer einen Passwortmanager benutzt, kann diesen meist zum Generieren von Passwörtern benutzen. Safari bietet bei vielen Webseiten bei der Neuvergabe von Passworten automatisch ein zufällig generiertes Passwort an, dass mit nur einem Klick übernommen werden kann. Für Firefox muss man ein Passwort-Generator-Add-On nachinstallieren, wie etwa das unter GPL stehende pwgen. So kommt man gar nicht erst in Versuchung, überall das gleiche oder nur ein schwach abgeändertes Passwort zu verwenden.

Aber genug der Ausführungen zu Webseiten. Eigentlich geht es in diesem Kapitel ja um die Absicherung der Anmeldung am Laptop.

Zurück zu Abschnitt 3: Risiko