Εγχειρίδια για τη γραμμή εντολών

Man » Διαδικτυακό εγχειρίδιο cryptsetup - λεπτομερής διαδικτυακή τεκμηρίωση για τη σελίδα man του cryptsetup

🌍
cryptsetup - εργαλείο για τη διαμόρφωση και διαχείριση κρυπτογραφημένων συσκευών αποθήκευσης

ΣΥΝΟΨΗ

cryptsetup <ενέργεια> [<επιλογές>] <ορίσματα ενέργειας>

ΠΕΡΙΓΡΑΦΗ

Το Cryptsetup είναι ένα εργαλείο για τη διαμόρφωση και διαχείριση κρυπτογράφησης πλήρους δίσκου σε συσκευές αποθήκευσης. Μπορεί να κρυπτογραφήσει συσκευές μπλοκ (όπως σκληρούς δίσκους ή διαμερίσματα) και κοντέινερ (εικόνες δίσκων που αποθηκεύονται ως αρχεία).

Όταν ξεκλειδώνετε μια κρυπτογραφημένη μονάδα δίσκου, το cryptsetup δημιουργεί μια νέα αντιστοίχιση συσκευών στην οποία μπορούν να έχουν πρόσβαση οι εφαρμογές σαν μια κανονική συσκευή αποθήκευσης. Η πραγματική κρυπτογράφηση και αποκρυπτογράφηση εκτελείται διαφανώς από τον πυρήνα του λειτουργικού συστήματος με το πρόγραμμα οδήγησης dm-crypt.

Το Cryptsetup λειτουργεί με δύο κύριους τύπους μονάδων δίσκου: απλές κρυπτογραφημένες μονάδες δίσκου και μονάδες δίσκου LUKS (Linux Unified Key Setup). Οι απλές μονάδες δίσκου παρέχουν βασική κρυπτογράφηση, ενώ οι μονάδες δίσκου LUKS περιλαμβάνουν μια κεφαλίδα μεταδεδομένων που επιτρέπει προηγμένες λειτουργίες, όπως πολλαπλές υποδοχές κλειδιών και διαχείριση κλειδιών. Επιπλέον, το LUKS μπορεί να χρησιμοποιηθεί για τη διαχείριση υλικού κρυπτογράφησης σε συσκευές αποθήκευσης που υποστηρίζουν OPAL.

Το Cryptsetup παρέχει επίσης περιορισμένη υποστήριξη για μονάδες δίσκου που δημιουργήθηκαν από άλλα συστήματα κρυπτογράφησης, συμπεριλαμβανομένων των loop-AES, TrueCrypt, VeraCrypt, BitLocker και FileVault2.

Για περισσότερες πληροφορίες σχετικά με μια συγκεκριμένη ενέργεια cryptsetup, δείτε το cryptsetup-<ενέργεια>(8), όπου <ενέργεια> είναι το όνομα της ενέργειας cryptsetup.

Οι συσκευές Cryptsetup μπορούν να ενεργοποιηθούν κατά την εκκίνηση μέσω του crypttab(5), το οποίο είναι μέρος του systemd(1) ή άλλων σεναρίων εκκίνησης του συστήματος.

ΒΑΣΙΚΕΣ ΕΝΕΡΓΕΙΕΣ

Οι παρακάτω είναι έγκυρες ενέργειες για όλους τους υποστηριζόμενους τύπους συσκευών.

ΑΝΟΙΓΜΑ

open <συσκευή> <όνομα> --type <τύπος_συσκευής>

Ανοίγει (δημιουργεί μια αντιστοίχιση με) το <όνομα> με βάση τη συσκευή <συσκευή>. Δείτε το cryptsetup-open(8).

ΚΛΕΙΣΙΜΟ

close <όνομα>

Αφαιρεί την υπάρχουσα αντιστοίχιση <όνομα> και διαγράφει το κλειδί από τη μνήμη του πυρήνα. Δείτε το cryptsetup-close(8).

ΚΑΤΑΣΤΑΣΗ

status <όνομα>

Αναφέρει την κατάσταση για την αντιστοίχιση <όνομα>. Δείτε το cryptsetup-status(8).

ΑΛΛΑΓΗ ΜΕΓΕΘΟΥΣ

resize <όνομα>

Αλλάζει το μέγεθος μιας ενεργής αντιστοίχισης <όνομα>. Δείτε το cryptsetup-resize(8).

ΑΝΑΝΕΩΣΗ

refresh <όνομα>

Ανανεώνει τις παραμέτρους της ενεργής αντιστοίχισης <όνομα>. Δείτε το cryptsetup-refresh(8).

ΕΠΑΝΑΚΡΥΠΤΟΓΡΑΦΗΣΗ

reencrypt <συσκευή> ή --active-name <όνομα> [<νέο_όνομα>]

Εκτελεί επανάκρυπτογράφηση συσκευής LUKS. Δείτε το cryptsetup-reencrypt(8).

ΑΠΛΗ ΛΕΙΤΟΥΡΓΙΑ

Το απλό dm-crypt κρυπτογραφεί τη συσκευή, τομέα προς τομέα, με μια απλή, μη αλατισμένη συνάρτηση κατακερματισμού του κωδικού πρόσβασης. Δεν εκτελούνται έλεγχοι και δεν χρησιμοποιούνται μεταδεδομένα. Δεν υπάρχει λειτουργία μορφοποίησης. Όταν η ακατέργαστη συσκευή αντιστοιχίζεται (ανοίγει), οι συνήθεις λειτουργίες συσκευής μπορούν να χρησιμοποιηθούν στη συσκευή που έχει αντιστοιχιστεί, συμπεριλαμβανομένης της δημιουργίας συστήματος αρχείων. Οι συσκευές που έχουν αντιστοιχιστεί συνήθως βρίσκονται στο /dev/mapper/<όνομα>.


Οι παρακάτω είναι έγκυρες ενέργειες απλού τύπου συσκευής:

ΑΝΟΙΓΜΑ

open --type plain <συσκευή> <όνομα>
create <όνομα> <συσκευή> (ΑΡΧΑΙΑ σύνταξη)

Ανοίγει (δημιουργεί μια αντιστοίχιση με) <όνομα> με βάση τη συσκευή <συσκευή>. Δείτε cryptsetup-open(8).

ΕΠΕΚΤΑΣΗ LUKS

Το LUKS, το Linux Unified Key Setup, είναι ένα πρότυπο για την κρυπτογράφηση δίσκων. Προσθέτει μια τυποποιημένη
κεφαλίδα στην αρχή της συσκευής, μια περιοχή υποδοχών κλειδιών ακριβώς πίσω από την κεφαλίδα και την κύρια περιοχή δεδομένων πίσω από αυτό. Το σύνολο ονομάζεται «δοχείο LUKS». Η συσκευή στην οποία βρίσκεται ένα δοχείο LUKS ονομάζεται «συσκευή LUKS». Για τους περισσότερους σκοπούς, και οι δύο όροι μπορούν να χρησιμοποιηθούν εναλλακτικά.

Το LUKS μπορεί να διαχειρίζεται πολλαπλές φράσεις πρόσβασης που μπορούν να ανακληθούν ή να αλλάξουν μεμονωμένα. Κάθε φράση πρόσβασης χρησιμοποιεί μια μεμονωμένη υποδοχή κλειδιού που περιέχει ένα κλειδί έντασης για την κρυπτογράφηση δεδομένων. Οι υποδοχές κλειδιών μπορούν να διαγραφούν με ασφάλεια από μόνιμα μέσα λόγω της χρήσης αντι-δικανικών λωρίδων. Οι φράσεις πρόσβασης προστατεύονται από επιθέσεις ωμής βίας από τη συνάρτηση παραγωγής κλειδιού βάσει κωδικού πρόσβασης (PBKDF). Μια φράση πρόσβασης που είναι αποθηκευμένη σε ένα αρχείο ονομάζεται αρχείο κλειδιού. Η μόνη διαφορά μεταξύ μιας φράσης πρόσβασης και ενός αρχείου κλειδιού είναι ότι ένα αρχείο κλειδιού μπορεί να περιέχει δυαδικά δεδομένα. Και τα δύο υποβάλλονται σε επεξεργασία με τον ίδιο τρόπο.

Η έκδοση 1 του LUKS (ή LUKS1) είναι η αρχική μορφή μεταδεδομένων, ενώ το LUKS2 είναι μια νέα έκδοση που
επιτρέπει πρόσθετες επεκτάσεις, όπως διαφορετικοί αλγόριθμοι PBKDF ή κρυπτογραφημένη αυθεντικοποίηση. Μπορείτε να μορφοποιήσετε τη συσκευή με μια συγκεκριμένη έκδοση LUKS με τη χρήση της επιλογής --type luks1 ή --type luks2 στην
εντολή luksFormat. Συνήθως, δεν χρειάζεται να καθορίσετε κάποια έκδοση, καθώς αναγνωρίζεται αυτόματα. Η προεπιλεγμένη μορφή είναι LUKS2.

Η παράμετρος <συσκευή> μπορεί επίσης να καθοριστεί από ένα UUID LUKS στη μορφή UUID=.

Η κεφαλίδα LUKS μπορεί να αποσυνδεθεί από τα δεδομένα (να αποθηκευτεί ξεχωριστά). Για να καθορίσετε μια αποσυνδεδεμένη κεφαλίδα, η παράμετρος --header μπορεί να χρησιμοποιηθεί σε όλες τις εντολές LUKS και έχει πάντα προτεραιότητα έναντι της θέσης παραμέτρου <συσκευή>.

Οι παρακάτω είναι έγκυρες ενέργειες LUKS:

ΜΟΡΦΟΠΟΙΗΣΗ

luksFormat <συσκευή> [<αρχείο κλειδιού>]

Αρχικοποιεί ένα διαμέρισμα LUKS και ορίζει την αρχική φράση πρόσβασης (για την υποδοχή κλειδιού 0). Δείτε cryptsetup-luksFormat(8).

ΑΝΟΙΓΜΑ

open --type luks <συσκευή> <όνομα>
luksOpen <συσκευή> <όνομα> (παλιά σύνταξη)

Ανοίγει τη συσκευή LUKS <συσκευή> και δημιουργεί μια αντιστοίχιση <όνομα> μετά από επιτυχή επαλήθευση της παρεχόμενης φράσης πρόσβασης. Δείτε cryptsetup-open(8).

ΑΝΑΣΤΟΛΗ

luksSuspend <όνομα>

Αναστέλλει μια ενεργή συσκευή (όλες οι λειτουργίες εισόδου/εξόδου θα αποκλειστούν και οι προσβάσεις στη συσκευή θα περιμένουν αόριστα) και διαγράφει το κλειδί κρυπτογράφησης από τη μνήμη του πυρήνα. Δείτε cryptsetup-luksSuspend(8).

ΣΥΝΕΧΙΣΗ

luksResume <όνομα>

Συνεχίζει μια ανασταλμένη συσκευή και επαναφέρει το κλειδί κρυπτογράφησης. Δείτε cryptsetup-luksResume(8).

ΠΡΟΣΘΗΚΗ ΚΛΕΙΔΙΟΥ

luksAddKey <συσκευή> [<αρχείο κλειδιού με νέο κλειδί>]

Προσθέτει μια νέα φράση πρόσβασης χρησιμοποιώντας μια υπάρχουσα φράση πρόσβασης. Δείτε cryptsetup-luksAddKey(8).

ΑΦΑΙΡΕΣΗ ΚΛΕΙΔΙΟΥ

luksRemoveKey <συσκευή> [<αρχείο κλειδιού με τη φράση πρόσβασης που θα αφαιρεθεί>]

Αφαιρεί την παρεχόμενη φράση πρόσβασης από τη συσκευή LUKS. Δείτε cryptsetup-luksRemoveKey(8).

ΑΛΛΑΓΗ ΚΛΕΙΔΙΟΥ

luksChangeKey <συσκευή> [<νέο αρχείο κλειδιού>]

Αλλάζει μια υπάρχουσα φράση πρόσβασης. Δείτε cryptsetup-luksChangeKey(8).

ΜΕΤΑΤΡΟΠΗ ΚΛΕΙΔΙΟΥ

luksConvertKey <συσκευή>

Μετατρέπει μια υπάρχουσα υποδοχή κλειδιού LUKS2 σε νέες παραμέτρους PBKDF. Δείτε cryptsetup-luksConvertKey(8).

ΔΙΑΓΡΑΦΗ ΥΠΟΔΟΧΗΣ

luksKillSlot <συσκευή> <αριθμός>

Διαγράφει την υποδοχή κλειδιού με τον <αριθμό> από τη συσκευή LUKS. Δείτε cryptsetup-luksKillSlot(8).

ΔΙΑΓΡΑΦΗ

erase <συσκευή>
luksErase <συσκευή> (παλιά σύνταξη)

Διαγράφει όλες τις υποδοχές κλειδιών και καθιστά μόνιμα απρόσιτο τον κοντέινερ LUKS. Δείτε cryptsetup-erase(8).

UUID

luksUUID <συσκευή>

Εμφανίζει ή ορίζει το UUID μιας συσκευής LUKS. Δείτε cryptsetup-luksUUID(8).

ΕΙΝΑΙ LUKS

isLuks <συσκευή>

Επιστρέφει true, εάν η <συσκευή> είναι μια συσκευή LUKS, διαφορετικά επιστρέφει false. Δείτε cryptsetup-isLuks(8).

ΕΞΑΓΩΓΗ

luksDump <συσκευή>

Εξάγει τις πληροφορίες κεφαλίδας μιας συσκευής LUKS. Δείτε cryptsetup-luksDump(8).

ΑΝΤΙΓΡΑΦΟ ΑΣΦΑΛΕΙΑΣ ΚΕΦΑΛΙΔΑΣ

luksHeaderBackup <συσκευή> --header-backup-file <αρχείο>

Αποθηκεύει μια δυαδική αντιγραφή ασφαλείας της κεφαλίδας LUKS και της περιοχής υποδοχών κλειδιών. Δείτε cryptsetup-luksHeaderBackup(8).

ΕΠΑΝΑΦΟΡΑ ΚΕΦΑΛΙΔΑΣ

luksHeaderRestore <συσκευή> --header-backup-file <αρχείο>

Επαναφέρει μια δυαδική αντιγραφή ασφαλείας της κεφαλίδας LUKS και της περιοχής υποδοχών κλειδιών από το καθορισμένο αρχείο. Δείτε cryptsetup-luksHeaderRestore(8).

TOKEN

token <add|remove|import|export> <συσκευή>

Διαχειρίζεται αντικείμενα token που χρησιμοποιούνται για την ανάκτηση φράσεων πρόσβασης. Δείτε cryptsetup-token(8).

ΜΕΤΑΤΡΟΠΗ

convert <συσκευή> --type <μορφή>

Μετατρέπει τη συσκευή μεταξύ των μορφών LUKS1 και LUKS2 (εάν είναι δυνατόν). Δείτε cryptsetup-convert(8).

ΔΙΑΜΟΡΦΩΣΗ

config <συσκευή>

Ορίζει μόνιμες επιλογές διαμόρφωσης (αποθηκεύει στην κεφαλίδα LUKS). Δείτε cryptsetup-config(8).

ΕΠΕΚΤΑΣΗ LOOP-AES

Το Cryptsetup υποστηρίζει την αντιστοίχιση μιας κατατμημένης περιοχής κρυπτογραφημένης με loop-AES χρησιμοποιώντας μια λειτουργία συμβατότητας.

ΑΝΟΙΓΜΑ

open --type loopaes <συσκευή> <όνομα> --key-file <αρχείο κλειδιού>
loopaesOpen <συσκευή> <όνομα> --key-file <αρχείο κλειδιού> (παλιά σύνταξη)

Ανοίγει την περιοχή loop-AES <συσκευή> και ρυθμίζει μια αντιστοίχιση <όνομα>. Δείτε cryptsetup-open(8).

Δείτε επίσης την ενότητα 7 του FAQ και το loop-AES [http://loop-aes.sourceforge.net] για περισσότερες πληροφορίες σχετικά με το loop-AES.

ΕΠΕΚΤΑΣΗ TCRYPT (ΣΥΜΒΑΤΗ ΜΕ ΤΟ TRUECRYPT ΚΑΙ ΤΟ VERACRYPT)

Το Cryptsetup υποστηρίζει την αντιστοίχιση των κατατμημένων περιοχών κρυπτογραφημένων με TrueCrypt, tcplay ή VeraCrypt χρησιμοποιώντας ένα εγγενές API πυρήνα Linux. Η μορφοποίηση της κεφαλίδας και η αλλαγή της κεφαλίδας TCRYPT δεν υποστηρίζονται. το cryptsetup δεν αλλάζει ποτέ την κεφαλίδα TCRYPT στη συσκευή.

Η επέκταση TCRYPT απαιτεί τη διαθεσιμότητα του API χώρου χρήστη πυρήνα για αλγόριθμους συμμετρικής κρυπτογράφησης. Εάν διαμορφώνετε μόνοι σας τον πυρήνα, ενεργοποιήστε την επιλογή "Διασύνδεση χώρου χρήστη για αλγόριθμους συμμετρικής κρυπτογράφησης" στην ενότητα "Κρυπτογραφικό API" (επιλογή .config CRYPTO_USER_API_SKCIPHER).

Επειδή η κεφαλίδα TCRYPT είναι κρυπτογραφημένη, πρέπει πάντα να παρέχετε μια έγκυρη φράση πρόσβασης και αρχεία κλειδιών.

Το cryptsetup θα πρέπει να αναγνωρίζει όλες τις παραλλαγές κεφαλίδων, εκτός από τις παλιές αλυσίδες κρυπτογράφησης που χρησιμοποιούν τη λειτουργία κρυπτογράφησης LRW με ένα μπλοκ κρυπτογράφησης 64-bit (δηλαδή, το Blowfish σε λειτουργία LRW δεν αναγνωρίζεται· αυτός είναι ένας περιορισμός του API κρυπτογράφησης του πυρήνα).

Το VeraCrypt είναι μια επέκταση του TrueCrypt με αυξημένο αριθμό επαναλήψεων, επομένως το ξεκλείδωμα μπορεί να
διαρκέσει αρκετό χρόνο.

Για να ανοίξετε μια συσκευή VeraCrypt με μια προσαρμοσμένη τιμή Personal Iteration Multiplier (PIM), χρησιμοποιήστε είτε την επιλογή --veracrypt-pim PIM για να καθορίσετε απευθείας το PIM στη γραμμή εντολών είτε --veracrypt-query-pim για να σας ζητηθεί το PIM.

Η τιμή PIM επηρεάζει τον αριθμό των επαναλήψεων που εφαρμόζονται κατά τη δημιουργία κλειδιού. Ανατρέξτε στην σελίδα PIM [https://veracrypt.io/en/Personal%20Iterations%20Multiplier%20(PIM).html] για πιο λεπτομερείς πληροφορίες.

Εάν πρέπει να απενεργοποιήσετε την υποστήριξη συσκευών VeraCrypt, χρησιμοποιήστε την επιλογή --disable-veracrypt.

Η ενεργοποίηση με το tcryptOpen υποστηρίζεται μόνο για αλυσίδες κρυπτογράφησης που χρησιμοποιούν τις λειτουργίες κρυπτογράφησης LRW ή XTS.

Η εντολή tcryptDump θα πρέπει να λειτουργεί για όλες τις αναγνωρισμένες συσκευές TCRYPT και δεν απαιτεί δικαιώματα διαχειριστή.

Για να αντιστοιχίσετε τη συσκευή συστήματος (συσκευή με φορτωτή εκκίνησης όπου βρίσκεται ολόκληρο το κρυπτογραφημένο σύστημα), χρησιμοποιήστε την επιλογή --tcrypt-system. Διαβάστε τις συγκεκριμένες πληροφορίες στην ενότητα --tcrypt-system της σελίδας cryptsetup-tcryptOpen(8), καθώς η αντιστοίχιση μιας συσκευής κρυπτογραφημένης συστήματος είναι περίπλοκη.

Για να χρησιμοποιήσετε μια κρυφή κεφαλίδα (και να αντιστοιχίσετε μια κρυφή συσκευή, εάν είναι διαθέσιμη), χρησιμοποιήστε την επιλογή --tcrypt-hidden.

Για να χρησιμοποιήσετε ρητά την εφεδρική (δευτερεύουσα) κεφαλίδα, χρησιμοποιήστε την επιλογή --tcrypt-backup.

Δεν υπάρχει προστασία για μια κρυφή ένταση εάν η εξωτερική ένταση είναι συνδεδεμένη. Ο λόγος είναι ότι εάν υπήρχε κάποια προστασία, θα απαιτούσε κάποια μεταδεδομένα που περιγράφουν τι πρέπει να προστατεύεται στην εξωτερική ένταση, και η κρυφή ένταση θα γινόταν ανιχνεύσιμη.

OPEN

open --type tcrypt <device> <name>
tcryptOpen_ <device> <name> (παλιά σύνταξη)

Ανοίγει τη συσκευή TCRYPT (συμβατή με TrueCrypt) και δημιουργεί μια αντιστοίχιση . Δείτε cryptsetup-open(8).

DUMP

tcryptDump <device>

Εξάγει τις πληροφορίες κεφαλίδας μιας συσκευής TCRYPT. Δείτε cryptsetup-tcryptDump(8).

Δείτε επίσης τις σελίδες TrueCrypt [https://en.wikipedia.org/wiki/TrueCrypt] και VeraCrypt [https://en.wikipedia.org/wiki/VeraCrypt] για περισσότερες πληροφορίες.

Σημειώστε ότι το cryptsetup δεν χρησιμοποιεί κώδικα TrueCrypt ή VeraCrypt· αναφέρετε όλα τα προβλήματα που σχετίζονται με αυτή την επέκταση συμβατότητας στο έργο cryptsetup.

ΕΠΈΚΤΑΣΗ BITLK (ΣΥΜΒΑΤΉ ΜΕ ΤΟ WINDOWS BITLOCKER)

Το cryptsetup υποστηρίζει την αντιστοίχιση διαμερισμάτων κρυπτογραφημένων με BitLocker και BitLocker to Go χρησιμοποιώντας ένα εγγενές API κρυπτογράφησης του πυρήνα Linux. Η μορφοποίηση της κεφαλίδας και οι αλλαγές της κεφαλίδας BITLK δεν υποστηρίζονται· το cryptsetup δεν τροποποιεί ποτέ την κεφαλίδα BITLK στη συσκευή.

Η επέκταση BITLK απαιτεί να είναι διαθέσιμο το API κρυπτογράφησης του χώρου χρήστη του πυρήνα (για λεπτομέρειες, δείτε την
ενότητα TCRYPT).

Το cryptsetup θα πρέπει να αναγνωρίζει όλες τις παραλλαγές κεφαλίδων BITLK, εκτός από την παλιά κεφαλίδα που χρησιμοποιείται στα συστήματα Windows Vista και στις μερικώς αποκρυπτογραφημένες συσκευές BitLocker. Η ενεργοποίηση παλαιών συσκευών κρυπτογραφημένων σε λειτουργία CBC απαιτεί τουλάχιστον μια έκδοση Linux kernel 5.3 και για συσκευές που χρησιμοποιούν το διαχύτη Elephant, την έκδοση kernel 5.6.


Η εντολή bitlkDump θα πρέπει να λειτουργεί για όλες τις αναγνωρισμένες συσκευές BITLK και δεν απαιτεί δικαιώματα χρήστη.

Για το ξεκλείδωμα με την εντολή open, πρέπει να παρέχεται ένας κωδικός πρόσβασης, μια φράση ανάκτησης ή ένα κλειδί εκκίνησης.

Επιπλέον, υποστηρίζεται το ξεκλείδωμα με χρήση του πλήκτρου έντασης ήχου. Πρέπει να παρέχετε το BitLocker Full Volume Encryption Key (FVEK) χρησιμοποιώντας την επιλογή --volume-key-file. Το κλειδί πρέπει να είναι αποκρυπτογραφημένο και χωρίς την κεφαλίδα (μόνο 128/256/512 bit δεδομένων κλειδιού ανάλογα με τη χρησιμοποιούμενη κρυπτογράφηση και λειτουργία).

Άλλες μέθοδοι ξεκλειδώματος (TPM, SmartCard) δεν υποστηρίζονται.

OPEN

open --type bitlk <συσκευή> <όνομα>
bitlkOpen <συσκευή> <όνομα> (παλιά σύνταξη)

Ανοίγει τη συσκευή BITLK (συμβατή με το BitLocker) <συσκευή> και δημιουργεί μια αντιστοίχιση <όνομα>. Δείτε cryptsetup-open(8).

DUMP

bitlkDump <συσκευή>

Εμφανίζει τις πληροφορίες κεφαλίδας μιας συσκευής BITLK. Δείτε cryptsetup-bitlkDump(8).

Παρακαλούμε σημειώστε ότι το cryptsetup δεν χρησιμοποιεί κανέναν κώδικα του Windows BitLocker. Αναφέρετε όλα τα προβλήματα που σχετίζονται με αυτήν την επέκταση συμβατότητας στο έργο cryptsetup.

ΕΠΈΚΤΑΣΗ FVAULT2 (ΣΥΜΒΑΤΌΤΗΤΑ ΜΕ ΤΟ APPLE MACOS FILEVAULT2)

Το cryptsetup υποστηρίζει την αντιστοίχιση του FileVault2 (πλήρης κρυπτογράφηση δίσκου FileVault2) για το λειτουργικό σύστημα macOS χρησιμοποιώντας μια εγγενή διεπαφή κρυπτογράφησης του πυρήνα Linux.

Το cryptsetup υποστηρίζει μόνο το FileVault2 που βασίζεται στο Core Storage και στο σύστημα αρχείων HFS+ (που εισήχθη στο MacOS X 10.7 Lion). ΔΕΝ υποστηρίζει την νέα έκδοση του FileVault που βασίζεται στο σύστημα αρχείων APFS που χρησιμοποιείται στις πιο πρόσφατες εκδόσεις του macOS.

Η μορφοποίηση κεφαλίδας και οι αλλαγές κεφαλίδας FVAULT2 δεν υποστηρίζονται. το cryptsetup δεν αλλάζει ποτέ την κεφαλίδα FVAULT2 στη συσκευή.

Η επέκταση FVAULT2 απαιτεί να είναι διαθέσιμη η διεπαφή κρυπτογράφησης του χώρου χρήστη του πυρήνα (για λεπτομέρειες, δείτε την ενότητα TCRYPT) και ένας οδηγός πυρήνα για το σύστημα αρχείων HFS+ (hfsplus).

Το cryptsetup θα πρέπει να αναγνωρίζει τη βασική διαμόρφωση για φορητούς δίσκους.

Η εντολή fvault2Dump θα πρέπει να λειτουργεί για όλες τις αναγνωρισμένες συσκευές FVAULT2 και δεν απαιτεί δικαιώματα χρήστη.

Για το ξεκλείδωμα με την εντολή open, πρέπει να παρέχεται ένας κωδικός πρόσβασης. Άλλες μέθοδοι ξεκλειδώματος δεν υποστηρίζονται.

OPEN

open --type fvault2 <συσκευή> <όνομα>
fvault2Open <συσκευή> <όνομα> (παλιά σύνταξη)

Ανοίγει τη συσκευή FVAULT2 (συμβατή με το FileVault2) <συσκευή> (συνήθως το δεύτερο διαμέρισμα της συσκευής) και δημιουργεί μια αντιστοίχιση <όνομα>. Δείτε cryptsetup-open(8).

ΕΠΈΚΤΑΣΗ SED (ΣΥΣΚΕΥΉ ΑΥΤΌΝΟΜΗΣ ΚΡΥΠΤΟΓΡΆΦΗΣΗΣ) OPAL

Το cryptsetup υποστηρίζει τη χρήση εγγενούς υλικού κρυπτογράφησης σε δίσκους που παρέχουν μια διεπαφή OPAL, είτε σε συνδυασμό με το dm-crypt είτε αυτόνομα. Οι κωδικοί πρόσβασης, τα διακριτικά και τα μεταδεδομένα αποθηκεύονται χρησιμοποιώντας τη μορφή κεφαλίδας LUKS2 και είναι, επομένως, συμβατά με οποιοδήποτε λογισμικό ή σύστημα που χρησιμοποιεί το LUKS2 (π.χ., διακριτικά).

Η υποστήριξη OPAL απαιτεί τουλάχιστον έκδοση πυρήνα v6.4. Η αλλαγή μεγέθους των συσκευών δεν υποστηρίζεται.

Η επιλογή --hw-opal μπορεί να καθοριστεί για OPAL + dm-crypt και η επιλογή --hw-opal-only μπορεί να καθοριστεί για να χρησιμοποιηθεί μόνο το OPAL, χωρίς μια στρώση dm-crypt.


Η διαδικασία ανοίγματος, κλεισίματος και εγγραφής tokens είναι η ίδια με αυτή που χρησιμοποιείται στις LUKS2 και dm-crypt. Οι νέες παράμετροι είναι απαραίτητες μόνο κατά τη διαμόρφωση· τα μεταδεδομένα LUKS2 θα διασφαλίσουν ότι θα πραγματοποιηθεί η σωστή ρύθμιση κατά το άνοιγμα ή το κλείσιμο.

Εάν δεν καθοριστεί μια ετικέτα υποσυστήματος, θα οριστεί αυτόματα σε HW-OPAL, ώστε να είναι άμεσα εμφανές πότε μια συσκευή χρησιμοποιεί OPAL.

ΜΟΡΦΟΠΟΙΗΣΗ

luksFormat --type luks2 --hw-opal <συσκευή> [<αρχείο κλειδιού>]

Επιπλέον, καθορίστε το --hw-opal-only αντί του --hw-opal για να αποφύγετε τη στρώση dm-crypt. Εκτός από τον συνήθη κωδικό πρόσβασης, θα πρέπει να καθοριστεί ένας κωδικός πρόσβασης διαχειριστή κατά τη διαμόρφωση του πρώτου διαμερίσματος της μονάδας δίσκου και θα πρέπει να παρέχεται ξανά κατά τη διαμόρφωση οποιουδήποτε άλλου διαμερίσματος, έως ότου πραγματοποιηθεί επαναφορά στις εργοστασιακές ρυθμίσεις.

ΔΙΑΓΡΑΦΗ

erase <συσκευή>

Διαγράψτε με ασφάλεια ένα διαμέρισμα ή μια συσκευή. Απαιτείται κωδικός πρόσβασης διαχειριστή. Επιπλέον, καθορίστε το --hw-opal-factory-reset για μια ΠΛΗΡΗ επαναφορά στις εργοστασιακές ρυθμίσεις της μονάδας δίσκου, χρησιμοποιώντας το PSID της μονάδας δίσκου (συνήθως εκτυπωμένο στην ετικέτα) αντί για τον κωδικό πρόσβασης διαχειριστή.

Το PSID πρέπει να εισαχθεί χωρίς παύλες, κενά ή υπογράμμιση.

ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Μια επαναφορά στις εργοστασιακές ρυθμίσεις θα προκαλέσει την ΑΠΩΛΕΙΑ ΟΛΩΝ των δεδομένων στη συσκευή, ανεξάρτητα από το διαμέρισμα στο οποίο εκτελείται, εάν υπάρχει, και ανεξάρτητα από οποιαδήποτε αντίγραφα ασφαλείας της κεφαλίδας LUKS2.

ΔΙΑΦΟΡΕΣ ΛΕΙΤΟΥΡΓΙΕΣ

ΕΠΙΣΚΕΥΗ

repair <συσκευή>

Προσπαθεί να επιδιορθώσει τα μεταδεδομένα της συσκευής, εάν είναι δυνατόν. Υποστηρίζεται επί του παρόντος μόνο για τον τύπο συσκευής LUKS. Δείτε το cryptsetup-repair(8).

ΔΟΚΙΜΗ

benchmark <επιλογές>

Δοκιμάζει κρυπτογραφικές μεθόδους και KDF (συνάρτηση παραγωγής κλειδιών). Δείτε το cryptsetup-benchmark(8).

ΑΠΛΗ ΛΕΙΤΟΥΡΓΙΑ Ή LUKS;

Εκτός εάν κατανοείτε καλά το κρυπτογραφικό υπόβαθρο, χρησιμοποιήστε το LUKS. Με την απλή λειτουργία, υπάρχουν αρκετές πιθανές σφάλματα του χρήστη που μειώνουν σημαντικά την ασφάλεια. Ενώ το LUKS δεν μπορεί να τα διορθώσει όλα, μπορεί να μετριάσει την επίδρασή τους σε πολλά από αυτά.

ΠΡΟΕΙΔΟΠΟΙΗΣΕΙΣ

Πολλές χρήσιμες πληροφορίες σχετικά με τους κινδύνους της χρήσης κρυπτογραφημένου αποθηκευτικού χώρου, σχετικά με τον τρόπο αντιμετώπισης προβλημάτων και σχετικά με τις πτυχές ασφάλειας μπορούν να βρεθούν στις Συχνές Ερωτήσεις του Cryptsetup. Διαβάστε το. Ωστόσο, ορισμένοι κίνδυνοι αξίζουν να αναφερθούν εδώ.

Αντίγραφο ασφαλείας: Τα μέσα αποθήκευσης καταστρέφονται. Η κρυπτογράφηση δεν έχει καμία επιρροή σε αυτό. Η δημιουργία αντιγράφων ασφαλείας είναι υποχρεωτική για τα κρυπτογραφημένα δεδομένα, εάν τα δεδομένα έχουν κάποια αξία. Δείτε τις Συχνές Ερωτήσεις του Cryptsetup για συμβουλές σχετικά με τον τρόπο δημιουργίας αντιγράφων ασφαλείας μιας κρυπτογραφημένης μονάδας.

Κωδικοποίηση χαρακτήρων: Εάν εισαγάγετε έναν κωδικό πρόσβασης με ειδικά σύμβολα, ο κωδικός πρόσβασης μπορεί να αλλάξει ανάλογα με την κωδικοποίηση χαρακτήρων. Οι ρυθμίσεις πληκτρολογίου μπορούν επίσης να αλλάξουν, γεγονός που μπορεί να καταστήσει τη τυφλή εισαγωγή δύσκολη ή αδύνατη. Για παράδειγμα, η εναλλαγή από μια παραλλαγή ASCII 8-bit σε UTF-8 μπορεί να οδηγήσει σε διαφορετική δυαδική κωδικοποίηση και, κατά συνέπεια, σε διαφορετικό κωδικό πρόσβασης που θα αντιληφθεί το cryptsetup, ακόμη και αν αυτό που βλέπετε στην οθόνη είναι ακριβώς το ίδιο. Επομένως, συνιστάται ιδιαίτερα να επιλέξετε χαρακτήρες κωδικού πρόσβασης μόνο από το 7-bit ASCII, καθώς η κωδικοποίηση για το 7-bit ASCII παραμένει η ίδια για όλες τις παραλλαγές ASCII και το UTF-8.

Κεφαλίδα LUKS: Εάν η κεφαλίδα μιας μονάδας LUKS καταστραφεί, όλα τα δεδομένα θα χαθούν οριστικά, εκτός εάν έχετε ένα αντίγραφο ασφαλείας της κεφαλίδας. Εάν μια υποδοχή κλειδιού καταστραφεί, μπορεί να αποκατασταθεί μόνο από ένα αντίγραφο ασφαλείας της κεφαλίδας ή εάν υπάρχει μια άλλη ενεργή υποδοχή κλειδιού με έναν γνωστό κωδικό πρόσβασης που δεν έχει υποστεί ζημιά. Αυτός ο κίνδυνος είναι το αποτέλεσμα μιας ισορροπίας μεταξύ ασφάλειας και ασφάλειας, καθώς το LUKS έχει σχεδιαστεί για γρήγορη και ασφαλή διαγραφή απλώς αντικαθιστώντας την περιοχή της κεφαλίδας και της υποδοχής κλειδιού.


Προηγουμένως χρησιμοποιημένα διαμερίσματα: Εάν ένα διαμέρισμα έχει χρησιμοποιηθεί στο παρελθόν, είναι πολύ καλή ιδέα να διαγραφούν οι υπογραφές του συστήματος αρχείων, τα δεδομένα κ.λπ., πριν δημιουργήσετε ένα κοντέινερ LUKS ή απλού dm-crypt. Για μια γρήγορη αφαίρεση των υπογραφών του συστήματος αρχείων, χρησιμοποιήστε την εντολή wipefs(8) με την επιλογή --all. Σημειώστε ότι αυτό δεν αφαιρεί τα δεδομένα. απλώς ακυρώνει τις γνωστές υπογραφές μορφής. Για μια πλήρη διαγραφή, αντικαταστήστε ολόκληρο το διαμέρισμα πριν δημιουργήσετε ένα κοντέινερ. Εάν δεν γνωρίζετε πώς να το κάνετε αυτό, οι Συχνές Ερωτήσεις (FAQ) του cryptsetup περιγράφουν διάφορες επιλογές.

ΠΑΡΑΔΕΙΓΜΑΤΑ

Παράδειγμα 1: Δημιουργία κοντέινερ LUKS 2 στη συσκευή μπλοκ /dev/sdX. sudo cryptsetup --type luks2 luksFormat /dev/sdX

Παράδειγμα 2: Προσθήκη μιας επιπλέον φράσης πρόσβασης στην υποδοχή κλειδιών 5. sudo cryptsetup luksAddKey --key-slot 5 /dev/sdX

Παράδειγμα 3: Δημιουργία αντιγράφου ασφαλείας της κεφαλίδας LUKS και αποθήκευσή του σε ένα αρχείο. sudo cryptsetup luksHeaderBackup /dev/sdX --header-backup-file /var/tmp/NameOfBackupFile

Παράδειγμα 4: Άνοιγμα του κοντέινερ LUKS στο /dev/sdX και αντιστοίχισή του στο sdX_crypt. sudo cryptsetup open /dev/sdX sdX_crypt

ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η εντολή στο παράδειγμα 5 θα διαγράψει όλες τις υποδοχές κλειδιών.

Δεν μπορείτε να χρησιμοποιήσετε το κοντέινερ LUKS σας πλέον, εκτός εάν έχετε ένα αντίγραφο ασφαλείας για επαναφορά.

Παράδειγμα 5: Διαγραφή όλων των υποδοχών κλειδιών στο /dev/sdX. sudo cryptsetup erase /dev/sdX

Παράδειγμα 6: Επαναφορά της κεφαλίδας LUKS από ένα αρχείο αντιγράφου ασφαλείας. sudo cryptsetup luksHeaderRestore /dev/sdX --header-backup-file /var/tmp/NameOfBackupFile

ΚΩΔΙΚΕΣ ΕΠΙΣΤΡΟΦΗΣ

Το Cryptsetup επιστρέφει 0 σε περίπτωση επιτυχίας και μια τιμή που δεν είναι μηδενική σε περίπτωση σφάλματος.

Οι κωδικοί σφάλματος είναι: 1 λανθασμένες παράμετροι, 2 δεν υπάρχει άδεια (λανθασμένη φράση πρόσβασης), 3 έλλειψη μνήμης, 4 καθορίστηκε λάθος συσκευή, 5 η συσκευή υπάρχει ήδη ή η συσκευή είναι απασχολημένη.

ΣΗΜΕΙΩΣΕΙΣ

Επεξεργασία φράσης πρόσβασης για λειτουργία PLAIN

Σημειώστε ότι δεν γίνεται επαναληπτική κατακερματισμός ή προσθήκη αλατιού στη λειτουργία απλού κειμένου. Εάν γίνει κατακερματισμός, είναι ένας απλός, άμεσος κατακερματισμός. Αυτό σημαίνει ότι οι φράσεις πρόσβασης χαμηλής εντροπίας είναι εύκολο να υποστούν επίθεση στη λειτουργία απλού κειμένου.

Από ένα τερματικό: Η φράση πρόσβασης διαβάζεται μέχρι το πρώτο χαρακτήρα νέας γραμμής, δηλαδή '\n'. Η είσοδος χωρίς τον χαρακτήρα νέας γραμμής επεξεργάζεται με τον προεπιλεγμένο κατακερματισμό ή τον κατακερματισμό που καθορίζεται με την επιλογή --hash. Το αποτέλεσμα του κατακερματισμού θα περικοπεί στο μέγεθος του κλειδιού της χρησιμοποιούμενης κρυπτογράφησης ή στο μέγεθος που καθορίζεται με την επιλογή -s.

Από την τυπική είσοδο: Η ανάγνωση θα συνεχιστεί μέχρι ένα χαρακτήρα νέας γραμμής (ή μέχρι να επιτευχθεί το μέγιστο μέγεθος εισόδου), με την αφαίρεση του τελικού χαρακτήρα νέας γραμμής. Το μέγιστο μέγεθος εισόδου ορίζεται από την ίδια προεπιλεγμένη τιμή που έχει μεταγλωττιστεί, όπως και το μέγιστο μέγεθος αρχείου κλειδιού και μπορεί να αντικατασταθεί χρησιμοποιώντας την επιλογή --keyfile-size.

Τα δεδομένα που διαβάζονται θα κατακερματιστούν με τον προεπιλεγμένο κατακερματισμό ή τον κατακερματισμό που καθορίζεται με την επιλογή --hash. Το αποτέλεσμα του κατακερματισμού θα περικοπεί στο μέγεθος του κλειδιού της χρησιμοποιούμενης κρυπτογράφησης ή στο μέγεθος που καθορίζεται με την επιλογή -s.


Σημειώστε ότι εάν χρησιμοποιηθεί το --key-file=- για την ανάγνωση του κλειδιού από την τυπική είσοδο, οι πρόσθετες νέες γραμμές δεν θα διαγραφούν από την είσοδο.

Εάν το "plain" χρησιμοποιηθεί ως όρισμα για το --hash, τα δεδομένα εισόδου δεν θα υποστούν κατακερματισμό. Αντίθετα, θα συμπληρωθούν με μηδενικά (εάν είναι μικρότερα από το μέγεθος του κλειδιού) ή θα περικοπούν (εάν είναι μεγαλύτερα από το μέγεθος του κλειδιού) και θα χρησιμοποιηθούν απευθείας ως δυαδικό κλειδί. Αυτό είναι χρήσιμο για την απευθείας καθορισμό ενός δυαδικού κλειδιού. Δεν θα εμφανιστεί καμία προειδοποίηση εάν η ποσότητα των δεδομένων που διαβάζονται από την τυπική είσοδο είναι μικρότερη από το μέγεθος του κλειδιού.

Από ένα αρχείο κλειδιού: Θα περικοπεί στο μέγεθος του κλειδιού του χρησιμοποιούμενου κρυπτογραφικού αλγορίθμου ή στο μέγεθος που καθορίζεται από το -s και θα χρησιμοποιηθεί απευθείας ως δυαδικό κλειδί.

Το όρισμα --hash αγνοείται. Η επιλογή --hash είναι χρήσιμη μόνο για εισόδους από την τυπική είσοδο σε λειτουργία "plain".

Εάν το αρχείο κλειδιού είναι μικρότερο από το κλειδί, το cryptsetup θα τερματιστεί με σφάλμα. Το μέγιστο μέγεθος εισόδου ορίζεται από την ίδια προκαθορισμένη τιμή που χρησιμοποιείται για το μέγιστο μέγεθος αρχείου κλειδιού και μπορεί να αντικατασταθεί χρησιμοποιώντας την επιλογή --keyfile-size.

Επεξεργασία κωδικών πρόσβασης για το LUKS

Από ένα τερματικό: Ο κωδικός πρόσβασης διαβάζεται μέχρι την πρώτη νέα γραμμή και στη συνέχεια επεξεργάζεται από το PBKDF2 χωρίς τον χαρακτήρα νέας γραμμής.

Από την τυπική είσοδο: Το LUKS θα διαβάσει κωδικούς πρόσβασης από την τυπική είσοδο μέχρι τον πρώτο χαρακτήρα νέας γραμμής ή το προκαθορισμένο μέγιστο μέγεθος αρχείου κλειδιού. Εάν δοθεί το --keyfile-size, αγνοείται.

Από ένα αρχείο κλειδιού: Διαβάζεται ολόκληρο το αρχείο κλειδιού μέχρι το προκαθορισμένο μέγιστο μέγεθος. Οι χαρακτήρες νέας γραμμής δεν τερματίζουν την είσοδο. Η επιλογή --keyfile-size μπορεί να χρησιμοποιηθεί για να περιορίσει τι διαβάζεται.

Το LUKS χρησιμοποιεί τη συνάρτηση εξαγωγής κλειδιού βάσει κωδικού πρόσβασης (PBKDF) για να προστατεύσει από επιθέσεις ωμής βίας και για να παρέχει κάποια προστασία σε κωδικούς πρόσβασης χαμηλής εντροπίας (δείτε τις Συχνές Ερωτήσεις του cryptsetup). Το LUKS1 υποστηρίζει μόνο τον αλγόριθμο PBKDF2, ενώ το LUKS2 υποστηρίζει επίσης το Argon2, το οποίο καταναλώνει περισσότερη μνήμη. Τα PBKDF διαμορφώνονται με κόστη: πόσο καιρό πρέπει να διαρκεί η επανάληψη (υπολογιστικό κόστος ή αριθμός επαναλήψεων), πόση μνήμη χρησιμοποιείται (κόστος μνήμης) και πόσες παράλληλες διαδικασίες χρησιμοποιούνται (παράλληλο κόστος). Το PBKDF2 υποστηρίζει μόνο τον αριθμό επαναλήψεων. Το cryptsetup χρησιμοποιεί τον έλεγχο απόδοσης του PBKDF για να υπολογίσει τα βέλτιστα κόστη με βάση τον υπολογιστή όπου αρχικοποιείται ο νέος κωδικός πρόσβασης. Εάν χρειαστεί, αυτά τα κόστη μπορούν επίσης να αντικατασταθούν. Σημειώστε ότι υπάρχουν ορισμένοι προκαθορισμένοι περιορισμοί, για λεπτομέρειες δείτε την ενότητα ΜΙΝΙΜΑΛΑ ΚΑΙ ΜΕΓΙΣΤΑ ΚΟΣΤΗ PBKDF στην περιγραφή της επιλογής --pbkdf.

Κάθε φορά που ένας κωδικός πρόσβασης προστίθεται σε μια κεφαλίδα LUKS (luksAddKey, luksFormat), ο χρήστης μπορεί να καθορίσει πόσο χρόνο πρέπει να καταναλώσει η επεξεργασία του κωδικού πρόσβασης. Ο χρόνος χρησιμοποιείται για τον προσδιορισμό του αριθμού επαναλήψεων για το PBKDF2 και μεγαλύτεροι χρόνοι θα προσφέρουν καλύτερη προστασία για κωδικούς πρόσβασης χαμηλής εντροπίας, αλλά η εντολή luksOpen θα διαρκέσει περισσότερο για να ολοκληρωθεί. Για κωδικούς πρόσβασης που έχουν εντροπία μεγαλύτερη από το χρησιμοποιούμενο μέγεθος κλειδιού, μεγαλύτεροι χρόνοι επανάληψης δεν θα αυξήσουν την ασφάλεια.

Η προεπιλεγμένη ρύθμιση ενός ή δύο δευτερολέπτων είναι επαρκής για τις περισσότερες πρακτικές περιπτώσεις. Η μόνη εξαίρεση είναι ένας κωδικός πρόσβασης χαμηλής εντροπίας που χρησιμοποιείται σε μια συσκευή με αργό επεξεργαστή, καθώς αυτό θα οδηγήσει σε χαμηλό αριθμό επαναλήψεων. Σε μια αργή συσκευή, ίσως είναι συνετό να αυξηθεί ο χρόνος επανάληψης χρησιμοποιώντας την επιλογή --iter-time για να ληφθεί υψηλότερος αριθμός επαναλήψεων. Αυτό επιβραδύνει ανάλογα όλες τις επόμενες λειτουργίες luksOpen.


Ασυνεπής συμπεριφορά για μη έγκυρες φράσεις πρόσβασης/κλειδιά

Το LUKS ελέγχει για έγκυρη φράση πρόσβασης όταν αποκρυπτογραφείται μια υποδοχή κλειδιού.

Η συμπεριφορά του απλού dm-crypt είναι διαφορετική. Θα ξεκλειδώνει πάντα τη συσκευή με τη δεδομένη φράση πρόσβασης. Εάν η δεδομένη φράση πρόσβασης είναι λανθασμένη, η συσκευή που αντιστοιχίζεται από το απλό dm-crypt θα χρησιμοποιήσει το λανθασμένο κλειδί κρυπτογράφησης και τα δεδομένα θα είναι μη αναγνώσιμα.

Υποστηριζόμενες κρυπτογραφικές μέθοδοι, τρόποι λειτουργίας, κατακερματισμοί και μεγέθη κλειδιών

Οι διαθέσιμοι συνδυασμοί κρυπτογραφικών μεθόδων, τρόπων λειτουργίας, κατακερματισμών και μεγεθών κλειδιών εξαρτώνται από την υποστήριξη του πυρήνα. Δείτε το /proc/crypto για μια λίστα διαθέσιμων επιλογών. Ίσως χρειαστεί να φορτώσετε επιπλέον κρυπτογραφικά модуλ ядра για να αποκτήσετε περισσότερες επιλογές.

Το Cryptsetup εκτελεί πολλές λειτουργίες εκτός του πυρήνα, επομένως η διαμορφωμένη κρυπτογραφική βιβλιοθήκη πρέπει επίσης να υποστηρίζει τους επιλεγμένους αλγόριθμους. Ορισμένοι αλγόριθμοι ενδέχεται να λείπουν, καθώς το cryptsetup μπορεί να μεταγλωττιστεί με διάφορα κρυπτογραφικά υποσυστήματα (βιβλιοθήκες).

Σημειώσεις σχετικά με τις φράσεις πρόσβασης

Τα μαθηματικά δεν μπορούν να εξαγοραστούν. Βεβαιωθείτε ότι διατηρείτε τις φράσεις πρόσβασής σας σε ασφαλές μέρος. Υπάρχουν μερικά ωραία κόλπα για τη δημιουργία μιας εναλλακτικής λύσης όταν, ξαφνικά και απροσδόκητα, ο εγκέφαλός σας αρνείται να συνεργαστεί. Αυτές οι εναλλακτικές λύσεις απαιτούν LUKS, καθώς είναι μόνο με το LUKS που είναι δυνατή η ύπαρξη πολλών φράσεων πρόσβασης. Ωστόσο, εάν το μοντέλο απειλών σας δεν το εμποδίζει, η αποθήκευση της φράσης πρόσβασής σας σε μια σφραγισμένη θήκη κάπου μπορεί να είναι μια καλή ιδέα.

Σημειώσεις σχετικά με τις γεννήτριες τυχαίων αριθμών

Οι γεννήτριες τυχαίων αριθμών (RNG) που χρησιμοποιούνται στο cryptsetup είναι πάντα οι γεννήτριες τυχαίων αριθμών του πυρήνα, χωρίς τροποποιήσεις ή προσθήκες στη ροή δεδομένων που παράγεται.

Υπάρχουν δύο τύποι τυχαιότητας που χρειάζονται το cryptsetup/LUKS. Ο ένας τύπος χρησιμοποιείται για τα salt, το διαχωριστή AF και για τη διαγραφή διαγραμμένων υποδοχών κλειδιών. Ο δεύτερος τύπος χρησιμοποιείται για το κλειδί του τόμου.

Με τους πρόσφατους πυρήνες (Linux kernel 5.6), δεν χρειάζεται να ανησυχείτε για την επιλογή RNG (/dev/random ή /dev/urandom). Σε μια κατάσταση χαμηλής εντροπίας (ενσωματωμένο σύστημα), η αρχικοποίηση της γεννήτριας τυχαίων αριθμών του πυρήνα μπορεί να διαρκέσει πολύ χρόνο, αλλά αυτό συμβαίνει πριν καν ξεκινήσει το cryptsetup. Χρησιμοποιήστε το cryptsetup --help για να εμφανίσετε τη διαμορφωμένη προεπιλεγμένη γεννήτρια τυχαίων αριθμών. Δείτε το urandom(4) για περισσότερες πληροφορίες.

Αυθεντικοποιημένη κρυπτογράφηση δίσκου (ΠΕΙΡΑΜΑΤΙΚΗ)

Οι κανονικές λειτουργίες κρυπτογράφησης δίσκου διατηρούν το μήκος (ο τομέας απλού κειμένου έχει το ίδιο μέγεθος με έναν τομέα κρυπτογραφημένου κειμένου) και μπορούν να παρέχουν μόνο προστασία εμπιστευτικότητας, όχι κρυπτογραφικά ασφαλή προστασία ακεραιότητας δεδομένων.

Οι αυθεντικοποιημένες λειτουργίες απαιτούν επιπλέον χώρο ανά τομέα για την ετικέτα αυθεντικοποίησης και χρησιμοποιούν αυθεντικοποιημένους αλγόριθμους κρυπτογράφησης με πρόσθετα δεδομένα (AEAD).

Εάν διαμορφώσετε μια συσκευή LUKS2 με προστασία ακεραιότητας δεδομένων, θα υπάρχει μια υποκείμενη συσκευή dm-integrity, η οποία παρέχει επιπλέον χώρο μεταδεδομένων ανά τομέα και προστασία αρχείου καταγραφής δεδομένων για να εξασφαλίσει την ατομικότητα των ενημερώσεων δεδομένων και μεταδεδομένων. Επειδή πρέπει να υπάρχει επιπλέον χώρος για μεταδεδομένα και αρχείο καταγραφής, ο διαθέσιμος χώρος για τη συσκευή θα είναι μικρότερος από ό,τι για τις λειτουργίες διατήρησης του μήκους.


Η συσκευή dm-crypt βρίσκεται στη συνέχεια πάνω από μια τέτοια συσκευή dm-integrity. Όλη η ενεργοποίηση και η απενεργοποίηση αυτής της στοίβας συσκευών γίνεται μέσω του cryptsetup. δεν υπάρχει καμία διαφορά στη χρήση του luksOpen για συσκευές με προστασία ακεραιότητας. Εάν θέλετε να μορφοποιήσετε μια συσκευή LUKS2 με προστασία ακεραιότητας δεδομένων, χρησιμοποιήστε την επιλογή --integrity (δείτε cryptsetup-luksFormat(8)).

Αν και η έκδοση 5.7 του πυρήνα Linux πρόσθεσε υποστήριξη TRIM για αυτόνομες συσκευές dm-integrity, το cryptsetup(8) δεν μπορεί να προσφέρει υποστήριξη για διαγραφές (TRIM) σε λειτουργία πιστοποιημένης κρυπτογράφησης, επειδή η υποκείμενη ενότητα πυρήνα dm-crypt δεν υποστηρίζει αυτήν τη λειτουργία όταν η dm-integrity χρησιμοποιείται ως καταμεριστής χώρου ετικετών ελέγχου ταυτότητας (δείτε --allow-discards στο cryptsetup-open(8)).

Ορισμένες λειτουργίες ακεραιότητας απαιτούν δύο ανεξάρτητα κλειδιά (ένα κλειδί για κρυπτογράφηση και ένα κλειδί για έλεγχο ταυτότητας). Και τα δύο αυτά κλειδιά αποθηκεύονται σε μια υποδοχή κλειδιού LUKS.

Η υποστήριξη για πιστοποιημένες λειτουργίες είναι πειραματική και μόνο ορισμένες λειτουργίες είναι διαθέσιμες τώρα. Σημειώστε ότι πολύ λίγοι πιστοποιημένοι αλγόριθμοι κρυπτογράφησης είναι κατάλληλοι για κρυπτογράφηση δίσκου. Επίσης, δεν μπορείτε να χρησιμοποιήσετε CRC32 ή άλλα μη κρυπτογραφικά αθροίσματα ελέγχου (εκτός από τη ειδική λειτουργία ακεραιότητας "none"). Εάν, για κάποιο λόγο, θέλετε να έχετε έλεγχο ακεραιότητας χωρίς να χρησιμοποιήσετε πιστοποιημένη λειτουργία, τότε θα πρέπει να διαμορφώσετε ξεχωριστά το dm-integrity ανεξάρτητα από το LUKS2.

Σημειώσεις σχετικά με τη χρήση συσκευής loopback

Το Cryptsetup χρησιμοποιείται συνήθως απευθείας σε μια συσκευή μπλοκ (διαμέρισμα δίσκου ή τόμος LVM). Ωστόσο, εάν το όρισμα της συσκευής είναι ένα αρχείο, το cryptsetup προσπαθεί να διανείμει μια συσκευή loopback και να την αντιστοιχίσει σε αυτό το αρχείο. Φυσικά, μπορείτε πάντα να αντιστοιχίσετε ένα αρχείο σε μια συσκευή loop χειροκίνητα. Δείτε τις Συχνές Ερωτήσεις του cryptsetup για ένα παράδειγμα.

Όταν η αντιστοίχιση συσκευής είναι ενεργή, μπορείτε να δείτε το αρχείο υποστήριξης loop στην έξοδο της εντολής κατάστασης. Δείτε επίσης το losetup(8).

Κλείδωμα μεταδεδομένων LUKS2

Τα μεταδεδομένα LUKS2 στον δίσκο ενημερώνονται σε πολλά βήματα και, για να επιτευχθεί μια σωστή ατομική ενημέρωση, υπάρχει ένας μηχανισμός κλειδώματος. Για μια εικόνα σε ένα αρχείο, ο κώδικας χρησιμοποιεί την κλήση συστήματος flock(2). Για μια συσκευή μπλοκ, το κλείδωμα πραγματοποιείται σε ένα ειδικό αρχείο που είναι αποθηκευμένο σε έναν κατάλογο κλειδώματος (από προεπιλογή /run/cryptsetup). Ο κατάλογος κλειδώματος πρέπει να δημιουργηθεί με τις κατάλληλες ρυθμίσεις ασφαλείας από την διανομή κατά τη φάση εκκίνησης. Μόνο το LUKS2 χρησιμοποιεί κλειδαριές. άλλες μορφές δεν χρησιμοποιούν αυτόν τον μηχανισμό.

Προδιαγραφή μορφής LUKS στον δίσκο

Για τις προδιαγραφές μεταδεδομένων LUKS στην μορφή του δίσκου, δείτε το LUKS1 [https://gitlab.com/cryptsetup/cryptsetup/wikis/Specification] και το LUKS2 [https://gitlab.com/cryptsetup/LUKS2-docs].

ΣΥΓΓΡΑΦΕΙΣ

Το Cryptsetup γράφτηκε αρχικά από την Jana Saout <_>. Οι επεκτάσεις LUKS και η αρχική σελίδα man γράφτηκαν από τον Clemens Fruhwirth <_>. Επεκτάσεις σελίδας man από τον Milan Broz <_>. Επανεγγραφή και επέκταση σελίδας man από τον Arno Wagner <_>.

ΑΝΑΦΟΡΑ ΣΦΑΛΜΑΤΩΝ

Αναφέρετε σφάλματα στη λίστα αλληλογραφίας του cryptsetup <_> ή στην ενότητα "Issues" του έργου [https://gitlab.com/cryptsetup/cryptsetup/-/issues/new].

Παρακαλούμε επισυνάψτε την έξοδο της αποτυχημένης εντολής με την επιλογή --debug.

ΔΕΙΤΕ ΕΠΙΣΗΣ

Συχνές Ερωτήσεις του Cryptsetup [https://gitlab.com/cryptsetup/cryptsetup/wikis/FrequentlyAskedQuestions]

cryptsetup(8), integritysetup(8) και veritysetup(8)

CRYPTSETUP

Μέρος του έργου cryptsetup [https://gitlab.com/cryptsetup/cryptsetup/].