Πώς να εμφανίσετε το & Επαλήθευση υπογραφών κώδικα για εφαρμογές σε Mac OS X
Πίνακας περιεχομένων:
Οι εφαρμογές με υπογραφή κώδικα επιτρέπουν στους χρήστες με επίγνωση της ασφάλειας να επαληθεύουν τον δημιουργό και τον κατακερματισμό μιας συγκεκριμένης εφαρμογής για να επιβεβαιώσουν ότι δεν έχει καταστραφεί ή παραβιαστεί. Αυτό είναι σπάνια απαραίτητο για τους μέσους χρήστες Mac, ιδιαίτερα εκείνους που λαμβάνουν το λογισμικό τους από το Mac App Store ή άλλες αξιόπιστες πηγές, καθώς οι εφαρμογές είναι πιστοποιημένες, αλλά η επαλήθευση της ψηφιακής υπογραφής μιας εφαρμογής μπορεί να είναι εξαιρετικά χρήσιμη για τους χρήστες που λαμβάνουν εφαρμογές από τρίτους πηγές.
Η επαλήθευση μιας υπογραφής κώδικα είναι ιδιαίτερα σημαντική για όσους λαμβάνουν λογισμικό και προγράμματα εγκατάστασης από p2p και κατανεμημένες πηγές, ίσως έναν ιστότοπο torrent ή ομάδες συζητήσεων, IRC, δημόσιο ftp ή άλλο πόρο δικτύου. Για ένα πρακτικό παράδειγμα, ας υποθέσουμε ότι ένας χρήστης δεν μπορεί να έχει πρόσβαση στο Mac App Store για οποιονδήποτε λόγο, αλλά χρειάζεται να κατεβάσει μια εφαρμογή εγκατάστασης Mac OS X και επομένως βασίζεται σε μια πηγή τρίτου μέρους. Μια τέτοια κατάσταση είναι όταν θα ήταν σημαντικό να γνωρίζετε και να επαληθεύσετε ότι το πρόγραμμα εγκατάστασης δεν έχει παραβιαστεί και προέρχεται νόμιμα από την Apple, και εκτός από τον απευθείας έλεγχο του sha1 hash, ο ευκολότερος τρόπος για να γίνει αυτό είναι να ελέγξετε την υπογραφή κώδικα και την κρυπτογράφηση κατακερματισμός της εν λόγω εφαρμογής.
Πώς να ελέγξετε την υπογραφή κώδικα για εφαρμογές σε Mac
Για να ξεκινήσετε, εκκινήστε το Terminal, που βρίσκεται στο /Applications/Utilities/. Θα χρησιμοποιήσουμε την εντολή «codesign» με το εύστοχο όνομα, με τις σημαίες -dv και –verbose=4 για να εμφανίσουμε πληροφορίες αναγνώρισης σχετικά με οποιαδήποτε εφαρμογή, συμπεριλαμβανομένου του τύπου κατακερματισμού, του αθροίσματος ελέγχου κατακερματισμού και της αρχής υπογραφής.
Η βασική σύνταξη είναι η εξής:
codesign -dv --verbose=4 /Path/To/Application.app
Για παράδειγμα, ας ελέγξουμε την υπογραφή στο Terminal.app, που βρίσκεται στο /Applications/Utilities/
codesign -dv --verbose=4 /Applications/Utilities/Terminal.app Executable=/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal Identifier=com.apple.Terminal Format=Bundle with Mach-Othin (x86_64) CodeDirectory v=20100 size=5227 flags=0x0(none) hashes=255+3 location=embedded Platform identifier=1 Hash type=sha1 size=20 CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23 Signature size=4105 Authority=Software Signing Authority=Apple Code Signing Authority Certification Authority=Apple Root CA Info.plist standards1 έκδοση=9 αρχείου μεγέθους3.
Αυτό που αναζητάτε είναι ο τύπος κατακερματισμού, ο κατακερματισμός και οι καταχωρίσεις εξουσιοδότησης. Σε αυτήν την περίπτωση, ο τύπος κατακερματισμού είναι sha1 και η υπογεγραμμένη αρχή είναι η Apple, κάτι που θα περιμένατε.
Ναι, μπορείτε επίσης να χρησιμοποιήσετε τη γραμμή εντολών για να ελέγξετε απλώς τους κατακερματισμούς sha1 ή md5 των προγραμμάτων εγκατάστασης και λήψεων εφαρμογών και να τα συγκρίνετε με μια νόμιμη πηγή, αλλά αυτό δεν θα αποκαλύψει τις λεπτομέρειες της υπογραφής κώδικα και του πιστοποιητικού.
Έχετε υπόψη ότι τα περισσότερα λογισμικά με υπογραφή κώδικα που έχουν τροποποιηθεί από μη εξουσιοδοτημένο μέρος θα απορριφθούν από το Gatekeeper στο Mac OS X, εκτός εάν το Gatekeeper έχει απενεργοποιηθεί ή έχει παρακαμφθεί με άλλον τρόπο, αλλά ακόμη και με το Gatekeeper να παραμένει σε αυτό θεωρητικά είναι δυνατό για έναν επιχειρηματία να βρει τρόπο να το αντιμετωπίσει, και φυσικά λογισμικό που δεν έχει πιστοποιηθεί από αναγνωρισμένο προγραμματιστή μπορεί πάντα να κυκλοφορήσει γύρω από το Gatekeeper.
Μπορείτε σχετικά με την υπογραφή κώδικα στη Wikipedia και στον οδηγό προγραμματιστή Apple για την υπογραφή κώδικα εδώ.
Ελέγχετε ποτέ εάν οι εφαρμογές είναι υπογεγραμμένες; Μπορεί να είναι ένας έγκυρος τρόπος για να προσδιορίσετε ποιες είναι ορισμένες διαδικασίες και εφαρμογές, και επίσης μπορεί να είναι χρήσιμος για την αντιμετώπιση προβλημάτων. Δοκιμάστε το την επόμενη φορά που θα αναρωτιέστε τι είναι κάτι και αν είναι υπογεγραμμένο ή όχι!