Δημιουργία κλειδιού OpenPGP με δημιουργία αντιγράφων ασφαλείας¶
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
Οι ακόλουθες οδηγίες εξηγούν τη δημιουργία κλειδιών OpenPGP και τον τρόπο αντιγραφής τους στο Nitrokey. Αυτή η μέθοδος έχει το πλεονέκτημα ότι παρέχει ένα αντίγραφο ασφαλείας των κλειδιών σε περίπτωση απώλειας ή θραύσης του Nitrokey. Οι οδηγίες βασίζονται στη διεπαφή γραμμής εντολών του GnuPG. Συνεπώς, θα πρέπει να έχετε εγκαταστήσει το GnuPG στο σύστημά σας. Η νεότερη έκδοση του GnuPG για Windows βρίσκεται εδώ και η νεότερη έκδοση για MacOS βρίσκεται εδώ. Οι χρήστες συστημάτων Linux παρακαλούνται να εγκαταστήσουν το GnuPG με τη βοήθεια του διαχειριστή πακέτων.
Παραγωγή κλειδιών¶
Αρχικά, πρέπει να δημιουργήσετε ένα κλειδί τοπικά. Μπορείτε να αποφασίσετε, ποια χαρακτηριστικά του κλειδιού θα χρησιμοποιήσετε και - το πιο σημαντικό - μπορείτε να εξάγετε το κλειδί και να το κρατήσετε κάπου αποθηκευμένο σε περίπτωση που χρειαστεί να επαναφέρετε το κλειδί.
Κύριο κλειδί και υποκλειδί κρυπτογράφησης¶
Μπορούμε να χρησιμοποιήσουμε την εντολή gpg --full-generate-key --expert
για να ξεκινήσουμε μια καθοδηγούμενη παραγωγή κλειδιών με όλες τις πιθανές επιλογές. Μπορείτε να επιλέξετε τον τύπο του κλειδιού (συνήθως RSA (1) ή ECC (9)), το μήκος του κλειδιού και άλλα χαρακτηριστικά. Η παρακάτω έξοδος είναι ένα απλό παράδειγμα, μπορείτε να επιλέξετε άλλες τιμές.
> gpg --full-generate-key --expert
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
(9) ECC and ECC
(10) ECC (sign only)
(11) ECC (set your own capabilities)
(13) Existing key
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want for the subkey? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
= key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y
GnuPG needs to construct a user ID to identify your key.
Real name: Jane Doe
Email address: jane@example.com
Comment:
You selected this USER-ID:
"Jane Doe "
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key 0EFFB0704391497C marked as ultimately trusted
gpg: revocation certificate stored as '/home/nitrokey//.gnupg/openpgp-revocs.d/9D12C91F6FC4CD6E10A1727A0EFFB0704391497C.rev'
public and secret key created and signed.
pub rsa2048 2018-09-17 [SC]
9D12C91F6FC4CD6E10A1727A0EFFB0704391497C
uid Jane Doe
sub rsa2048 2018-09-17 [E]
Σημείωση
Για πληροφορίες σχετικά με τους υποστηριζόμενους αλγορίθμους, ανατρέξτε στο faq
Υποκλειδί για έλεγχο ταυτότητας¶
Τώρα έχετε ένα κύριο κλειδί με δυνατότητα υπογραφής και πιστοποίησης (σημειωμένο ως [SC]) και ένα υποκλειδί για κρυπτογράφηση (σημειωμένο ως [E]). Είναι απαραίτητο να έχετε άλλο ένα υποκλειδί για περιπτώσεις χρήσης στις οποίες απαιτείται αυθεντικοποίηση. Αυτό το υποκλειδί δημιουργείται στο επόμενο βήμα. Πληκτρολογήστε gpg --edit-key --expert keyID
για να ξεκινήσετε τη διαδικασία, ενώ το «keyID» είναι είτε το id του κλειδιού είτε η διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιήθηκε κατά τη δημιουργία του κλειδιού.
> gpg --edit-key --expert jane@example.com
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Secret key is available.
sec rsa2048/0EFFB0704391497C
created: 2018-09-17 expires: never usage: SC
trust: ultimate validity: ultimate
ssb rsa2048/A9A814C210F16700
created: 2018-09-17 expires: never usage: E
[ultimate] (1). Jane Doe
gpg>
Τώρα βρίσκεστε στη διαδραστική λειτουργία του GnuPG και μπορείτε να προσθέσετε ένα κλειδί πληκτρολογώντας απλά addkey
. Πρέπει να επιλέξετε το κλειδί που θέλετε να χρησιμοποιήσετε. Είναι ζωτικής σημασίας να επιλέξετε το «set your own capabilities», επειδή θέλουμε να έχουμε τη δυνατότητα «authenticate», η οποία δεν είναι διαθέσιμη διαφορετικά. Αλλάζουμε την υπογραφή και την κρυπτογράφηση πληκτρολογώντας s
και e
και ενεργοποιούμε την αυθεντικοποίηση πληκτρολογώντας a
.
gpg> addkey
Please select what kind of key you want:
(3) DSA (sign only)
(4) RSA (sign only)
(5) Elgamal (encrypt only)
(6) RSA (encrypt only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
(10) ECC (sign only)
(11) ECC (set your own capabilities)
(12) ECC (encrypt only)
(13) Existing key
Your selection? 8
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Sign Encrypt
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? s
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Encrypt
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? e
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions:
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? a
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Authenticate
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? q
Σταματάμε με q
. Στη συνέχεια πρέπει να απαντήσουμε στις ίδιες ερωτήσεις όπως και πριν. Τέλος, έχουμε ένα έτοιμο σετ κλειδιών το οποίο μπορούμε να εισάγουμε στη συσκευή μας.
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
= key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y
Really create? (y/N) y
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
sec rsa2048/0EFFB0704391497C
created: 2018-09-17 expires: never usage: SC
trust: ultimate validity: ultimate
ssb rsa2048/A9A814C210F16700
created: 2018-09-17 expires: never usage: E
ssb rsa2048/61F186B8B0BBD5D5
created: 2018-09-17 expires: never usage: A
[ultimate] (1). Jane Doe
gpg> quit
Save changes? (y/N) y
Τώρα είναι η κατάλληλη στιγμή για να δημιουργήσετε αντίγραφα ασφαλείας του κλειδιού σας. Παρακαλώ κρατήστε αυτό το αντίγραφο ασφαλείας πολύ ασφαλές. Η καλύτερη πρακτική είναι να μην έχετε ποτέ αυτό το κλειδί σε έναν συνηθισμένο υπολογιστή που έχει σύνδεση στο διαδίκτυο, έτσι ώστε το κλειδί να μην παραβιαστεί ποτέ. Μπορείτε να δημιουργήσετε ένα αντίγραφο ασφαλείας με κάτι σαν:
> gpg --export-secret-keys jane@example.com > sec-key.asc
Βασική εισαγωγή¶
Έχετε ένα κύριο κλειδί και δύο δευτερεύοντα κλειδιά που μπορούν να εισαχθούν στο Nitrokey σας. Πριν προχωρήσετε, βεβαιωθείτε ότι έχετε όντως ένα αντίγραφο ασφαλείας του κλειδιού, αν το χρειάζεστε. Η εντολή keytocard
που χρησιμοποιείται στα επόμενα βήματα θα διαγράψει το κλειδί σας από το δίσκο σας!
Ξεκινάμε τη διαδικασία με πρόσβαση στο διαδραστικό περιβάλλον του GnuPG και πάλι με gpg --edit-key --expert keyID
, ενώ ``keyID<x><x=»130»></x>` είναι είτε το id του κλειδιού είτε η διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιήθηκε κατά τη δημιουργία του κλειδιού.
> gpg --edit-key --expert jane@example.com
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Secret key is available.
sec rsa2048/0EFFB0704391497C
created: 2018-09-17 expires: never usage: SC
trust: ultimate validity: ultimate
ssb rsa2048/A9A814C210F16700
created: 2018-09-17 expires: never usage: E
ssb rsa2048/61F186B8B0BBD5D5
created: 2018-09-17 expires: never usage: A
[ultimate] (1). Jane Doe
gpg> keytocard
Really move the primary key? (y/N) y
Please select where to store the key:
(1) Signature key
(3) Authentication key
Your selection? 1
sec rsa2048/0EFFB0704391497C
created: 2018-09-17 expires: never usage: SC
trust: ultimate validity: ultimate
ssb rsa2048/A9A814C210F16700
created: 2018-09-17 expires: never usage: E
ssb rsa2048/61F186B8B0BBD5D5
created: 2018-09-17 expires: never usage: A
[ultimate] (1). Jane Doe
Μόλις εισαγάγαμε το κύριο κλειδί στην κάρτα. Τώρα συνεχίζουμε με τα δύο υποκλειδιά. Πληκτρολογούμε key 1
για να επιλέξουμε το υποκλειδί κρυπτογράφησης και πληκτρολογούμε ξανά keytocard
και επιλέγουμε την υποδοχή που θα χρησιμοποιήσουμε.
gpg> key 1
sec rsa2048/0EFFB0704391497C
created: 2018-09-17 expires: never usage: SC
trust: ultimate validity: ultimate
ssb* rsa2048/A9A814C210F16700
created: 2018-09-17 expires: never usage: E
ssb rsa2048/61F186B8B0BBD5D5
created: 2018-09-17 expires: never usage: A
[ultimate] (1). Jane Doe
gpg> keytocard
Please select where to store the key:
(2) Encryption key
Your selection? 2
sec rsa2048/0EFFB0704391497C
created: 2018-09-17 expires: never usage: SC
trust: ultimate validity: ultimate
ssb* rsa2048/A9A814C210F16700
created: 2018-09-17 expires: never usage: E
ssb rsa2048/61F186B8B0BBD5D5
created: 2018-09-17 expires: never usage: A
[ultimate] (1). Jane Doe
Τώρα αποεπιλέγουμε το πρώτο κλειδί με key 1
και επιλέγουμε το δεύτερο υποκλειδί με key 2
και το μετακινούμε και αυτό με keytocard
. Στη συνέχεια τερματίζουμε και αποθηκεύουμε τις αλλαγές.
gpg> key 1
sec rsa2048/0EFFB0704391497C
created: 2018-09-17 expires: never usage: SC
trust: ultimate validity: ultimate
ssb rsa2048/A9A814C210F16700
created: 2018-09-17 expires: never usage: E
ssb rsa2048/61F186B8B0BBD5D5
created: 2018-09-17 expires: never usage: A
[ultimate] (1). Jane Doe
gpg> key 2
sec rsa2048/0EFFB0704391497C
created: 2018-09-17 expires: never usage: SC
trust: ultimate validity: ultimate
ssb rsa2048/A9A814C210F16700
created: 2018-09-17 expires: never usage: E
ssb* rsa2048/61F186B8B0BBD5D5
created: 2018-09-17 expires: never usage: A
[ultimate] (1). Jane Doe
gpg> keytocard
Please select where to store the key:
(3) Authentication key
Your selection? 3
sec rsa2048/0EFFB0704391497C
created: 2018-09-17 expires: never usage: SC
trust: ultimate validity: ultimate
ssb rsa2048/A9A814C210F16700
created: 2018-09-17 expires: never usage: E
ssb* rsa2048/61F186B8B0BBD5D5
created: 2018-09-17 expires: never usage: A
[ultimate] (1). Jane Doe
gpg> quit
Save changes? (y/N) y
Τα κλειδιά σας έχουν πλέον μεταφερθεί στο Nitrokey και είναι έτσι ασφαλισμένα σε υλικό. Συγχαρητήρια!
Εξαγωγή δημόσιου κλειδιού και χρήση διακομιστή κλειδιών¶
Παρόλο που μπορείτε να αρχίσετε να χρησιμοποιείτε το Nitrokey αμέσως μετά τη δημιουργία των κλειδιών στο σύστημά σας, πρέπει να εισάγετε το δημόσιο κλειδί σας σε κάθε σύστημα στο οποίο θέλετε να χρησιμοποιήσετε το Nitrokey. Έτσι, για να είστε προετοιμασμένοι, έχετε δύο επιλογές: Είτε αποθηκεύετε το δημόσιο κλειδί οπουδήποτε θέλετε και το χρησιμοποιείτε σε ένα άλλο σύστημα είτε αποθηκεύετε το δημόσιο κλειδί σε μια ιστοσελίδα/διακομιστή κλειδιών.
Δημιουργία αρχείου δημόσιου κλειδιού¶
Για να λάβετε ένα απλό αρχείο με το δημόσιο κλειδί σας, μπορείτε απλώς να χρησιμοποιήσετε gpg --armor --export keyID > pubkey.asc
. Χρησιμοποιήστε είτε το δακτυλικό αποτύπωμα ως «keyID» (κοιτάξτε στο gpg -K
για να το βρείτε) είτε απλά χρησιμοποιήστε τη διεύθυνση ηλεκτρονικού ταχυδρομείου σας ως αναγνωριστικό.
Μπορείτε να έχετε αυτό το αρχείο μαζί σας ή να το στείλετε σε όποιον θέλετε. Αυτό το αρχείο δεν είναι καθόλου μυστικό. Αν θέλετε να χρησιμοποιήσετε το Nitrokey σε ένα άλλο σύστημα, πρώτα εισάγετε αυτό το δημόσιο κλειδί μέσω gpg --import pubkey.asc
και στη συνέχεια πληκτρολογείτε gpg --card-status
ώστε το σύστημα να ξέρει πού να αναζητήσει αυτό το κλειδί. Αυτό είναι όλο.
Ανέβασμα του δημόσιου κλειδιού¶
If you don’t want to carry a public key file, you can upload it to keyserver. For the common SKS federated keyservers, for example, keyserver.ubuntu.com. Type gpg --keyserver keyserver.ubuntu.com --send-key keyID
. If you are using another machine, you can just import it by using gpg --keyserver keyserver.ubuntu.com --recv-key keyID
.
Μπορείτε επίσης να χρησιμοποιήσετε το openpgp.keys.org. Ο συνιστώμενος τρόπος είναι να το κάνετε αυτό με το gpg --export your_address@example.net
. Αν χρησιμοποιείτε άλλο μηχάνημα, μπορείτε απλά να το εισάγετε χρησιμοποιώντας το gpg --auto-key-locate hkps://keys.openpgp.org
.
Another possibility is to change the URL setting on your card. Start gpg --card-edit
again and first set the URL where the key is situated (e.g. on the keyserver or on your webpage etc.) via the url
command. From now on you can import the key on another system by just using the fetch
command within the gpg --card-edit environment
.