2009-05-21 4 views
4

Ich ging vor kurzem durch diese kleine Noob Abenteuer auf einem Linux-Desktop:Wie kann ich unter Linux eine eigenständige verschlüsselte Datei erstellen?

  1. eine Textdatei mit sensiblen Informationen Nehmen
  2. PGP-Verschlüsselung (zB mit Seahorse)
  3. Back up
  4. Neu installieren OS, löschen Festplatte, Drop-Computer im Pool, etc, etc.
  5. Holen Sie sich die verschlüsselte Datei aus dem Backup, und keuchen im Horror zu erkennen, Sie können es nicht entschlüsseln, obwohl Sie das Passwort kennen, denn Sie nicht zurück up ~/.gnupg wo dein Schlüssel gespeichert wurde.

Warum bin ich darauf reingefallen? Weil ich früher ein Mac-Benutzer war, wo ich ein verschlüsseltes Disk-Image erstellen, meine Datei darin ablegen und das Unmounten machen würde. Ich könnte diese Datei überallhin verschieben, auf irgendeinen Mac laden, mounten, das Passwort eingeben und ta-da! Solange ich mich an das Passwort erinnerte, war alles gut.

Wer weiß, wie man so etwas mit Linux macht?

(Ich hoffe, das für SOF auf die Programmierung im Zusammenhang genug ist ... es ist wichtig für meine Programmierung Job sowieso!)

Antwort

3

TrueCrypt ist eine benutzerfreundliche Plattenverschlüsselungslösung, die (zu und anderen Systemen) unter Linux funktioniert .

Linux-only Lösungen der unteren Ebene sind dm-crypt und crpytoolop.

+0

Sie könnten Probleme mit Distributionen haben, die keinen neueren Kernel haben. – Ian

2

Ich benutze ccrypt, die auch in Cygwin verfügbar ist.

ccrypt is a utility for encrypting and decrypting files and streams. It 
    was designed to replace the standard unix crypt utility, which is noto‐ 
    rious for using a very weak encryption algorithm. ccrypt is based on 
    the Rijndael block cipher, which was also chosen by the U.S. government 
    as  the  Advanced  Encryption  Standard  (AES,  see 
    http://www.nist.gov/aes/). This cipher is believed to provide very 
    strong cryptographic security. 
1

I verwendet mcrypt. Es unterstützt mehrere moderne Verschlüsselungsalgorithmen und es ist ziemlich comon auf Linux-Maschinen (Oder zumindest ist es leicht, vorkompilierte Pakete auf den meisten Distoren zu erhalten).

8

Zusammenfassung: Wenn Sie dies tun möchten, verwenden Sie die Option --symmetric beim Verschlüsseln.

Schauen wir uns die Details an, was hier wirklich passiert; Ein wenig Verständnis hilft oft beim Versuch, die Dinge richtig zu machen.

Wenn Sie eine Datei mit GnuPG verschlüsseln, verwendet sie "symmetrische" Verschlüsselung. Das heißt, es verwendet einen einzigen Schlüssel, der sowohl den Klartext verschlüsselt als auch den Chiffretext entschlüsselt. Warum macht es das? Denn die symmetrischen Algorithmen sind viel schneller als die Algorithmen mit öffentlichem/privatem Schlüssel (wo separate Schlüssel zum Verschlüsseln und Entschlüsseln verwendet werden), und aus anderen Gründen werden wir später sehen.

Woher erhält er diesen Schlüssel, um die Datei zu verschlüsseln? Es ist zufällig. Nein, ich mache dich hier nicht im Scherz.

Jetzt könnten Sie denken, wir haben ein kleines Problem. Die Datei ist mit einem zufälligen Schlüssel verschlüsselt, und niemand (außer diesem bestimmten GnuPG-Prozess) weiß, was es ist. Was passiert als nächstes?

Hier ist der Trick: dieser zufällige Schlüssel wird dann mit anderen Schlüsseln verschlüsselt und in der Datei gespeichert. Auf diese Weise können mehrere Benutzer die Datei entschlüsseln.Zum Beispiel sind die Backups in meinem Unternehmen verschlüsselt, sodass sowohl ich als auch mein Geschäftspartner sie entschlüsseln kann: GnuPG verschlüsselt den Dateiverschlüsselungsschlüssel mit meinem öffentlichen Schlüssel und separat mit dem öffentlichen Schlüssel meines Partners und speichert beides mit den verschlüsselten Daten. Jetzt kann ich mit meinem privaten Schlüssel die mit meinem öffentlichen Schlüssel verschlüsselte Kopie entschlüsseln (oder mein Partner kann dasselbe mit seiner Kopie tun), den symmetrischen Schlüssel abrufen, der zum Verschlüsseln der Daten verwendet wird, und ihn entschlüsseln.

Was macht also --symmetric? Es verschlüsselt nur diesen zufälligen Verschlüsselungsschlüssel mit einem symmetrischen Algorithmus selbst, diesmal mit einem Schlüssel basierend auf der gelieferten Passphrase. Jetzt kann jeder, der die Passphrase kennt, auch die Datei entschlüsseln.

Das ist nett für eine Datei, aber das wird schnell genug unpraktisch, wenn Sie viele Dateien haben, die mit verschiedenen Passphrasen verschlüsselt sind, so dass verschiedene Gruppen von Menschen darauf zugreifen können, was ein Grund ist, warum wir normalerweise die Öffentlichkeit benutzen Schlüsselsysteme stattdessen.

Aber jetzt haben Sie gelernt, auf die harte Tour leider eine sehr wertvolle Lektion: Ihr privater Schlüssel ist wichtig! Wenn Sie das verlieren, verlieren Sie den Zugriff auf alles, was jemals mit Ihrem öffentlichen Schlüssel verschlüsselt wurde. Erzeugen Sie es einmal, bewahren Sie es auf und bewahren Sie es an mehreren Stellen auf.

Was Sie tun wollten, war, die --symmetric Option hinzuzufügen, die Entschlüsselung der Datei mit nur einer Passphrase zu ermöglichen.

Das Problem war, dass Sie die Datei mit Ihrem öffentlichen Schlüssel verschlüsselt haben, und wenn Sie das tun, benötigen Sie Ihren geheimen Schlüssel (gespeichert in ~/.gnupg), um es zu entschlüsseln.

1

ecryptfs ist einfach einzurichten und zu verwenden.

  • Auf den Kopf gestellt: Sie reservieren nicht im Voraus Speicherplatz; Es funktioniert als eine Schicht auf dem Dateisystem

  • Nachteil: Dateinamen sind nicht verschlüsselt. Natürlich können Sie dies tun, indem Sie Ihren gesamten Baum zippen oder tarieren und ecryptfs die zip- oder tar-Datei verschlüsseln lassen, aber das ist ärgerlich.

    UPDATE Ab März 2012 ist dieses Problem gelöst (und wurde seit einiger Zeit gelöst): ecryptfs verschlüsselt Dateinamen. Ich konnte die Versionsnummer oder das Datum, an dem diese Funktion eingeführt wurde, nicht finden.

+2

Tatsächlich unterstützt eCryptfs heutzutage Dateinamen :-) –

2

Curt Sampson hat die Konzepte sehr gut erklärt. Ich werde einige Details geben.

Traurig, Seahorse & Freunde gibt nicht die Option, symmetrische Verschlüsselung noch zu tun, obwohl es mit entschlüsseln symmetrisch verschlüsselten Dateien umgehen kann. In der Zwischenzeit können Sie, wie bereits gesagt wurde, Ihre Verschlüsselung von der Befehlszeile aus vornehmen, z.

gpg --symmetric --force-mdc --cipher-algo aes256 -o outfile infile 

Wenn Sie mit GPG glücklich sind, aber wirklich eine gui wollen, könnten Sie meine gpg-frontend Pyrite verwenden. Es integriert sich nicht mit Nautilus wie Seepferdchen-Plugins, aber es ist immer noch ziemlich süß, wenn ich das sagen darf. :)

Als jemand anderes erwähnt, ist eCryptfs eine gute Option, die sorta in diesem Bereich fällt, bietet pro-Datei-Verschlüsselung, obwohl es auf eine viel bequemere Weise, im Grunde bietet Ihnen einen Ordner, der transparent verschlüsselt/entschlüsselt alle Schreibvorgänge & liest zu/von ihm.Zunächst scheint es sich um eine verschlüsselte Containerlösung zu handeln, aber in Wirklichkeit werden die Dateien einzeln verschlüsselt - sobald Sie den Ordner aushängen, erhalten Sie eine Reihe von einzeln verschlüsselten Dateien. Diese article at LJ gibt einen guten Vergleich & Kontrast Überblick über eCryptfs vs einige der anderen Optionen. Hier ist, wie einfach es ist, eCryptfs gehend zu erhalten:

$ mkdir ~/vault 
$ sudo mount -t ecryptfs ~/vault ~/vault 
Select key type to use for newly created files: 
1) openssl 
2) passphrase 
3) pkcs11-helper 
4) tspi 
Selection: 2 
....... (truncated) 
$ echo hello > ~/vault/encfile 
$ sudo umount ~/vault 
$ ls -a ~/vault 
. .. encfile 
$ cat ~/vault/encfile 
稖��)!x�"3DUfw`��ȿ_���E�����_CONSOLE�W�v0�+�'�hV���Q��VZ��eP�����l⟮j%����?O��V 
....... (truncated) 

Wenn Sie daran interessiert sind, auch die ecryptfs-setup-private Befehl Kasse, die die Notwendigkeit für sudo beseitigt und ermöglicht alles zu automatisieren. Weitergehen.

Die besten andere Optionen sind diejenigen, die von pts erwähnt: TrueCrypt (die Cross-Plattform ist) und dm-crypt, die Sie jede Block-Gerät (zB Partitionen, logische Volumes, einzelne Dateien) verschlüsseln können und dann würfelst du natürlich noch ein fs drauf. Verwenden Sie Cryptoloop nicht (Vorgänger von dm-crypt).

ich meist nur Erfahrung mit Red Hat haben, Fedora, & Freunden, aber in denen Sie die schöne Disk-Management-gui ohne Installation nichts extra palimpset zu erstellen und ändern verschlüsselte Laufwerke/Partitionen direkt aus dem Tor nutzen können. Natürlich gibt es dafür eine Befehlszeilen-Utility: cryptsetup ... hier ist ein einfaches Beispiel, um Ihnen eine Vorstellung davon zu geben, was mit dm-crypt möglich ist, indem cryptsetup verwendet wird, um ein verschlüsseltes Dateisystem aus einem erweiterbaren logischen Volume zu machen:

Sobald Sie das getan haben, sollte Nautilus keine Probleme haben, es automatisch zu erkennen und dann können Sie es entsperren und einen sicheren Benutzer-Mount von dort machen.

EDIT:ich dumm fühlen. Ich habe die gpg-Tags durchsucht, als ich auf diese Frage stieß. Mir ist nicht aufgefallen, wie alt das war, bis ich mit dem Tippen fertig war und alles einreichen wollte. Naja. Vielleicht wird es für die Nachwelt nützlich sein.

+0

** Nachtrag: ** Ich denke, der LJ-Artikel, den ich verlinkt habe, spricht darüber, wie wichtig verschlüsselter Austausch ist, wenn man eines dieser Verschlüsselungsschemata verwendet. In jedem Fall sollten Sie die Hilfeseite für das Hilfsprogramm "' ecryptfs-setup-swap "** ausprobieren, wenn Sie ein System nicht von Grund auf neu einrichten. (Einfach wie Kuchen.) – rsaw

0

Sie können auch openssl verwenden, um Dateien zu verschlüsseln.