BitLocker to Go Morph

Smartcard Identifizierung für BitLocker To Go

Eine Verschlüsselungslösung wie BitLocker To Go für meine persönlichen Daten oder für Geschäftsdaten ist doch was Feines. Genauso lange bis man sein Passwort vergessen hat!

Aber fast alle komfortablen Verschlüsselungslösungen bieten heute umfangreiche Recovery Funktionen oder deutlich bessere Entschlüsselungsmöglichkeiten als ein dummes Passwort. Daher möchte ich dir heute zeigen, wie du den BitLocker To Go mit einem Zertifikat und einer PKI Smartcard oder einem USB-Crypto-Token nutzt. Das Zertifikat kannst du auf mehrere Smartcards installieren und so gibt es niemals mehr ein vergessenes Verschlüsselungspasswort.

Doppelte Sicherheit: Zwei-Faktoren Benutzeridentifizierung mit Smartcard und PIN

Experten sehen in der Nutzung einer Smartcard auch einen zusätzlichen Schutz, da man die Smartcard plus die Smartcard PIN benötigt, um seine Daten aufzusperren. Einem Angreifer kann es daher nicht mehr gelingen ein Verschlüsselungspasswort auszuspähen und er müsste schon deinen Wechseldatenträger plus deine Smartcard plus den Smartcard PIN stehlen, um an deine Daten heranzukommen. 🙂

Ich selbst nutze eine handelsübliche JCOP 2.4.1 Smartcard die ich sehr bequem mit der Middleware cv act sc/interface des deutschen Hersteller cv cryptovision aus Gelsenkirchen initialisiert habe. cv act sc/interface unterstützt eine unglaubliche Anzahl an unterschiedlichen Smartcard und USB-Crypto-Token diverser Hersteller und mit unterschiedlichsten Smartcard Betriebssystemen, unter anderem Gemalto, Yubikey, JCOP 21/31/41/, Infineon, HID, G&D STARCOS und Sm@artCafe, certgate microSD, CardOS, AustriaCard, ACOS und viele, viele mehr.

JCOP Smartcard mit cv act sc/interface Middleware von cryptovision
JCOP Smartcard mit cv act sc/interface Middleware von cryptovision

Über Microsoft Smartcard-Schnittstellen oder über PKCS#11 kannst du einfach Zertifikate und Schlüssel auf der Chipkarte generieren. Ich selbst wollte in dem heutigen Beispiel zeigen, wie man ganz ohne Certificate Authority (CA) passende Zertifikate für den Microsoft BitLocker To Go erzeugt.

Microsoft liefert für Windows 7 ganz gute Beispiele für die Erzeugung von Zertifikaten mit dem certutil.exe an. Die Methode funktioniert aber auch für Windows 8 und 10. Hierbei werden die Schlüssel vom Betriebssystem erzeugt und können dann auf deine Smartcard oder deinen Crypto-Token importiert werden. So geht’s:

Erstellen eines BitLocker To Go Zertifikates

Nun benötigst du ein Zertifikat, dass du für den BitLocker To Go nutzen kannst.

Erstellung mit Microsoft Tools

Dazu den Notepad öffnen und die Datei „bitlocker_request.txt“ erstellen:

[NewRequest]
 Subject = "CN=BitLocker"
 KeyLength = 2048
 Exportable = TRUE
 KeySpec = "AT_KEYEXCHANGE"
 KeyUsage = "CERT_KEY_ENCIPHERMENT_KEY_USAGE"
 KeyUsageProperty = "NCRYPT_ALLOW_DECRYPT_FLAG"
 RequestType = Cert
 SMIME = FALSE

[EnhancedKeyUsageExtension]
 OID=1.3.6.1.4.1.311.67.1.1

Dann die Eingabeaufforderung „cmd.exe“ starten und in das Verzeichnis wechseln, wo du die Datei „bitlocker_request.txt“ gespeichert hast. Dort bitte den folgenden Befehl aufrufen:

C:\Users\...> CertReq.exe -new bitlocker_request.txt

Dabei musst du das erstellte Zertifikat im Dateisystem ablegen. Speichere hierzu die Datei als bitlocker.crt im selben Verzeichnis ab. Die Datei benötigen wir Folge aber nicht mehr.

Nun hat der CertReq.exe Befehl einen privaten Schlüssel und ein selbstsigniertes Zertifikat im Microsoft Zertifikatsspeicher abgelegt, wo wir das Zertifikat inklusive dem privaten Schlüssel wieder herausholen werden, da wir es ja auf der Smartcard nutzen möchten. Funktioniert ganz einfach.

  1. Aufruf von certmgr.msc in der Eingabeaufforderung oder unter Windows->Ausführen
  2. Im Baum unter Eigene Zertifikate -> Zertifikate klicken und das neue Zertifikat „BitLocker“ doppelklicken
  3. Wechsel auf den Reiter „Details“ und die Funktion „In Datei kopieren…“ auswählen, dann „Weiter“
  4. Bei der Frage „Privaten Schlüssel exportieren“ die Auswahl „Ja, privaten Schlüssel exportieren“ auswählen und „Weiter“
  5. In nächsten Fenster die Funktion „Privater Informationsaustausch – PKCS #12 (.PFX)“ nutzen ohne weitere Optionen zu ändern, dann „Weiter“
  6. Ein Kennwort für die .PFX Datei auswählen, sich das Kennwort merken, dann „Weiter“
  7. Einen Dateinamen wählen und die .PFX Datei speichern, wieder „Weiter“ und dann „Fertig stellen“
  8. Wichtig: nach dem erfolgreichen Export, das Zertifikat im certmgr.msc mit der Entfernen-Taste löschen

Erstellung mit Linux und OpenSSL

Nun mag es vorsichtige Personen geben, die ihre Schlüssel nicht mit Microsoft Tools erzeugen möchte, da sie den Schlüsseln von Microsoft zu wenig vertrauen. Auch kein Problem, hier meine Anleitung für beliebige Linux mit installierten openssl, wie du deine BitLocker.pfx Datei ohne die Microsoft CryptoAPI erzeugen kannst. Kopiere das folgende Script in die Datei create_bitlockerkey.sh und setzte die Rechte mit chmod +x create_bitlockerkey.sh und rufe die Datei mit ./create_bitlockerkey.sh auf.

#!/bin/bash
read -p "Accountname (z.B. mmustermann):" account

mkdir ${account}
cd ${account}

cat >${account}.cnf <<-EOF
[ req ]
default_bits            = 2048
distinguished_name      = req_distinguished_name
string_mask = utf8only

[ req_distinguished_name ]
countryName                     = Land (2 Zeichen, z.B. AT, DE, CH)
countryName_default             = AT
countryName_min                 = 2
countryName_max                 = 2
localityName                    = Ort bzw. Stadt (z.B. Wien)
localityName_default            = Wien
0.organizationName              = Organization Name (eg, company)
0.organizationName_default      = Meine Firma
commonName                      = Dein Name (z.B. Max Mustermann)
commonName_default              = Andreas Schuster [Verschlüsselt.IT]
commonName_max                  = 64
emailAddress                    = Email Address
emailAddress_max                = 64

[ usr_cert ]
#basicConstraints=CA:FALSE
#keyUsage = keyEncipherment, dataEncipherment
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer

[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = 1.3.6.1.4.1.311.67.1.1
EOF

### Generiert einen Schlüssel für den Benutzer, Schlüsseldatei ist mit einem Passwort geschützt
echo "Ein neuer Schlüssel für den Benutzer <${account}> wird generiert..."
openssl genrsa -des3 -out ${account}.key 2048

### Speicherung der Schlüsseldatei ohne Passwort, unsicherer im Backup,  aber besser für ein späteres Recovery ;-)
echo "Der Schlüssel wird nun ohne Passwort gespeichert..."
openssl rsa -in ${account}.key -out ${account}.nopass.key

### Ein Certificate-Signing-Request wird mit den Parametern des Config-File erstellt
echo "Der Zertifikatsantrag (CSR) wird erstellt..."
openssl req -new -key ${account}.nopass.key -out ${account}.csr -config ${account}.cnf

### Optional: Ausgabe des Certificate-Signing-Request zur Kontrolle durch den Administrator
echo "Dies ist der Inhalt des Zertifikats..."
openssl req -text -noout -in ${account}.csr

### Generierung eines Self-Signed Zertifikates mit XX Jahren Laufzeit
echo "Das selbst-signierte Zertifikat mit Windows kompatiblen BitLocker-Eigenschaften wird erstellt..."
tage=365
jahre=20
laufzeit=`expr $tage \* $jahre`
openssl x509 -req -days ${laufzeit} -in ${account}.csr -signkey ${account}.nopass.key -out ${account}.crt -extensions v3_req -extfile ${account}.cnf

### Erstellung einer .PFX Datei, die am Windows Client importiert werden kann
echo "Die .P12/.PFX Datei (X.509 Zertifikat + privater Schlüssel) wird erstellt..."
openssl pkcs12 -export -in ${account}.crt -inkey ${account}.nopass.key -out ${account}.pfx

Nach Aufruf des Linux Scripts befindet sich in dem Unterverzeichnis des Accountnamens eine .pfx Datei. Diese bitte zu Windows übertragen.

Import des Zertifikates auf die Smartcard

Die .PFX Datei habe ich dann im cv act sc/interface Manager über die Funktion „Schlüsselpaar -> Schlüsselpaar aus einer PFX-Datei importieren“ auf meine JCOP Smartcard geladen. Ein kurzer Check über certmgr.msc bestätigt dir, ob das Zertifikat nun über die Smartcard bereitsteht. Wichtig ist die Zertifikatseigenschaft „Sie besitzen einen privaten Schlüssel für dieses Zertifikat“ sobald die Smartcard eingesteckt ist.

Windows Einstellung für selbstsignierte Zertifikate

Über das regedit.exe Tool musst du Windows konfigurieren, dass es selbstsignierte Zertifikate akzeptiert. Andernfalls kannst du nur Zertifikate aus einer vollständigen Microsoft CA nutzen.

Setze hierzu einen neuen Schlüssel „FVE“ unter „Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft“ und darin einen DWORD Schlüssel mit dem Inhalt „1“.

BitLocker To Go notwendige Registry Änderung für selbstsignierte Zertifikate
BitLocker To Go notwendige Registry Änderung für selbstsignierte Zertifikate

Ein Speichermedium mit BitLocker To Go verschlüsseln

In der folgenden Bilderreihe erkennst du alle nötigen Schritte, um einen handelsüblichen Memory-Stick oder eine SD-Karte mit BitLocker To Go zu verschlüsseln.

BitLocker To Go mit rechter Maustaste über dem USB-Stick den BitLocker aktivieren
BitLocker To Go mit rechter Maustaste über dem USB-Stick den BitLocker aktivieren

Nun kannst du die Smartcard für den BitLocker To Go aktivieren.

BitLocker To Go Initialisierung die Entsperrmethode auswählen
BitLocker To Go Initialisierung die Entsperrmethode auswählen

Wähle nun das Zertifikat aus, dass du für den BitLocker To Go nutzen möchtest. Das obere Zertifikat habe ich mit Linux OpenSSL erzeugt, das untere Zertifikat mit dem Microsoft certreq.exe Tool.

BitLocker To Go Auswahl des Zertifikats für die Verschlüsselung
BitLocker To Go Auswahl des Zertifikats für die Verschlüsselung

Nun musst du den Wiederherstellungsschlüssel abspeichern, der dir im Notfall Zugang zu deinen verschlüsselten Daten ermöglicht.

BitLocker to Go Wiederherstellungsschlüssel speichern
BitLocker To Go Wiederherstellungsschlüssel speichern

Die nächste Frage kann dir viel Zeit bei der Initialverschlüsselung ersparen. Nur wenn du schon viele vertrauliche Daten auf deinem Medium gespeichert hattest und ganz sicher gehen möchtest jeden Sektor zu schützen, nutze die Option das gesamte Laufwerk zu verschlüsseln.

BitLocker to Go Auswählen nur den verwendeten Speicherplatz verschlüsseln
BitLocker To Go Auswählen nur den verwendeten Speicherplatz verschlüsseln

Mit Windows 10 Version 1511 wurde AES-XTS eingeführt, siehe dazu mein weiterer Beitrag zur Sicherheit der Krypto-Algorithmen. Wenn du nur Win 10 nutzt, wähle den neuen Verschlüsselungsmodus und im Anschluss „Verschlüsselung starten“.

BitLocker To Go Verschlüsselungsmodus AES XTS-AES auswählen
BitLocker To Go Verschlüsselungsmodus AES XTS-AES auswählen

Nun wird es ein paar Minuten dauern, deinen Speichermedium zu verschlüsseln.

BitLocker To Go Initialverschlüsselung
BitLocker To Go Initialverschlüsselung

Nach der Initialverschlüsselung siehst du, dass der BitLocker für den Wechseldatenträger aktiv ist.

BitLocker To Go Verschlüsselung Einstellungen - Wiederherstellungsschlüssel - Kennwort - Smartcard - automatische Entsperrung - BitLocker deaktivieren
BitLocker To Go Verschlüsselung Einstellungen – Wiederherstellungsschlüssel – Kennwort – Smartcard – automatische Entsperrung – BitLocker deaktivieren

Bei jedem neuen Anstecken des Speichers erscheint die folgende Windows Meldung.

BitLocker To Go Windows Meldung Laufwerk gesperrt
BitLocker To Go Windows Meldung Laufwerk gesperrt

Öffnen kannst du das BitLocker To Go Laufwerk über die folgende Popup-Meldung mit einem Klick auf „Smartcard verwenden“.

BitLocker To Go Meldung bei verschlüsselten Speichermedien per Smartcard verwenden zu öffnen
BitLocker To Go Meldung bei verschlüsselten Speichermedien per Smartcard verwenden zu öffnen

Für den Zugriff auf den vertraulichen Schlüssel erfordert die Smartcard die Eingabe des Smartcard PINs. Im Anschluss hast du sofort Zugriff auf den verschlüsselten Speicher.

BitLocker To Go Smartcard PIN Eingabe um Speichermedium zu öffnen
BitLocker To Go Smartcard PIN Eingabe um Speichermedium zu öffnen

BitLocker To Go – mein Resümee

  • Gelungene – weil im Betriebssystem integrierte – Verschlüsselung für Memory-Sticks, externe Festplatten und xSD Speicher.
  • Nicht für Windows Home Benutzer verfügbar. BitLocker gibt es erst ab der Professional Version von Windows 8 und 10.
  • Im Standardfall handelt es sich um eine Verschlüsselung über ein benutzerdefiniertes Passwort je Speichermedium mit einer Recovery-Datei, solltet du das Passwort vergessen haben.
  • Die firmenweite Nutzung von BitLocker verschlüsselten Speichern durch mehrere Mitarbeiter sehe ich nicht unterstützt, da man für den Fall ein Passwort intern verteilen müsste. Denn was passiert, sobald der erste Mitarbeiter der das Passwort kennt ausscheidet…
  • Eine Smartcard mit Zertifikat wird für die Benutzeridentifizierung an der Verschlüsselung unterstützt, ist aber nicht sehr einfach umsetzbar.
  • Beim Entfernen der Smartcard wird der Wechseldatenträger nicht gesperrt oder die Verschlüsselung unterbrochen.
  • Software-Zertifikate aus dem Microsoft Zertifikatsspeicher können leider nicht für die Verschlüsselung genutzt werden.
  • Zertifikate die in der neuen Microsoft virtuellen Smartcard gespeichert sind können auch nicht genutzt werden, da BitLocker To Go meiner Meinung nach nur physikalische Smartcards/Crypto-Token unterstützt. (ergänzende Erkenntnisse durch meine Leser sind sehr willkommen!)
  • Die Sicherheitslösung ist nur unter Windows nutzbar, verschlüsselte Speicher können nicht an Drittgeräten in wie TV, Fotoapparat, Handy, etc. genutzt werden.
  • Teilweise Verschlüsselung von Speichergeräten funktioniert, sofern man vorher das Speichergerät partitioniert. Das ist unter Windows aber nicht besonders einfach.
  • BitLocker verschlüsselt standardmäßig mit AES-128, auch wenn man das nicht sehr einfach erkennt. Ein kurzer Aufruf von „manage-bde.exe -status“ in der Windows Eingabeaufforderung als Administrator bringt aber die Wahrheit ans Tageslicht: „Verschlüsselungsmethode: XTS-AES 128„. Die Umstellung auf AES-256 findest du in meinem weiteren Beitrag zur BitLocker AES-256 Konfiguration.
  • In Firmenumgebungen über divers Group Policies einstellbar. Wichtig hier zu erwähnen ist ein unternehmensweites Recovery-Zertifikat für die Wiederherstellung.

Hast du Fragen zu der BitLocker Verschlüsselung oder eigene Erfahrungen gesammelt? Schreibe nun dein Kommentar!

One thought on “Smartcard Identifizierung für BitLocker To Go”

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*