Όσοι έχετε Trezor wallet για κρυπτονομίσματα, Linux ή macOS με εγκατεστημένο το GPG, μπορείτε να το χρησιμοποιήσετε και για να προστατέψετε σημαντικά αρχεία, email κλπ κρυπτογραφώντας τα με το hardware wallet σας.
Σημείωση: Ο οδηγός είναι συμβατός με πορτοφόλια TREZOR One, TREZOR Model T, Keepkey, Ledger Nano S, και OnlyKey. Διαβάστε τις παραπομπές. Παρότι είναι βήμα προς βήμα, απαιτεί χρήση τερματικού και εμπειρία στην χρήση εντολών.
Γιατί να χρησιμοποιώ το Trezor Hardware Wallet για GPG κρυπτογράφηση
Το GPG είναι η διάσημη σουίτα ασφαλείας δεδομένων το οποίο είχαμε δει στους παρακάτω οδηγούς:
- Πώς να κρυπτογραφήσετε και να αποκρυπτογραφήσετε αρχεία με GPG σε Linux
- Πως να υπογράψεις τα git commits με GPG κλειδί
Εφόσον διάβασες τα παραπάνω, καταλαβαίνεις ότι με το GPG αποκτάς ένα ιδιωτικό κλειδί (απόρρητο) και ένα δημόσιο κλειδί.
To Trezor wallet, είναι ένα hardware wallet ανοιχτού κώδικα και το χρησιμοποιούν για την διαχείριση και αποθήκευση κρυπτονομισμάτων όπως το είδαμε στο άρθρο:
Στην σειρά άρθρων, εξερευνώ τις δυνατότητες του Trezor Wallet οι οποίες «ξεπερνάνε» αυτές για τις οποίες στο 99% των περιπτώσεων χρησιμοποιείται. Εξερευνώ τις δυνατότητές του ως συσκευή κρυπτογράφησης δεδομένων (αρχεία, email, συνθηματικά, login manager κλπ).
Η σειρά άρθρων θα είναι διαθέσιμη στο tag:
trezor-cryptography
Άρα με αυτό που θα κάνουμε εδώ είναι ότι το ιδιωτικό μας κλειδί παραμένει ασφαλές μέσα στο hardware wallet μας και μέσω αυτού παράγουμε ένα δημόσιο κλειδί που μπορούμε να μοιράσουμε στους γνωστούς και φίλους μας όπως κάνουμε με το GPG που παράγουμε στο PC μας. Σε αντίθεση δηλαδή με το παραδοσιακό τρόπο παραγωγής κλειδιών που διάβασες στους παραπάνω οδηγούς, με το hardware wallet μας, είμαστε ασφαλείς ακόμα και αν ο υπολογιστής μας έχει χαλάσει, έχει μολυνθεί κλπ.
Αν χαλάσει το Hardware Wallet μου, τι θα συμβεί στα κλειδιά κρυπτογράφησης και στα κρυπτογραφημένα αρχεία ;
Επειδή η συναλλαγές των blockchain βασίζονται στις ίδιες γενικές αρχές κρυπτογράφησης (δημόσιου & ιδιωτικού κλειδιού), είναι εφικτό αλλά και πολύ ασφαλές να χρησιμοποιούμε hardware συσκευή για την ψηφιακή υπογραφή και κρυπτογράφηση αρχείων, εγγράφων και μηνυμάτων.
Όπως θα διάβασες, στα παραπάνω άρθρα, όταν φτιάξεις ένα πορτοφόλι με το Trezor, τότε θα έχεις δει ότι σου ζητάει να γράψεις σε ένα χαρτί 24 τυχαίες λέξεις. Φυσικά αυτές τις λέξεις θα πρέπει να τις έχεις γράψει και να τα κρύψεις κάπου που έχεις πρόσβαση μόνο εσύ !. Αυτές οι τυχαίες λέξεις ονομάζονται recovery Seed phrase. Οι λέξεις αυτές χρησιμοποιούνται από τον αλγόριθμο του πορτοφολιού για να δημιουργηθούν τα κλειδιά που υπογράφουν συναλλαγές και τις οποίες θα μπορείς να χρησιμοποιήσεις ΚΑΙ για να κρυπτογραφείς.
Άρα με την συσκευή ασφαλείας Trezor πέρα από το να διαχειρίζεσαι τα κρυπτονομίσματά σου μπορείς επίσης να το χρησιμοποιήσεις με την GPG και την SSH ! Αντί δηλαδή να κρατάτε το κλειδί ασφαλείας και κρυπτογράφησης στον υπολογιστή σας (που μπορεί να χαλάσει και να τα χάσετε), το κλειδί δημιουργείται και αποθηκεύεται στη συσκευή Trezor και δεν φτάνει ποτέ στον υπολογιστή σας. Εάν η συσκευή ή ο υπολογιστής κλαπεί – καταστραφεί, ο χρήστης μπορεί εύκολα να επαναφέρει τα κλειδιά χρησιμοποιώντας το προαναφερθέν αντίγραφο ασφαλείας – Recovery seed – σε νέα συσκευή.
Με αυτό τον τρόπο μπορείτε να υπογράψετε τα email σας, τα git commit σας, τα πακέτα λογισμικού που φτιάχνεται, να διαχειριστείτε τους κωδικούς πρόσβασης σας (π.χ. με το pass
), να κρυπτογραφήσετε τις μεταφορές αρχείων και πολλά άλλα που υποστηρίζουν τα GPG και SSH χωρίς να φοβάστε μήπως κλαπούν τα κλειδιά κρυπτογράφησης.
Εδώ θα σου δείξω πως να κρυπτογραφείς τα δεδομένα σου συνδυάζοντας το Trezor Hardware Wallet και το GPG. Για τα πρωτόκολλα κρυπτογράφησης που υποστηρίζει το Trezor δες το επίσημο wiki τους
Προετοιμασία του συστήματος
Θα πρέπει στο Linux να έχεις εγκαταστήσει τις παρακάτω εξαρτήσεις:
- Trezor Bridge (Εφόσον έχεις Trezor, πιθανόν το είχες κάνει εγκατάσταση μαζί με την Trezor Suite)
- python3-pip
- python3-dev
- libusb-1.0-0-dev
- libudev-dev
- gnupg2
- pinentry-gnome3 (ή αντί για -gnome3 βάλε -curses, -qt, -gtk2 ανάλογα με τις προτιμήσεις και το γραφικό περιβάλλον σου)
Σε Debian με GNOME γραφικό περιβάλλον η εγκατάστασή τους γίνεται με :
sudo apt install -y python3-pip python3-dev libusb-1.0-0-dev libudev-dev gnupg2 pinentry-gnome3
Στην συνέχεια κάνεις εγκατάσταση κάποια πακέτα pyhton:
pip3 install --user attrs trezor setuptools wheel trezor_agent
Ενημερώνεις το $PATH
σου:
source ~/.profile
Κάνεις εγκατάσταση το Trezor Bridge.
Τέλος ενημερώνεις το αρχείο .bashrc
ή το .zshrc
για την διαδρομή των κλειδιών
export PATH=$PATH:$HOME/.local/bin
export GNUPGHOME=$HOME/.gnupg/trezor
Αυτό το GNUPGHOME περιέχει τις ρυθμίσεις κλειδιού TREZOR και του agent. Το trezor agent υποθέτει ότι όλα τα κλειδιά βρίσκονται σε συσκευές όπως το Trezor, επομένως δεν μπορείτε να χρησιμοποιήσετε ta τυπικά κλειδιά GPG στο GNUPGHOME (εάν χρησιμοποιείτε τα κλασσικά κλειδιά του GPG, θα λάβετε ένα σφάλμα όταν επιχειρήσετε να τα χρησιμοποιήσετε).
Κλείσε και άνοιξε πάλι το τερματικό σου. Πέρα από τον trezor_agent
κάναμε εγκατάσταση και το trezorctl
για την διαχείριση του Trezor από το τερματικό μας (δώσε trezorctl
για να μάθεις παραμέτρους ή διάβασε το επίσημο wiki)
Δημιουργία υπηρεσίας Trezor agent
Στην συνέχεια θα δημιουργήσουμε μια υπηρεσία για τον agent μας ώστε να είναι σαν μια γέφυρα μεταξύ του GPG και του Trezor μας.
Φτιάχνουμε τον απαραίτητο φάκελο:
mkdir -p ~/.config/systemd/user/
Μέσα σε αυτόν τον φάκελο δημιουργείς δύο αρχεία. Το trezor-gpg-agent.service
στο οποίο βάζεις τον παρακάτω κώδικα:
[Unit]
Description=trezor-gpg-agent
Requires=trezor-gpg-agent.socket
[Service]
Type=simple
Environment="GNUPGHOME=%h/.gnupg/trezor"
Environment="PATH=/bin:/usr/bin:/usr/local/bin:%h/.local/bin"
ExecStart=%h/.local/bin/trezor-gpg-agent -vv
και το αρχείο trezor-gpg-agent.socket
στον οποίο βάζεις τον παρακάτω κώδικα:
[Unit]
Description=trezor-gpg-agent socket
[Socket]
ListenStream=%t/gnupg/S.gpg-agent
FileDescriptorName=std
SocketMode=0600
DirectoryMode=0700
[Install]
WantedBy=sockets.target
Ενεργοποιείς την υπηρεσία:
systemctl --user daemon-reload
systemctl --user start trezor-gpg-agent.service trezor-gpg-agent.socket
systemctl --user enable trezor-gpg-agent.socket
περισσότερα για τις εντολές systemd δες τον οδηγό: Διαχείριση του συστήματος σας με τη χρήση του systemd
Δημιουργία κλειδιών κρυπτογράφησης με το Trezor
- Συνδέεις την Trezor συσκευή σου με το PC
- Αρχικοποείς τον φάκελο κρυπτογραφικών κλειδιών στον υπολογιστή σου με την παρακάτω εντολή:
trezor-gpg init "Onomasou <to_diko_sou@email.gr>" -v -e ed25519
Θα ξεκινήσει η δημιουργία κρυπτογραφικού κλειδιού και θα σου εμφανίσει σε παράθυρο να βάλεις το PIN που χρησιμοποιείς για τις συναλλαγές σου με το Trezor

Οπότε κοιτάς στην οθόνη του Trezor σου και ανάλογα την θέση των αριθμών πληκτρολογείς το PIN στον υπολογιστή σου και πατάς Enter.
Κρυπτογράφηση αρχείων με το Trezor και το GPG
Μετά την επιτυχή δημιουργία του κλειδιού κρυπτογράφησης, πάρε ένα αρχείο word, zip, video, εικόνα ή ότι άλλο θες και δοκίμασε να το κρυπτογραφήσεις:
gpg2 --encrypt --armor -r to_diko_sou@email.gr ENA-ARXEIO
Αφού βάλεις το PIN σου και επιβεβαιώσεις στο Trezor οτι θέλεις να το κρυπτογραφήσεις, αυτό θα δημιουργήσει ένα αντίγραφο του αρχείου με κατάληξη .asc
. Αυτή είναι η κρυπτογραφημένη μορφή του αρχείου οπότε αυτό θα διαφυλάξεις.
Έστω ότι μετά από καιρό θέλουμε να αποκρυπτογραφήσουμε το αρχείο. Οπότε αφού συνδέσουμε το Trezor στο PC, δίνουμε:
gpg2 --decrypt ENA-ARXEIO.asc > ENA-ARXEIO
και βάζουμε το PIN της συσκευής μας και επιβεβαιώνουμε την αποκρυπτογράφηση.
Επαναφορά κλειδιού κρυπτογράφησης
Σε περίπτωση που χάσετε το PC, καταστραφεί ο δίσκος, η χαλάσει το Trezor, μπορείς να επαναφέρεις το κλειδί σου, με τα Seed words του παλιού στο νέο Trezor και να τρέξεις την ίδια εντολή δημιουργίας κλειδιού που έκανες στην αρχή:
trezor-gpg init "Onomasou <to_diko_sou@email.gr>" -v -e ed25519
Για περισσότερα «κόλπα», φυσικά δεν θα επαναλάβουμε την χρήση του GPG αφού μπορείς να κάνεις ότι έχει αναφερθεί και στους οδηγούς GnuGPG.
Σε μελλοντικό οδηγό θα δούμε την χρήση της ίδιας συσκευής για διαχείριση των pasword μας, κρυπτογράφηση των email μας αλλά και για σύνδεση σε SSH server ώστε να μην χρειάζεται password.
Η σειρά άρθρων θα είναι διαθέσιμη στο tag:
trezor-cryptography
Σου άρεσε το άρθρο; Πες την άποψή σου... έστω και Ανώνυμα: