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

Δύο πύλες, δύο ερωτήματα

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

Τα δύο προστίθενται. Αν λείπει το ένα, λείπει ένας έλεγχος· η προσθήκη του άλλου δεν το αντικαθιστά.

Τι περιορίζει πραγματικά ένα καρφίτσωμα

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

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

Το καρφίτσωμα στην πλατφόρμα είναι ρύθμιση, όχι πολιτική

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

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

Η εναλλαγή αποφασίζει αν το καρφίτσωμα επιβιώνει

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

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

Μια χαμένη συσκευή είναι τρίτο πρόβλημα

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

Δοκιμάστε τέσσερις σχέσεις αντί για τη μία που βλέπετε: τον σκοπούμενο διακομιστή και τη λειτουργία, έναν λογαριασμό που πρέπει να απορριφθεί, μια ταυτότητα διακομιστή που πρέπει να απορριφθεί και την προγραμματισμένη εναλλαγή. Ένα λειτουργικό VPN ασκεί μόνο την πρώτη. Γράψτε τι απέδειξε κάθε δοκιμή, γιατί ο επόμενος θα υποθέσει ότι μια πράσινη σήραγγα σημαίνει ότι πέρασαν και οι τέσσερις.

Σχετικά άρθρα