Έξυπνη κάρτα OpenPGP με GnuPG στο Fedora#

Σημείωση

Οι ακόλουθες οδηγίες απαιτούν το Nitrokey 3 να έχει εγκατεστημένη τουλάχιστον την έκδοση υλικολογισμικού 1.4.0. Ανατρέξτε στην ενότητα ενημέρωση υλικολογισμικού για να μάθετε πώς να το ενημερώσετε.

Η υποστήριξη της έξυπνης κάρτας GnuPG απαιτεί scdaemon. Στο Fedora το scdaemon είναι μέρος του πακέτου GnuPG.

Σημείωση

Το scdaemon είναι εγκατεστημένο στο /usr/libexec/scdaemon. Αυτή η διαδρομή συνήθως δεν είναι μέρος της μεταβλητής περιβάλλοντος PATH.

Το έργο GnuPG υποστηρίζει δύο ρυθμίσεις διασύνδεσης με μια έξυπνη κάρτα OpenPGP.

  1. GnuPG (scdaemon με πρόγραμμα οδήγησης CCID) → Έξυπνη κάρτα (π.χ. Nitrokey)

    Σε αυτή τη ρύθμιση το scdaemon επικοινωνεί απευθείας με το Nitrokey με τον εσωτερικό οδηγό CCID και το libusb. Απαιτεί να οριστούν οι κανόνες Udev, επειδή το scdaemon εκτελείται στο χώρο χρήστη με τα δικαιώματα του συνδεδεμένου χρήστη.

  2. GnuPG (scdaemon με βιβλιοθήκη PCSC) → pcscd → Smartcard (π.χ. Nitrokey)

    Σε αυτή τη ρύθμιση το scdaemon επικοινωνεί με το pcscd, το οποίο στη συνέχεια επικοινωνεί με το Nitrokey.

Στο Fedora υποστηρίζεται μόνο η δεύτερη ρύθμιση, επειδή η ρύθμιση παραμέτρων του πακέτου GnuPG ορίζει τον οδηγό CCID ως απενεργοποιημένο και την υποστήριξη pcsc ως απαιτούμενη. Η σχετική διαμόρφωση μπορεί να βρεθεί στο αρχείο spec εδώ και εδώ.

Αντιμετώπιση προβλημάτων#

Η τελευταία έκδοση Fedora 38 θα πρέπει να λειτουργεί μετά την εγκατάσταση χωρίς προβλήματα. Οι αναβαθμισμένες εκδόσεις του Fedora μπορεί να έχουν αντικρουόμενες ρυθμίσεις και θα πρέπει να ελεγχθούν όπως παρακάτω. Το Fedora Silverblue αναφέρθηκε ότι είχε προβλήματα με το GnuPG και τις έξυπνες κάρτες. Οι παρακάτω οδηγίες ισχύουν μόνο για τις εκδόσεις Fedora Workstation και Fedora Server.

Η σωστή διαμόρφωση μιας εγκατάστασης μπορεί να ελεγχθεί με την αναζήτηση πληροφοριών σχετικά με το Nitrokey με τη διεύθυνση gpg --card-status.

Έλεγχος αναγνώρισης#

Βεβαιωθείτε με την εντολή lsusb ότι το Nitrokey αναγνωρίζεται. Η έξοδος θα πρέπει να εμφανίζει το Nitrokey, π.χ. Bus 001 Device 002: ID 20a0:42b2 Clay Logic Nitrokey 3.

Ελέγξτε τη διαμόρφωση του συστήματος#

  1. Βεβαιωθείτε ότι το πακέτο pcscd έχει εγκατασταθεί μαζί με το dnf install pcsc-lite. Επιπλέον, η υπηρεσία systemd και η υποδοχή πρέπει να ενεργοποιηθούν και να ξεκινήσουν με το systemctl enable pcscd.socket pcscd.service && systemctl start pcscd.socket.

  2. Το scdaemon απαιτεί τη βιβλιοθήκη libpcsclite για να συνδεθεί με το pcscd. Η διαδρομή προς τη βιβλιοθήκη pcsc μπορεί να οριστεί ρητά με την εντολή echo "pcsc-driver /usr/lib64/libpcsclite.so.1" >> ~/.gnupg/scdaemon.conf. Εναλλακτικά, η βιβλιοθήκη μπορεί επίσης να γίνει διαθέσιμη με ένα symlink ως εξής ln -s /usr/lib64/libpcsclite.so.1 /usr/lib64/libpcsclite.so. Βεβαιωθείτε ότι στο αρχείο ~/.gnupg/scdaemon.conf δεν έχουν εφαρμοστεί αντικρουόμενες ρυθμίσεις.

  3. Το scdaemon από προεπιλογή αναμένει αποκλειστική πρόσβαση στο pcscd, για να αποφευχθούν πιθανά προβλήματα με ταυτόχρονες τροποποιήσεις πληροφοριών στην κάρτα. Αυτό προκαλεί αποτυχία της πρόσβασης εάν άλλοι πελάτες, συνήθως προγράμματα περιήγησης στο διαδίκτυο, έχουν πρόσβαση στην κάρτα, έστω και μόνο για ανάγνωση. Η κοινή πρόσβαση μπορεί να ενεργοποιηθεί με την εντολή echo "pcsc-shared" >> ~/.gnupg/scdaemon.conf (στην έκδοση 2.2.28 ή νεότερη του GnuPG).