Verschlüsselung ist inzwischen zum regelrechten Selbstschutz geworden, wo unsere Politiker glauben eine Email würde nicht unter das Postgeheimnis fallen und im Namen der Sicherheit überall ihre Nase reinstecken. Um private Daten wirklich privat zu halten muss man sie schützen durch eine Verschlüsselung.
Dieses FAQ (Antworten auf häufige Fragen) soll ein Praxisleitfaden sein für alle die eben mall schnell etwas verschlüsseln wollen. Wer sich genauer mit dem Thema beschäftigen möchte kann den Links im FAQ folgen. Für die meisten Anwender ist aber nur entscheidend, dass ihre Daten sicher sind. Dabei sollte man keine Anfängerfehler begehen.
Linux komplett verschlüsselt betreiben
Wenn man mit einem komplett verschlüsselten Betriebssystem arbeiten möchte, sollte man einen Kompromiss zwischen Sicherheit und Geschwindigkeit eingehen. Zuerst wird jeder Laie zu dem Thema sagen: „Ich möchte die beste und sicherste Verschlüsselung!“ Doch was nützt dieses, wenn das System dadurch so langsam wird, dass flüssiges Arbeiten dadurch behindert wird?
(1) Welche Pakete sind unter Linux für die Verschlüsselung zu installieren?
Wir brauchen lvm2 und cryptsetup:
apt-get install cryptsetup lvm2
(2) Welchen Verschlüsselungsalgorithmus soll man wählen?
Die in diesem FAQ vorgestellten Algorithmen gelten alle als sicher. Entscheidend ist die Geschwindigkeit, wenn man ein komplett verschlüsseltes Betriebssystem betreiben möchte. Hier sind je nach Systemkonfiguration entweder AES oder Twofish die schnellsten. Dies findet man am besten mit dem folgenden Skript heraus, das ich entsprechend modifiziert habe für den Test (Original-Skript gibt es hier). Während des Benchmarks ist die CPU stark ausgelastet und der Rechner sollte für nichts anderes verwendet werden, um die Ergebnisse nicht zu verfälschen.
Das Skript als root starten (download hier):
sudo ./cryptobench.sh
Die Ausgabe ist natürlich abhängig von der Leistungsfähigkeit eures Systems und könnte so aussehen (Ausschnitt):
-c aes-xts-plain -s 512 17.6 MB/s 14.5 MB/s
-c twofish-xts-plain -s 512 20.3 MB/s 17.7 MB/s
-c camellia-xts-plain -s 512 16.7 MB/s 14.3 MB/s
-c serpent-xts-plain -s 512 18.1 MB/s 16.8 MB/s
Am Anfang erkennt man die Verschlüsselungsalgorithmen: AES, Twofish, Camellia und Serpent. Gefolgt von der Schlüssellänge hier 512 Bit. Dann die Schreib- und Lesegeschwindigkeit.
Auf dem in diesem Beispiel getesteten System wäre Twofish (mit XTS-plain) und einen 512 Bit Schlüssel der performanteste Algorithmus.
(3) Was bedeutet „xts-plain“?
Es ist die Art wie die verschlüsselten Blöcke auf der Festplatte gespeichert werden. Dazu muss man wissen, dass Regelmäßigkeiten der Feind einer jeden Verschlüsselung sind. Durch Regelmäßigkeiten können Codeknacker den Schlüssel errechnen. Frühere Speicherverfahren hatten das Problem, dass die recht regelmäßige Ablage auf der Festplatte Angriffsmöglichkeiten geboten haben. Darauf wurde mit Hash-Funktionen reagiert.
Dann wurde die XTS Methode erfunden und die hat noch keine bekannten Angriffsmöglichkeiten und gilt als sicher. XTS benötigt keinen Hash (wird dadurch nicht sicherer) und deswegen die Bezeichnung „plain“.
(4) Welche Schlüssellänge sollte gewählt werden?
Pauschal kann man sagen, je länger der Schlüssel, um so sicherer die Daten. Wenn wir davon ausgehen, dass keine Sicherheitslücken im Algorithmus gefunden werden, dann kann man die Daten nur unberechtigt lesen, wenn alle Schlüssel durchprobiert werden. Da die Rechenleistung auf der Erde beschränkt ist, dauert dies nach heutigen Gesichtspunkten ein paar Jahre.
Es wird davon ausgegangen, dass man zum knacken eines 128 Bit Schlüssels heute ca. 20 Jahre braucht. Da aber die Rechenleistung ständig zunimmt, wird dies in 5 Jahren wahrscheinlich weniger Zeit in Anspruch nehmen.
Die Frage, die man sich stellen sollte ist, will ich Geschwindigkeitseinbußen durch einen langen Schlüsseln hinnehmen, damit meine Daten in 10 Jahren auch immer noch sicher sind?
(5) Algorithmus und Schlüssellänge sind ausgewählt. Wie kann man loslegen?
Wie man ein Verschlüsseltes Linux auf Ubuntu-Basis aufsetzt wird hier beschrieben. Die Anleitung kann man mit einer Live-Boot-CD von Ubuntu nutzen, um jede andere Linux-Distribution zu installieren.
Einige wenige Linux-Distributionen unterstützen allerdings auch direkt während der Installation die Verschlüsselung.
An dem Punkt in der Anleitung, wo man den Algorithmus und die Schlüssellänge benutzt, muss man dann die mit diesem FAQ ermittelten Daten verwenden.
Um zu überprüfen welche Verschlüsselung und welche Schlüssellänge verwendet wurde, kann man auf der Kommandozeile folgendes eingeben:
dmsetup ls
Sollte den Namen des verschlüsselten Containers ausspucken, wenn er gemountet ist. Diesen Namen dann beim folgenden Befehl verwenden:
cryptsetup status name
Beispielausgabe:
cipher: twofish-xts-plain
keysize: 512 bits
(6) Dürfen Daten verschlüsselt werden und dürfen Behörden das Passwort verlangen?
In einem Land mit einer freiheitlich demokratischen Grundordnung, darf dem Bürger nicht verboten werden seine privaten Daten zu verschlüsseln.
Die Behörden dürfen die Herausgabe des Passwortes nicht verlangen, denn dieses käme einer möglichen Selbstbelastung gleich. Laut den Menschenrechten darf aber niemand gezwungen werden, sich selbst zu belasten.
(7) Laut diesem FAQ darf die Herausgabe des Passwortes nicht erzwungen werden. Ein us-amerikanischer Sicherheitsbeamter erzählt mir gerade was anderes?
Wenn man den Bereich der Geltung der freiheitlich demokratischen Grundordnung verlässt, kann man zu allem gezwungen werden.
Um dies zu vermeiden sollte man keine verschlüsselten Daten auf Notebooks transportieren, zumal es einfache Tricks gibt solche Situationen zu vermeiden. Dazu verschlüsselt man die Daten und lädt sie auf einen entsprechenden Server hoch. Dann löscht man die Festplatte im Notebook. Am Zielort lädt man sich die Daten dann wieder runter.
Um den Sicherheitsbeamten am Flughafen etwas Auswertungsmaterial zu geben, kann man sich ein paar Dokumente (SCIgen) generieren lassen.
(8) Meine Daten sind so wichtig, dass ich die maximale Sicherheit brauche. Wie geht das?
Hohe Sicherheit geht immer auf Kosten der Geschwindigkeit, wie zuvor erläutert. Es gibt aber Anwendungsfälle, wo Geschwindigkeit nicht das Wichtigste ist (z. B. Daten auf die selten zugegriffen wird).
Für die maximale Sicherheit verwendet man eine dreifach Verschlüsselung bestehend aus AES, Serpent und Twofish mit hohen Schlüssellängen. Sollte einer der Algorithmen geknackt werden, sichern immer noch zwei weitere die Daten. Dafür ist das Programm TrueCrypt geeignet.
(9) Kann die Polizei meine Daten entschlüsseln?
Wenn alles richtig gemacht wurde nicht. Die Möglichkeiten der Polizei sind begrenzt in einem demokratischen Land. Die Polizei hängt ihre Möglichkeiten allerdings auch nicht an die große Glocke. Es gab aber schon Fälle, wo die Polizei bei der Entschlüsselung von Daten versagt hat [1] [2] [3].
(10) Kann der Geheimdienst meine Daten entschlüsseln?
Der Geheimdienst kann auch nicht zaubern hat aber dafür andere Möglichkeiten. Schwache Passwörter können ein Angriffspunkt sein. Jemand dessen Hobby z. B. der Motorsport ist, wird mit hoher Wahrscheinlichkeit Passwörter mit Begriffen aus dem Motorsport wählen. Ansonsten kann durch Überwachung der Tastatureingaben per Video oder Hardware-Keylogger das Passwort herausgefunden werden.
Zum Schluss gibt es noch die Folter, um an ein Passwort zu gelangen.
Pingback: t3n.de/socialnews
Der BND meint er kann PGP-Verschlüsselung knacken:
http://www.golem.de/news/bundesregierung-deutsche-geheimdienste-koennen-pgp-entschluesseln-1205-92031.html
Also eine verschlüsselte Festplatte schütz zuverlässig vor der Staatsgewalt. Die kriminellen Kräfte wissen dies längst und wer seine Privatsphäre schützen möchte gegen den ausufernden Überwachungsstaat sollte sich mal hinsetzen und seinen Computer entsprechend aufrüsten:
http://mobil.zeit.de/politik/deutschland/2012-08/wulff-glaeseker-korruption
Dass 128 Bit Schlüssel in 20 oder gar schon in 10 Jahren unsicher sein werden ist schlicht falsch.
Wir können heute 56-Bit Schlüssel mit 10e3 € in durchschnittlich 24h „knacken“. Mal angenommen Moores Law hält und Rechenleistung wächst ähnlich schnell wie die Integrationsdicht, so haben wir alle 1,5 Jahre eine Verdoppelung der Rechenleistung. Das bedeutet, dass wir in 1,5 Jahren einen 57 Bit Schlüssel für 10e3 € in 24 Stunden knacken, in 2*1,5 Jahren einen 58 Bit Schlüssel und so weiter. Daraus folgt, dass wir erst in 108 Jahren so weit sein werden, einen 128 Bit Schlüsselraum zu durchsuchen. Dass Moores Law so lange hält ist mehr als unwahrscheinlich bedingt durch physikalische Grenzen.
Erschwerend kommt hinzu, dass man bei einem irreversiblen Computersystem für „jedes Bit“ eine Mindestenergiemenge benötigt. Das ist eine physikalische Grenze, die man nicht unterschreiten kann (ähnlich wie man die Lichtgeschwindigkeit nicht überschreiten kann im Vakuum). Möchte man durch alle 2^128 Zustände (also durch einen 128 Bit Schlüsselraum) durchrechnen, so benötigt das eine Energiemenge die so groß ist, dass du damit alle Ozeane der Erde verdampfen könntest.
Der Grund, wieso es 256 Bit Schlüssel gibt, ist der, dass Quantencomputer in der Zukunft in der Lage sein werden, den Schlüsselraum von 2^n auf 2^(n/2) zu verkleinern. Ein 256 Bit Schlüsselraum wird damit sozusagen zu einem 128 Bit Schlüsselraum. Es wurde bewiesen, dass es keinen Quantenalgorithmus geben kann, der den Schlüsselraum weiter verkleinern kann.
Das ist der einzige Grund, wieso es 256 Bit Schlüssel gibt. Quantencomputer werden jedoch sehr wahrscheinlich noch die nächsten Jahrzehnte nicht in Bereiche über ein paar Dutzend Bit vorstoßen. Da der Overhead durch einen 256 Bit Schlüssel jedoch vernachlässigbar klein ist auf den meisten Systemen, benutze auch ich überall 256-Bit Schlüssel.
also an alle die sich sorgen machen dass quantencomputer in zukunft die verschlüsslung eures rechner knacken, vergisst es! eine 256 aes verschlüsslung wird selbst wenn die gesamte erde zum pc umgebaut würde und jedes atom eine millarde operationen pro sekunde rechnen könnte immer noch tausende jahre brauchen – also einfach ruhig schlafen 😉
Hallo @akurei und @flux,
ich muss zugeben, dass ich den besagten Teil etwas flapsig formuliert habe und deswegen vielen Dank an @akurei für die detaillierte Richtigstellung.
Allerdings gebe ich zu bedenken, dass der Schlüssel ja durch ausprobieren herausgefunden wird und im ungünstigsten Fall der erste Versuch klappt. Man muss also gar nicht den gesamten Schlüsselraum durchprobieren sondern nur solange bis die Entschlüsselung klappt. In Zukunft werden wir Technologie zur Verfügung haben, die wir uns jetzt nicht einmal vorstellen können.
Ich will drei wenn auch unwahrscheinliche Szenarien beschreiben:
1) Eine Zeitmaschine. Wir lassen einen Rechner 1000 Jahre Rechnen, reisen dann in die Zukunft und holen uns das Ergebnis.
2) Kontakt mit Paralleluniversen. Wir verteilen die Rechenleistung auf unendlich viele Paralleluniversen und haben in einer Sekunde das Ergebnis.
3) Kontakt zu Rechnern außerhalb der Matrix. Wir finden einen Weg über das Internet Kontakt mit dem Simulationsrechner der Matrix aufzubauen. Dann können wir dessen Rechenleistung anzapfen, die wahrscheinlich gigantisch ist.
Es besteht auch die Möglichkeit, dass man eine Schwäche in AES findet, die die Entschlüsselung stark vereinfacht.
So etwas wie in dieser Art könnte in Zukunft bei mehr Rechenleistung ein Problem werden:
http://www.heise.de/security/meldung/Einschlaege-bei-AES-256-kommen-naeher-749257.html
http://www.heise.de/security/meldung/Erster-Kratzer-fuer-Kryptoalgorithmus-AES-1324532.html