Επαλήθευση υπογραφών APK: Πώς να διασφαλίσετε ότι η εφαρμογή σας είναι ασφαλής

A magnifying glass over a phone showing a certificate and fingerprint, illustrating verifying APK signatures

Η πλευρική φόρτωση εφαρμογών στο Android προσφέρει ελευθερία και ευελιξία, αλλά συνοδεύεται από έναν σημαντικό κίνδυνο: παραποιημένες εφαρμογές. Οι κακόβουλοι φορείς συχνά τροποποιούν δημοφιλείς εφαρμογές για να περιλαμβάνουν λογισμικό υποκλοπής spyware ή adware πριν τις αναδιανείμουν σε ανεπίσημους ιστότοπους. Πώς μπορείτε να είστε σίγουροι ότι το APK που μόλις κατεβάσατε είναι ακριβώς το ίδιο με αυτό που ανέβασε ο προγραμματιστής στο Google Play;

Η απάντηση καταλήγει στο Ψηφιακές υπογραφές APK. Παρακάτω, θα καλύψουμε τον τρόπο με τον οποίο λειτουργεί πραγματικά η υπογραφή εφαρμογών και θα χρησιμοποιήσουμε το Διαδικτυακός Επαληθευτής APK για να ελέγξουμε τον κατακερματισμό και το πιστοποιητικό ενός APK προτού αποφασίσετε να το εμπιστευτείτε.

Η έκδοση των 60 δευτερολέπτων:

Το Android υπογράφει κάθε APK με ένα κλειδί εκδότη. Το τηλέφωνο αρνείται μια "ενημέρωση" της οποίας η υπογραφή δεν ταιριάζει με την υπάρχουσα εγκατάσταση. αυτή είναι η κύρια άμυνα του ΛΣ κατά της πλαστοπροσωπίας. Για να επαληθεύσετε ένα πλευρικό APK, υπολογίστε τον κατακερματισμό του SHA-256 και το δακτυλικό του αποτύπωμα του πιστοποιητικού υπογραφής και, στη συνέχεια, συγκρίνετε και τα δύο με τιμές που εμπιστεύεστε (την υπάρχουσα εγκατάσταση του Play Store, το δημοσιευμένο δακτυλικό αποτύπωμα του προγραμματιστή ή ένα γνωστό-καλό παλαιότερο αντίγραφο). Μια αντιστοίχιση σημαίνει ότι το αρχείο είναι πανομοιότυπο byte και υπογράφεται από τον ίδιο εκδότη. μια αναντιστοιχία σημαίνει μην εγκαταστήσετε.

Τι είναι η υπογραφή APK;

Η ψηφιακή υπογραφή είναι μια κρυπτογραφική απόδειξη ταυτότητας. Όταν ένας προγραμματιστής τελειώνει μια εφαρμογή, την "υπογράφει" χρησιμοποιώντας ένα ιδιωτικό κλειδί (keystore). Στη συνέχεια, το Android χρησιμοποιεί το αντίστοιχο δημόσιο κλειδί που είναι ενσωματωμένο στο APK για να διασφαλίσει:

  1. Ακεραιότητα: Το αρχείο δεν έχει αλλάξει από τότε που υπογράφηκε.
  2. Αυθεντικότητα: Ο προγραμματιστής είναι αυτός που λένε ότι είναι.
  3. Ενημερώσεις: Μόνο τα APK που είναι υπογεγραμμένα με το ίδιο κλειδί μπορούν να ενημερώσουν μια υπάρχουσα εφαρμογή στο τηλέφωνό σας.

Εξέλιξη της υπογραφής: V1, V2, V3 και V4

Η Google βελτιώνει συνεχώς την ασφάλεια APK όλα αυτά τα χρόνια:

Πώς να επαληθεύσετε τις υπογραφές APK στο Διαδίκτυο

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

Βήματα για επαλήθευση:

  1. Μεταβείτε στη σελίδα Επαληθευτής APK.
  2. Επιλέξτε το αρχείο APK ή XAPK.
  3. Το εργαλείο μας αναλύει τον κατάλογο META-INF/ και εξάγει τα δεδομένα πιστοποιητικού (.RSA, .DSA ή .EC).
  4. Περιμένετε να ολοκληρωθεί η ανάλυση (διαρκεί μόνο δευτερόλεπτα).
  5. Ελέγξτε το Πληροφορίες πιστοποιητικού: Όνομα προγραμματιστή, οργανισμός και χώρα προέλευσης.
  6. Ελέγξτε το Hashes: Συγκρίνετε το SHA-256 που εμφανίζεται στον ιστότοπό μας με την τιμή που δημοσίευσε ο εκδότης στον επίσημο ιστότοπο, στη σελίδα έκδοσης έργου ή στη δήλωση υπογραφής.

Προειδοποίηση ασφαλείας

Εάν ο επαληθευτής εμφανίζει μια "Πιστοποιητικό εντοπισμού σφαλμάτων" ή μια άγνωστη οντότητα "Αυτο-υπογεγραμμένη" για μια σημαντική εφαρμογή όπως το Facebook ή το WhatsApp, ΜΗΝ ΤΟ ΕΓΚΑΤΑΣΤΑΣΤΕ. Είναι σχεδόν βέβαιο ότι διακυβεύεται.

Κατανόηση των αθροισμάτων ελέγχου (MD5, SHA-1, SHA-256)

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

Τύπος κατακερματισμού Επίπεδο Ασφαλείας Σημειώσεις
MD5 Κληροδότημα Ευάλωτο σε συγκρούσεις. Όχι για ασφάλεια.
SHA-1 Μέτριος Ακόμα χρησιμοποιείται ευρέως για γρήγορες αναζητήσεις.
SHA-256 Εξοχος Το σύγχρονο πρότυπο για την επαλήθευση εφαρμογών.

Τι πραγματικά σας λέει ένα πιστοποιητικό υπογραφής

Όταν ο επαληθευτής επιστρέφει ένα πιστοποιητικό, τα μέρη που έχουν σημασία για την ασφάλεια πλευρικής φόρτωσης δεν είναι τα πολύχρωμα bits των μεταδεδομένων X.509 αλλά μια μικρή χούφτα πεδίων. Πρακτικά:

Hash vs Signature: The Difference Τα περισσότερα μαθήματα που παραλείπουν

Οι άνθρωποι συχνά συγχέουν το "hash" και το "signature". Εξυπηρετούν πολύ διαφορετικούς σκοπούς και μια ασφαλής επαλήθευση απαιτεί και τα δύο:

Για ένα πλευρικό APK, η ισχυρότερη διασφάλιση συνδυάζει τα δύο: το δακτυλικό αποτύπωμα πιστοποιητικού ταιριάζει με το γνωστό δακτυλικό αποτύπωμα του εκδότη και το SHA-256 του αρχείου ταιριάζει με την τιμή που δημοσίευσε ο εκδότης για αυτήν ακριβώς την έκδοση.

Πού να αποκτήσετε ένα αξιόπιστο δακτυλικό αποτύπωμα αναφοράς

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

  1. Ο ιστότοπος ή η σελίδα έκδοσης του ίδιου του εκδότη. Πολλά έργα ανοιχτού κώδικα και προμηθευτές με επίγνωση της ασφάλειας δημοσιεύουν το δακτυλικό αποτύπωμα SHA-256 του πιστοποιητικού υπογραφής τους μαζί με τις λήψεις τους. Αυτός είναι ο κανόνας του χρυσού.
  2. Μια υπάρχουσα εγκατάσταση του Play Store. Εάν η εφαρμογή είναι ήδη εγκατεστημένη σε μια συσκευή που διαχειρίζεται το Play, το δακτυλικό αποτύπωμα πιστοποιητικού είναι εξ ορισμού το δακτυλικό αποτύπωμα του εκδότη. Συγκρίνετε το δακτυλικό αποτύπωμα του πλευρικού σας APK με αυτό. Εργαλεία όπως το Apk Analyzer (στο Android Studio) ή το apksigner verify --print-certs το διαβάζουν απευθείας από ένα εγκατεστημένο APK.
  3. Το πρώτο APK που εγκαταστήσατε ποτέ αυτής της εφαρμογής. Εάν χρησιμοποιείτε την εφαρμογή για λίγο και δεν είχατε ποτέ μήνυμα "αναντιστοιχία υπογραφής", μπορείτε να χρησιμοποιήσετε οποιοδήποτε από τα παλαιότερα αντίγραφά σας ως αναφορά. Οι επόμενες ενημερώσεις από τον ίδιο εκδότη πρέπει να χρησιμοποιούν το ίδιο κλειδί (ή να περιστρέφονται μέσω v3, οπότε η αλυσίδα εξακολουθεί να επαληθεύει).
  4. Ένα αρχειοθετημένο δημόσιο στιγμιότυπο. Το Αρχείο Διαδικτύου και παρόμοιες υπηρεσίες περιστασιακά διατηρούν παλιές σελίδες έκδοσης APK μαζί με τα δηλωμένα hashes τους. Χρήσιμο για πολύ παλιές εκδόσεις όπου έχει φύγει η αρχική σελίδα εκδότη.

Συνήθη λάθη επαλήθευσης

Είναι η εφαρμογή σας ασφαλής;

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

Ξεκινήστε την επαλήθευση APK

Συχνές Ερωτήσεις (FAQ)

Γιατί το Android με αποκλείει από την εγκατάσταση ενός τροποποιημένου APK;

Επειδή η υπογραφή του νέου APK δεν ταιριάζει με αυτή που έχει ήδη εγκατασταθεί. Αυτό εμποδίζει τους χάκερ να «αντικαταστήσουν» την πραγματική σας τραπεζική εφαρμογή με μια ψεύτικη.

Μπορώ να υπογράψω ξανά ένα APK αφού το τροποποιήσω;

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

Τι είναι το καρφίτσωμα πιστοποιητικού;

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

Κάντε την επαλήθευση υπογραφής μέρος κάθε πλευρικού φορτίου

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

Κατασκευάστηκε και τεκμηριώθηκε από τον Mst Shaefale Κύριος προγραμματιστής και αρχιτέκτονας πακέτων Android • Επαληθεύτηκε σε Android 12–15

Το Mst Shaefale διατηρεί τη συγχώνευση XAPK/APKS από την πλευρά του πελάτη, τον αναλυτή δυαδικού μανιφέστου και τα εργαλεία υπογραφής APK v1+v2 στο xapktoapk.com. Εντοπίζετε μια παρωχημένη εντολή ή αλλαγή λειτουργικού συστήματος; Στείλτε ένα συντακτικό σημείωμα.