webentwicklung-frage-antwort-db.com.de

Wie kann ich Public-Key-Verschlüsselung für luks verwenden?

Ich habe luks mit den folgenden Befehlen ausgeführt:

$ Sudo dd if=/dev/urandom of=/keyfile bs=1024 count=4
$ Sudo cryptsetup luksFormat /dev/XXX keyfile
$ Sudo cryptsetup luksDump /dev/XXX

Und es zeigt mir folgende Meldung:

Version:        1
Cipher name:    aes
Cipher mode:    cbc-essiv:sha256
Hash spec:      sha1
Payload offset: 4096
MK bits:        256
MK digest:      f3 79 af 60 e6 34 5c 6e 27 6a e4 fe b6 f0 b2 95 8a 85 5c 31 
MK salt:        14 33 6b 95 f8 3d a9 e2 84 67 85 a1 18 be 70 58 
                af 10 10 28 c5 5b d1 1a 31 8e 8f e1 5a 93 51 12 
MK iterations:  45250
UUID:           776d4a78-3487-42df-8d3c-38708fdea60d

Key Slot 0: ENABLED
    Iterations:             181146
    Salt:                   da cf b7 36 fc 98 7c 5c 73 68 ca 44 f4 00 55 52 
                            47 46 68 50 bf aa 2e bb ac 47 83 0f 76 05 a6 05 
    Key material offset:    8
    AF stripes:             4000

Laut der Ausgabe ist Cipher nameaes und es ist keine Verschlüsselung mit öffentlichem Schlüssel. Wird es verwendet, um nur den Hauptschlüssel zu verschlüsseln, oder verschlüsselt es auch Inhalt? Wenn es nur den Hauptschlüssel verschlüsselt, wie wird Inhalt verschlüsselt?

Ich bin sicher aes auch sehr sicher. Aber ich denke, dass Verschlüsselung mit öffentlichem Schlüssel sicherer ist als andere Methoden wie aes. Auf der Manpage von cryptsetup habe ich versucht herauszufinden, wie man gpg oder andere Verschlüsselungsmethoden für luks verwendet, aber ich konnte keine Lösung finden.

Wie kann ich Verschlüsselung mit öffentlichem Schlüssel für luksFormat verwenden?

3
xiaodongjie

Die Verschlüsselung mit öffentlichen Schlüsseln ist wirklich nur dann nützlich, wenn Sie möchten, dass andere Personen Nachrichten an Sie verschlüsseln, und Sie möchten sich nicht die Mühe machen, ihnen heimlich Ihren geheimen Verschlüsselungsschlüssel zu geben. Sie veröffentlichen also Ihren öffentlichen Schlüssel, damit die Welt Nachrichten für Sie anzeigen und verschlüsseln kann, die nur Sie lesen können.

Sie können Ihre Dateien nicht auf Ihrem eigenen Computer verschlüsseln. Es kann davon ausgegangen werden, dass die Verschlüsselung mit öffentlichen Schlüsseln weniger sicher ist als die herkömmliche Verschlüsselung (wie AES, Blowfish, Camellia ...), da Sie einen Teil der Verschlüsselungsinformationen (den öffentlichen Teil) verteilen. . In der Praxis sind beide jedoch in jedem menschlichen Leben effektiv "unzerbrechlich".

Und Sie wissen möglicherweise nicht, wie das Verschlüsselungsprogramm mit öffentlichem Schlüssel PGP/GPG tatsächlich funktioniert. Es verschlüsselt Nachrichten auf herkömmliche Weise und verschlüsselt dann den herkömmlichen Schlüssel mit public Schlüsselverschlüsselung .

Hier ist ein Zitat von einigen älteren (aber immer noch gültigen) PGPi-Dokumentation und ein bisschen darüber, warum jemand der Meinung ist, dass eine Methode sicherer ist als die andere, wenn er nur die Schlüsselgrößen vergleicht:

PGP kombiniert einige der besten Funktionen der Kryptografie mit konventionellen und öffentlichen Schlüsseln . PGP ist ein hybrides Kryptosystem. Wenn ein Benutzer Klartext mit PGP verschlüsselt, komprimiert PGP zuerst den Klartext. Die Datenkomprimierung spart Übertragungszeit und Speicherplatz für das Modem und stärkt vor allem die kryptografische Sicherheit. Die meisten Kryptoanalysetechniken nutzen Muster aus dem Klartext, um die Chiffre zu knacken. Durch die Komprimierung werden diese Muster im Klartext reduziert, wodurch die Beständigkeit gegenüber der Kryptoanalyse erheblich verbessert wird. (Dateien, die zu kurz zum Komprimieren sind oder die nicht gut komprimiert wurden, werden nicht komprimiert.)

PGP erstellt dann einen Sitzungsschlüssel, bei dem es sich um einen einmaligen geheimen Schlüssel handelt. Diese Taste ist eine Zufallszahl, die aus den zufälligen Bewegungen Ihrer Maus und den von Ihnen eingegebenen Tastenanschlägen generiert wird. Dieser Sitzungsschlüssel arbeitet mit einem sehr sicheren, schnellen herkömmlichen Verschlüsselungsalgorithmus , um den Klartext zu verschlüsseln. Das Ergebnis ist Chiffretext. Sobald die Daten verschlüsselt sind, wird der Sitzungsschlüssel mit dem öffentlichen Schlüssel des Empfängers verschlüsselt. Dieser mit einem öffentlichen Schlüssel verschlüsselte Sitzungsschlüssel wird zusammen mit dem Chiffretext an den Empfänger übertragen.

...

Die Kombination der beiden Verschlüsselungsmethoden kombiniert den Komfort der Verschlüsselung mit öffentlichen Schlüsseln mit der Geschwindigkeit der herkömmlichen Verschlüsselung. Die konventionelle Verschlüsselung ist ungefähr 1.000-mal schneller als die Verschlüsselung mit öffentlichen Schlüsseln . Die Verschlüsselung mit öffentlichen Schlüsseln bietet wiederum eine Lösung für Probleme bei der Schlüsselverteilung und Datenübertragung. Bei gleichzeitiger Verwendung werden Leistung und Schlüsselverteilung ohne Einbußen bei der Sicherheit verbessert.

...

Die Größe des öffentlichen Schlüssels und die Größe des geheimen Schlüssels der herkömmlichen Kryptographie stehen jedoch in keiner Beziehung zueinander. Ein herkömmlicher 80-Bit-Schlüssel hat die gleiche Stärke wie ein öffentlicher 1024-Bit-Schlüssel. Ein herkömmlicher 128-Bit-Schlüssel entspricht einem öffentlichen 3000-Bit-Schlüssel. Je größer der Schlüssel, desto sicherer sind die Algorithmen, die für die einzelnen Kryptografietypen verwendet werden. Der Vergleich ähnelt also dem von Äpfeln mit Orangen.


Wenn Sie eine Methode verwenden möchten, die GPG einbezieht, um Ihren öffentlichen Schlüssel zum Verschlüsseln der Passphrase oder der Schlüsseldatei für Ihren LUKS-Container zu verwenden, können Sie dies tun, wenn Sie dies möchten. Aber wenn Ihr privater GPG-Schlüssel jemals kompromittiert wurde oder verloren ging, würde dies auch Ihr LUKS-Container tun.

Und Sie können mit cryptsetup eine andere Chiffre wählen. Sie würde die Chiffre verwenden, um alle Daten zu verschlüsseln. Sehen man cryptsetup für Infos wie:

   --cipher, -c <cipher-spec>
          Set the cipher specification string.

Und unter einem Standard-Ubuntu sollten zumindest diese Chiffren unterstützt werden:

loop-AES: aes, Schlüssel 256 Bit
plain: aes-cbc-essiv: sha256, key: 256 bits
LUKS1: aes-xts-plain64, Schlüssel: 256 Bit

3
Xen2050