Verschlüsselte Partition – VeraCrypt, Dropbox und OneDrive per Batch-Script starten


Hinweis: Bevor Sie mit der Umsetzung einer solchen Lösung beginnen, sichern Sie immer Ihre Daten. Sollte aus irgendeinem Grund ein Fehler auftreten kann es sein dass Ihre Daten nicht wiederhergestellt werden können, sofern Sie keine Sicherung erstellt haben.


Um meinen Laptop abzusichern, habe ich eine „versteckte“ Partition eingerichtet. Im Grunde handelt es sich dabei lediglich um eine Partition, die keinen Laufwerksbuchstaben erhalten hat. Dies lässt sich über die Datenträgerverwaltung von Windows einrichten.

Mittels der Verschlüsselungssoftware VeraCrypt habe ich die komplette Partition verschlüsselt. Zum Entschlüsseln ist eine Keyfile und ein Passwort notwendig. Das Passwort habe ich im Kopf, die Keyfile auf einem USB-Stick, den ich am Schlüsselring immer dabei habe.

Das Problem

Starte ich den PC, so stecke ich den USB-Stick an und entschlüssele anschließend mittels VeraCrypt die Partition. Dies funktioniert auch ziemlich gut, wenn nicht gewisse Cloud-Dienste wären. So starten Dropbox und OneDrive im Normalfall mit dem Systemstart. Ist zu dem Zeitpunkt an dem Dropbox gestartet wird jedoch der Dropbox-Ordner nicht vorhanden, weil noch verschlüsselt, so wird man aufgefordert Dropbox neu einzurichten. Ähnlich verhält sich OneDrive. Dafür gibt es zwei Lösungen:

  • A: Man verschlüsselt die Dropbox und OneDrive Dateien nicht und richtet die Ordner auf der Normalen „Systempartition“ ein. Logischerweise sind diese Daten dann nicht durch die Verschlüsselungssoftware vor fremdem Zugriff geschützt.
  • B: Man entfernt oder deaktiviert die Autostart Einträge der Programme. Dadurch noch nicht verschlüsselten Partition nicht darüber meckern, dass ihre Ordner nicht vorhanden sind. Der Nachteil dieser Lösung ist ganz klar, dass es (zumindest in meinem Fall) wahrscheinlich ist, das man vergisst die Programme nach der Entschlüsselung zu starten. Dies kann dramatische Folgen haben.

Eine Zeit lang hatte ich die erste Lösung verwendet. Ich verschlüsselte also nur einen Teil meiner Daten auf einer separaten Partition und lies den Rest unverschlüsselt auf meiner Systempartition liegen. Da jedoch in meinem Fall die meisten meiner Daten in der Dropbox abgelegt werden, war mit der Zeit klar, dass ich entweder komplett auf die Verschlüsselung verzichten kann, oder aber mit Variante B mich anfreunden müsste, wenn ich alle wichtigen Daten schützen wollte.

Das bedeutete für mich, dass sich erst die Partition entschlüsselte, anschließend Dropbox und OneDrive manuell startete. Bis ich auf den Gedanken kam, dass alles durch eine Batchdatei, also eine Ablaufroutine für mein Betriebssystem ausführen zu lassen.

Hier eine kurze Zusammenfassung meiner Anforderungen

  • Ich möchte nur noch ein Passwort eingeben. Die Keyfile soll automatisch hinzugefügt werden. Da diese immer auf demselben Ort auf dem USB-Stick zu finden ist, sollte dies kein Problem sein.
  • Der USB Stick muss immer unter demselben Laufwerksbuchstaben vorhanden sein, um darauf zugreifen zu können.
  • Anschließend sollte die Entschlüsselung der Partition ausgeführt werden.
  • Erst wenn die Partition entschlüsselt ist, sollten automatisch die Programme von Dropbox und OneDrive gestartet werden, welche dann ihrerseits die Daten synchronisieren.

Zur Umsetzung

Mithilfe der Online-Ressource zur VeraCrypt-Kommandozeilenschnittstelle, war es relativ einfach möglich schnell den benötigten Befehl zusammenzubauen mit dem VeraCrypt gestartet wurde.

„C:\Program Files\VeraCrypt\VeraCrypt.exe“ /q /v „\Device\Harddisk0\Partition4“ /letter W /keyfile „U:\MyKeyFile“ /password „…“ /beep

Der Pfad zur versteckten Partition kann 1:1 aus der Selektionsmaske von VeraCrypt übernommen werden, wie in unten stehender Abbildung zu sehen ist.

 

Daten der versteckten Partition ermitteln.
Pfad zur versteckten Partition ermitteln.

Im Normalfall werden eingaben in der Kommandozeile nicht verdeckt. Eingegebene Passwörter werden also als Klartext in der Befehlszeile angezeigt und können dadurch von jedem der auf den Bildschirm blicken kann mitgelesen werden. Um die Passworteingabe zu maskieren, kann man mittels Windows PowerShell die Eingabe in eine temporäre Textdatei umleiten und diese maskieren. Dies geschieht mittels folgenden Codes.

Skript um mit Veracrypt Partition zu entschlüsseln.
Skript um mit Veracrypt Partition zu entschlüsseln.

Es sei zu erwähnen, dass dies nur die Eingabe vor neugierigen Blicken schützt und verhindert das das Passwort als Klartext in der Konsole erscheint. Wie das Passwort intern verarbeitet ist, habe ich noch nicht endgültig herausbekommen. Es kann also sein, dass das Passwort innerhalb des Programms trotzdem als Klartext vorliegt und nicht verschlüsselt verarbeitet wird. Den Code hierzu habe ich aus folgendem Thread: Quelle Stackoverflow.

Um die jeweiligen Cloud-Programme zu starten, wurden zwei weitere Batch-Skripte angelegt und im Hintergrund aufgerufen.

Verzeichnis der Batch-Routinen
Verzeichnis in dem die Batch-Routinen abgelegt sind.

Mit dem Batch-Skript vc.bat wird die Partition entschlüsselt.

Batch Skript zur Entschlüsselung
Skript um Veracrypt-Partition zu entschlüsseln.

Im selben Ordner befinden sich außerdem die Skripte:

StartDropbox.bat

Skript Start Dropbox
Skript um Dropbox zu starten.

Und StartOneDrive.bat

Skript Start OneDrive
Skript um OneDrive zu starten.

Diese Dateien starten die Programme der jeweiligen Cloudspeicheranbieter.

Alles in allem konnte ich durch den Einsatz des Skriptes meine Daten verschlüsseln und muss trotzdem nicht auf die Synchronisierung per Cloud verzichten.

Abschließend sei darauf hingiewesen, dass die Dateien innerhalb der Cloud logischerweise einsehbar sind. Wer seine Daten auch in der Cloud verschlüsseln will, sollte sich Angebote wie Boxcryptor ansehen.

Windows Tool um MD5 Prüfsummen für Dateien mit fciv.exe zu erstellen.

Icon FileChecksum Utility

Seit Längerem nutze ich bereits das Tool FCIV (fciv.exe) von Microsoft. Mit dem Tool ist es möglich Prüfsummen für Dateien zu berechnen. Wie man das Tool herunterladen und installieren kann ist hier beschreiben: Download und Installation FCIV.

Leider funktioniert das Tool von Microsoft nur in der Kommandozeile. Deswegen habe ich flink eine grafische Oberfläche dazu programmiert. Das fertige Programm könnt ihr hier abrufen: FileChecksumUtility.

Voraussetzung für das Programm ist das NET-Framework 4.5.