Σχετικά με το μοντέλο ασφαλείας των πορτοφολιών λογισμικού | Καθολικό

Σχετικά με το μοντέλο ασφαλείας των πορτοφολιών λογισμικού | Καθολικό

Κόμβος πηγής: 2671485

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

Πριν από δύο εβδομάδες, Απαγορευμένες ιστορίες αποκάλυψε μια στοχευμένη επίθεση εναντίον χιλιάδων ανθρώπων σε όλο τον κόσμο. Αυτή η επίθεση εκμεταλλεύτηκε ευπάθειες σε Android και iOS, για να εγκαταστήσει λογισμικό υποκλοπής spyware που αναπτύχθηκε από την ομάδα NSO: Pegasus. Αυτό το κακόβουλο λογισμικό μπορεί να παρακολουθεί ολόκληρη τη δραστηριότητα της συσκευής και να διεισδύει προσωπικές πληροφορίες: συνομιλίες SMS, WhatsApp και Signal, τηλεφωνικές κλήσεις κ.λπ. Αυτό το άρθρο εξηγεί πώς, υπό αυτές τις συνθήκες, ένα τέτοιο κακόβουλο λογισμικό θα μπορούσε να εξαγάγει όλα τα μυστικά ενός πορτοφολιού λογισμικού και οι διαφορές από άποψη ασφαλείας μεταξύ των πορτοφολιών λογισμικού σε κινητά τηλέφωνα και επιτραπέζιους υπολογιστές.

Αυτό το άρθρο προορίζεται να μην είναι πολύ τεχνικό. Για να είναι σχετικά απλό, θα συζητηθούν μόνο βασικά χαρακτηριστικά.

Προστασία μυστικών

Τι είναι αποθηκευμένο σε ένα κρυπτογραφικό πορτοφόλι;

Τα πορτοφόλια δεν αποθηκεύουν στην πραγματικότητα τα κρυπτονομίσματα των χρηστών: αποθηκεύουν μόνο τα μυστικά, ιδίως τα ιδιωτικά κλειδιά, που επιτρέπουν την πρόσβαση στα κρυπτονομίσματα και τη δυνατότητα ξοδεύοντάς τα. Αυτά τα ιδιωτικά κλειδιά είναι ως επί το πλείστον ιδιωτικά κλειδιά ECC (κρυπτογραφία ελλειπτικής καμπύλης) σε διαφορετικές καμπύλες ανάλογα με το blockchain. Οι πιο κοινές καμπύλες είναι secp256k1 (Bitcoin, Ethereum…), Ed25519 (Monero) ή BLS12-381 (Ethereum 2).

Αυτά τα κλειδιά χρησιμοποιούνται για την υπογραφή συναλλαγών και γενικότερα για την αλληλεπίδραση με στοιχεία του blockchain.

Η αποθήκευση αυτών των κλειδιών εξαρτάται από τον τύπο του πορτοφολιού: ντετερμινιστικό ή όχι. Ένα ιεραρχικό ντετερμινιστικό (HD) πορτοφόλι επιτρέπει τη δημιουργία ενός δέντρου κλειδιών από ένα μόνο κύριο μυστικό που ονομάζεται σπόρος (βλ. BIP44). Αυτός ο σπόρος προέρχεται συχνά από μια μνημονική ακολουθία 12, 18 ή 24 λέξεων που δημιουργούνται ή επιλέγονται τυχαία από τον χρήστη (βλ.BIP39). Αυτά τα μνημονικά επιτρέπουν τον περιορισμό του αριθμού των κλειδιών που πρέπει να αποθηκευτούν: μπορούν να υπολογιστούν εκ νέου ανά πάσα στιγμή από τον σπόρο. Τα πορτοφόλια HD αποθηκεύουν μόνο αυτό το μνημονικό ή τον σπόρο.

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

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

  • Προστασία από επιθέσεις «κακής υπηρέτριας»: Ένας εισβολέας με προσωρινή πρόσβαση στο πορτοφόλι δεν πρέπει να μπορεί να προσθέσει μια κερκόπορτα μέσα στο πορτοφόλι που θα επιτρέπει την κλοπή του PIN ή των μυστικών προστασίας με κωδικό πρόσβασης.
  • Ασφαλές κρυπτογραφικό υλικό: Τα κλειδιά και τα κλειδιά που δημιουργούνται από το πορτοφόλι δεν πρέπει ποτέ να είναι προβλέψιμα. Επιπλέον, η γνώση των μυστικών (εκτός από τον σπόρο) που δημιουργείται σε κάποια χρονική στιγμή δεν θα επιτρέπει την πρόβλεψη του μυστικού που θα δημιουργηθεί στο μέλλον.
  • Προστασία σε κατάσταση ηρεμίας: Εάν ένας εισβολέας λάβει μόνιμα δεδομένα ενός πορτοφολιού λογισμικού, δεν πρέπει να μπορεί να εξάγει τα κλειδιά.
  • Προστασία κατά τη μυστική χρήση: Όταν το πορτοφόλι είναι ξεκλείδωτο, τα κλειδιά δεν πρέπει να είναι προσβάσιμα από εισβολέα ή κακόβουλο λογισμικό.
Πορτοφόλια υλικού

Το μοντέλο ασφαλείας ενός πορτοφολιού υλικού στοχεύει στην αποφυγή αυτών των απειλών ασφαλείας. Τα πορτοφόλια υλικού προστατεύουν από κακόβουλο λογισμικό εκ κατασκευής. Είναι ανεξάρτητες συσκευές που υπογράφουν συναλλαγές από μόνες τους. Τα κρυπτογραφικά υλικά παραμένουν πάντα μέσα στη συσκευή και δεν αποστέλλονται ποτέ στην εφαρμογή λογισμικού με την οποία επικοινωνούν. Η διεπαφή επικοινωνίας είναι πάντα απλή, γεγονός που μειώνει δραστικά την επιφάνεια επίθεσης. Μπορεί να είναι USB, Micro SD ή κάμερα + οθόνη (μέσω κωδικού QR) ή Bluetooth Low Energy.

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

Τα πορτοφόλια υλικού έχουν επίσης σχεδιαστεί για να προστατεύουν από επιθέσεις «κακής υπηρέτριας» και από εισβολέα με φυσική πρόσβαση. Ανάλογα με το πορτοφόλι υλικού, έχουν διαφορετικά επίπεδα ασφάλειας, αλλά σε όλες τις περιπτώσεις είναι σχεδιασμένα να ασφαλίζουν έναντι αυτών των απειλών. Μπορείτε να βρείτε μια λεπτομερή περιγραφή των μοντέλων απειλών Ledger Nano εδώ.

Πορτοφόλια λογισμικού

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

Στη συνέχεια, εξετάζονται τα πορτοφόλια για επιτραπέζιους υπολογιστές (Windows, macOS, Linux) και τα πορτοφόλια για κινητά. Οι κύριες διαφορές μεταξύ τους βασίζονται κυρίως στους μηχανισμούς ασφαλείας που προσφέρει το λειτουργικό σύστημα.

Πορτοφόλια λογισμικού σε υπολογιστή

Πολλά δημοφιλή πορτοφόλια, όπως το Electrum, το Exodus, το Atomic ή το Bitcoin core, τρέχουν σε υπολογιστές.

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

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

Τις περισσότερες φορές, ο σπόρος αποθηκεύεται σε ένα κρυπτογραφημένο κοντέινερ που προστατεύεται με κωδικό πρόσβασης. Μια απλή επίθεση συνίσταται, για ένα κακόβουλο λογισμικό ή ένα εργαλείο απομακρυσμένης διαχείρισης, για την ανάκτηση αυτού του κρυπτογραφημένου κοντέινερ και την αποστολή του στον εισβολέα. Στη συνέχεια, ο κωδικός πρόσβασης μπορεί είτε να εξαναγκαστεί είτε να αποκτηθεί με τη χρήση του a keylogger.

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

Οι περισσότεροι κωδικοί είναι κακός. Υπάρχουν δισεκατομμύρια κωδικοί πρόσβασης που διέρρευσαν στον Ιστό και πολλοί άνθρωποι τείνουν να επαναχρησιμοποιούν τους κωδικούς πρόσβασής τους για πολλές υπηρεσίες. Τα έτοιμα εργαλεία σάς επιτρέπουν να ανακτάτε κωδικούς πρόσβασης για πορτοφόλια κρυπτονομισμάτων, όπως π.χ btcrecover or hashcat. Οι κωδικοί πρόσβασης μπορεί να είναι περίπλοκοι, αλλά πίσω από κάθε πορτοφόλι υπάρχουν πραγματικά χρήματα, επομένως οι εισβολείς δεν θα διστάσουν να επενδύσουν πόρους για να σπάσουν τέτοιους κωδικούς πρόσβασης.

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

Η πιο ανησυχητική απειλή για τα πορτοφόλια λογισμικού είναι αποκλειστικό κακόβουλο λογισμικό και κλέφτες, που έχουν αναπτυχθεί ειδικά για να εξαντλούν τα χρήματά σας. Τέτοιο κακόβουλο λογισμικό, όπως το KPOT ή ElectroRAT, δεν χρειάζεται καν να κάνετε bruteforce τον κωδικό πρόσβασής σας: μπορούν να τον συλλάβουν απευθείας όταν τον πληκτρολογήσετε, να αποκρυπτογραφήσουν τα δεδομένα διαμόρφωσης του πορτοφολιού και να εκχυλίσουν τον σπόρο.

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

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

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

Συμπερασματικά σχετικά με τα πορτοφόλια λογισμικού που εκτελούνται σε υπολογιστές:

  • Στις περισσότερες περιπτώσεις, τα πορτοφόλια λογισμικού που εκτελούνται σε υπολογιστές προστατεύουν τους σπόρους του χρήστη χρησιμοποιώντας έναν κωδικό πρόσβασης.
  • Ο έλεγχος πρόσβασης για αυτά τα αρχεία πορτοφολιού βασίζεται κυρίως στην ασφάλεια του υπολογιστή. Στην πράξη, είναι δύσκολο να προστατευθούν οι υπολογιστές από κακόβουλο λογισμικό και καθώς τα κρυπτονομίσματα γίνονται mainstream, οι επιθέσεις εναντίον πορτοφολιών θα γίνονται όλο και πιο περίπλοκες.
  • Η χρήση τέτοιων πορτοφολιών λογισμικού για την ασφάλεια ψηφιακών στοιχείων δεν είναι καλή ιδέα. Οποιοδήποτε εξειδικευμένο κακόβουλο λογισμικό θα μπορεί να λάβει τα αρχεία του πορτοφολιού και να βρει τους κωδικούς πρόσβασης εκτός σύνδεσης ή να λάβει τον κωδικό πρόσβασης μέσω ενός keylogger.
Πορτοφόλια λογισμικού σε smartphone

Τα smartphone Android και iOS προσφέρουν από προεπιλογή χαρακτηριστικά ασφαλείας που δεν χρησιμοποιούνται ευρέως σε λειτουργικά συστήματα επιτραπέζιων υπολογιστών.

Τα λειτουργικά συστήματα για κινητά προσφέρουν προστασία δεδομένων εφαρμογών και χρηστών. Συγκεκριμένα, τα sandbox για εφαρμογές είναι υποχρεωτικά για όλες τις εφαρμογές. Αυτό δεν συμβαίνει, για παράδειγμα, στα Windows: από προεπιλογή, οποιαδήποτε εφαρμογή μπορεί να έχει πρόσβαση στα δεδομένα χρήστη.

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

  • Βρίσκει μια ευπάθεια σε αυτήν την εφαρμογή.
  • Ή καταφέρνει να κλιμακώσει τα προνόμια, για παράδειγμα, εκμεταλλευόμενη μια ευπάθεια του πυρήνα που του επιτρέπει να αποκτήσει πρόσβαση root στο σύστημα.

Δυστυχώς υπάρχουν τέτοιες επιθέσεις. Είναι πολύ πιο εύκολα σε παλιές εκδόσεις Android και iOS και σε παλαιότερες ή φθηνές συσκευές όπου ο κώδικας τρίτων είναι συχνά λιγότερο ασφαλής.

Σε ένα ενημερωμένο λειτουργικό σύστημα, αυτές οι επιθέσεις είναι πιο δύσκολες αλλά όχι εξ αποστάσεως ανέφικτες. Για παράδειγμα, ο Ian Beer έδειξε ένα εξαιρετικά εντυπωσιακή επίθεση μηδενικού κλικ στο iOS 13.5 τον Δεκέμβριο του 2020. Η Guang Gong παρουσίασε ένα αλυσίδα εκμετάλλευσης να ριζώσει εξ αποστάσεως ένα ευρύ φάσμα συσκευών Android που βασίζονται στην Qualcomm τον Ιούνιο του 2020. Και, πριν από δύο εβδομάδες, Απαγορευμένες ιστορίες αποκάλυψε ότι η NSO Group χρησιμοποίησε μια αλυσίδα εκμετάλλευσης για να στοχεύσει πρόσφατες συσκευές iOS και Android χρησιμοποιώντας ευπάθειες 0 ημερών.

Οι λιγότερο εξελιγμένοι εισβολείς μπορούν να χρησιμοποιήσουν τοπικά τρωτά σημεία που τους επιτρέπουν να εξάγουν δεδομένα πορτοφολιού από μια κακόβουλη εφαρμογή. Μεσίτες ευπάθειας όπως το Zerodium pay μέχρι και $ 200,000 για κλιμάκωση των προνομίων για root σε Android και iOS, αλλά έως και 1,500,000 $ για απομακρυσμένες επιθέσεις.

Μελετήσαμε μερικά πορτοφόλια Android/iOS. Η ασφάλειά τους εξαρτάται από την ίδια την εφαρμογή, αλλά και από τα χαρακτηριστικά ασφαλείας του υποκείμενου λειτουργικού συστήματος. Φυσικά, όταν η ασφάλεια του λειτουργικού συστήματος έχει χαθεί, η εφαρμογή δεν είναι πλέον ασφαλής

Δύο μέθοδοι για την προστασία του σπόρου χρησιμοποιούνται συνήθως:

  • Προστασία με κωδικό πρόσβασης – τα δεδομένα του πορτοφολιού προστατεύονται από έναν κωδικό πρόσβασης που έχει εισαγάγει ο χρήστης. Η σχεδίαση είναι ίδια με τα πορτοφόλια για επιτραπέζιους υπολογιστές. Στην πράξη, τα δεδομένα είναι πιο δύσκολο να εξαχθούν παρά από έναν υπολογιστή, καθώς η ανάκτηση δεδομένων εφαρμογής από μια κακόβουλη εφαρμογή είναι τεχνικά πιο δύσκολη, για τους λόγους που εξηγήθηκαν παραπάνω. Ωστόσο, η ανάκτηση του κωδικού πρόσβασης μετά την κλοπή των δεδομένων είναι στην πράξη ευκολότερη: η εισαγωγή σύνθετων κωδικών πρόσβασης σε κινητά τηλέφωνα είναι κουραστική, επομένως οι χρήστες τείνουν να επιλέγουν απλούστερους. Επιπλέον, οι μηχανισμοί εξαγωγής κλειδιών (που χρησιμοποιούνται για τη δημιουργία κλειδιού από έναν κωδικό πρόσβασης) σε κινητές συσκευές είναι συνήθως πιο εύκολο να σπάσουν, καθώς είναι συχνά πιο ελαφροί για λόγους απόδοσης.
  • Coinomi και το Metamask είναι παραδείγματα τέτοιων πορτοφολιών.

Στο παρακάτω βίντεο, δείχνουμε μια άλλη εφαρμογή παιχνιδιού που αναπτύχθηκε για αυτό το άρθρο. Είναι ένα κακόβουλο λογισμικό που έχει μεταμφιεστεί ως ψεύτικο γραφικό στοιχείο Bitcoin ticker. Το κακόβουλο λογισμικό εκμεταλλεύεται μια γνωστή ευπάθεια σε μια μη επιδιορθωμένη συσκευή για να αποκτήσει πρόσβαση ρίζας στη συσκευή και για να εκτοπίσει τον κρυπτογραφημένο σπόρο σε έναν απομακρυσμένο διακομιστή. Στη συνέχεια, ο διακομιστής επιβάλλει τον κωδικό πρόσβασης για να αποκρυπτογραφήσει το seed.

Αυτή η μέθοδος δεν είναι συγκεκριμένη για ένα πορτοφόλι. Μπορεί (περισσότερο ή λιγότερο) να προσαρμοστεί εύκολα σε οποιοδήποτε πορτοφόλι που προστατεύεται με κωδικό πρόσβασης. Εδώ είναι το ίδιο παράδειγμα με το Coinbase Wallet:

[Ενσωματωμένο περιεχόμενο]

  • Ασφάλεια βασισμένη στο Android Keystore (ή στο iOS Keychain) – Σε αυτήν την περίπτωση, τα δεδομένα πορτοφολιού κρυπτογραφούνται με ένα κλειδί κρυπτογράφησης που είναι αποθηκευμένο στο Android Keystore (iOS Keychain). Αυτές οι υπηρεσίες σχεδιάστηκαν αρχικά για την ασφαλή αποθήκευση κλειδιών κρυπτογράφησης και πολλές εφαρμογές τις χρησιμοποιούν για να δημιουργήσουν ένα κλειδί που θα κρυπτογραφεί όλα τα ευαίσθητα δεδομένα χρήστη. Οι εφαρμογές που χρησιμοποιούν το Keystore εφαρμόζουν τον ακόλουθο μηχανισμό:
    • Η εφαρμογή ζητά από το Keystore να δημιουργήσει ένα κλειδί κρυπτογράφησης για ένα δεδομένο αναγνωριστικό. Το Keystore δημιουργεί το κλειδί και το αποθηκεύει με ασφάλεια.
    • Όταν η εφαρμογή θέλει να κρυπτογραφήσει ή να αποκρυπτογραφήσει ένα blob, στέλνει το blob μαζί με το αναγνωριστικό κλειδιού στο Keystore.
    • Τέλος, το κατάστημα κλειδιών ελέγχει εάν η εφαρμογή έχει πραγματικά τα δικαιώματα χρήσης αυτού του κλειδιού και στέλνει πίσω, στη συνέχεια, δεδομένα εξόδου στην εφαρμογή.

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

Αυτός ο μηχανισμός μπορεί να παρέχει πρόσθετη ασφάλεια, σε σύγκριση με την προστασία βάσει κωδικού πρόσβασης. Πράγματι, στα πρόσφατα τηλέφωνα, το Keystore υποστηρίζεται από ένα Trusted Execution Environment (TEE) ή μερικές φορές ένα Secure Element.

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

Το Keystore προσφέρει υπηρεσίες κρυπτογράφησης, αλλά και υπογραφής. Άρα, θα μπορούσε ένα πορτοφόλι να προστατεύσει τα κλειδιά κρυπτογράφησης του, καθιστώντας δύσκολη την εξαγωγή τους; Η απάντηση είναι δυστυχώς όχι: Τα πορτοφόλια λογισμικού δεν χρησιμοποιούν το Keystore για την υπογραφή συναλλαγών, να Τα ιδιωτικά κλειδιά χειρίζονται πάντα σε απλό κείμενο από την εφαρμογή.

Αυτό συμβαίνει για έναν απλό λόγο: το KeyStore και το KeyChain προσφέρουν γενικές υπηρεσίες υπογραφής και κρυπτογράφησης, αλλά δεν υποστηρίζουν την κρυπτογραφία που χρησιμοποιείται στα κρυπτονομίσματα. Για παράδειγμα, το KeyStore εφαρμόζει την υπογραφή ECDSA αλλά μόνο σε καμπύλες NIST που ορίζονται στο FIPS 186-4 (P-224, P-256, P-384 και P-521). Το Bitcoin χρησιμοποιεί μια άλλη καμπύλη, secp256k1, το οποίο δεν υποστηρίζεται ακόμη.

Συνοψίζοντας, το Keystore και το Keychain είναι καλές υπηρεσίες για προστασία μυστικά και ιδιωτικά κλειδιά. Μπορούν να προσφέρουν κάποια ασφάλεια κρυπτογραφώντας ευαίσθητα δεδομένα: ορισμένες κατηγορίες τρωτών σημείων (για παράδειγμα ανάγνωση αυθαίρετου αρχείου) θα αντιμετωπιστούν με κρυπτογράφηση Keystore. Ωστόσο, εάν μια κλιμάκωση δικαιωμάτων ρίζας δεν είναι αρκετή για την εξαγωγή των τιμών κλειδιών από ένα Keystore που υποστηρίζεται από υλικό, αρκεί η αποκρυπτογράφηση ευαίσθητων δεδομένων. Ένας εισβολέας που μπορεί να οργανώσει την εφαρμογή είναι σε θέση να ανακτήσει τα μυστικά της.

Συμπερασματικά σχετικά με τα κινητά πορτοφόλια:

  • Ο μηχανισμός απομόνωσης μεταξύ εφαρμογών που παρέχονται από το iOS/Android ανεβάζει τον πήχη για ασφάλεια σε σύγκριση με ένα πορτοφόλι λογισμικού που εκτελείται σε υπολογιστή. Ο εισβολέας χρειάζεται πρώτα μια κλιμάκωση προνομίων για να αποκτήσει πρόσβαση στα δεδομένα της εφαρμογής. Αυτό είναι εφικτό σε παλιές συσκευές. Οι ικανοί επιτιθέμενοι (ο Ian Beer το έκανε μόνος σε 6 μήνες, αλλά… Είναι ο Ian Beer) μπορούν επίσης να το κάνουν σε πρόσφατες, διορθωμένες συσκευές.
  • Οι υπηρεσίες προστασίας κλειδιών (KeyStore, KeyChain) θα μπορούσαν να προσθέσουν ένα επιπλέον επίπεδο ασφάλειας για την προστασία μυστικών σε κατάσταση ηρεμίας. Ωστόσο, καθώς δεν υποστηρίζουν κρυπτογραφικούς αλγόριθμους για εφαρμογές κρυπτονομισμάτων, το κλειδί μπορεί ακόμα να εξαχθεί.
  • Σε όλες τις περιπτώσεις, ένας εισβολέας με πρόσβαση root μπορεί είτε να ανακτήσει το seed σε κατάσταση ηρεμίας, όταν χρησιμοποιείται, είτε να αξιοποιήσει τα δικαιώματα του χρήστη να αδειάσει το πορτοφόλι χρησιμοποιώντας το πορτοφόλι λογισμικού ως χρησμό.

Ακολουθεί ένα τελευταίο παράδειγμα ενός λογισμικού κατασκοπείας παιχνιδιών που στοχεύει το πορτοφόλι Blockchain.com (αν και αυτό θα μπορούσε να εκτελεστεί σε πολλά άλλα πορτοφόλια το ίδιο εύκολα). Εγκαθίσταται εξ αποστάσεως και παρακολουθεί το πορτοφόλι. Μόλις ο χρήστης πραγματοποιήσει έλεγχο ταυτότητας χρησιμοποιώντας το δακτυλικό του αποτύπωμα, το κλειδί κρυπτογράφησης ξεκλειδώνεται και τα δεδομένα του πορτοφολιού αποκρυπτογραφούνται. Το λογισμικό κατασκοπείας ορίζει την εφαρμογή για να ανακτήσει αυτό το κλειδί κρυπτογράφησης. Στη συνέχεια, εξάγει το κλειδί και τα δεδομένα του πορτοφολιού σε έναν απομακρυσμένο διακομιστή:

[Ενσωματωμένο περιεχόμενο]

Συμπέρασμα

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

  • Ο μηχανισμός απομόνωσης μεταξύ εφαρμογών που παρέχονται από το iOS/Android ανεβάζει τον πήχη για ασφάλεια σε σύγκριση με ένα πορτοφόλι λογισμικού που εκτελείται σε υπολογιστή. Ο εισβολέας χρειάζεται πρώτα μια κλιμάκωση προνομίων για να αποκτήσει πρόσβαση στα δεδομένα της εφαρμογής.
  • Οι υπηρεσίες προστασίας κλειδιών (KeyStore, KeyChain) θα μπορούσαν να προσθέσουν ένα επιπλέον επίπεδο ασφάλειας για την προστασία μυστικών σε κατάσταση ηρεμίας. Ωστόσο, καθώς δεν υποστηρίζουν κρυπτογραφικούς αλγόριθμους για εφαρμογές κρυπτονομισμάτων, τα κλειδιά πρέπει να χειρίζονται απευθείας από την εφαρμογή, επομένως προσφέρουν περιορισμένη προστασία.
  • Σε όλες τις περιπτώσεις, ένας εισβολέας με πρόσβαση root, μπορεί είτε να ανακτήσει το seed σε κατάσταση ηρεμίας, όταν χρησιμοποιείται, είτε να αξιοποιήσει τα δικαιώματα του χρήστη να αδειάσει το πορτοφόλι χρησιμοποιώντας το πορτοφόλι λογισμικού ως χρησμό.

Σφραγίδα ώρας:

Περισσότερα από Καθολικό