SHARE THE PERSPECTIVE
Η αφαίρεση ενός αναμεταδότη push αλλάζει ποιος συμμετέχει στην παράδοση· δεν εξαφανίζει τα μεταδεδομένα δρομολόγησης.

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

Η χρήσιμη σύγκριση επομένως δεν είναι «το FCM αποκαλύπτει τα πάντα· τα sockets κρύβουν τα πάντα». Είναι: ποια δεδομένα φτάνουν σε κάθε μέρος, πόσο αξιόπιστα λειτουργεί ο επιλεγμένος σχεδιασμός στο παρασκήνιο και τι μπορεί να επαληθεύσει ο χρήστης;

Τι μεταφέρει το FCM

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

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

Τι αποδεικνύουν —και τι όχι— τα αναγνωριστικά δρομολόγησης

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

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

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

Σύγκριση FCM και άμεσου συγχρονισμού

Ερώτημα σχεδιασμού Push μέσω FCM Άμεσος συγχρονισμός παρασκηνίου
Συμμετέχει τρίτος αναμεταδότης push; Ναι Όχι για τη συγκεκριμένη άμεση σύνδεση
Μπορεί να αποκλειστεί το αναγνώσιμο κείμενο συνομιλίας από αυτόν; Ναι, με κατάλληλο σχεδιασμό φορτίου Η εφαρμογή εξακολουθεί να χρειάζεται κατάλληλη E2EE
Παρατηρεί ο διακομιστής της εφαρμογής δεδομένα σύνδεσης ή παράδοσης; Συχνά· εξαρτάται από την αρχιτεκτονική Ναι, εξυπηρετεί απευθείας τον πελάτη
Είναι εγγυημένη η άμεση παράδοση; Όχι Όχι
Τι χρειάζεται δοκιμή; Περιεχόμενο φορτίου, κύκλος ζωής token, καθυστερήσεις και εφεδρική διαδρομή Περιορισμοί λειτουργικού, επανασύνδεση, κατανάλωση μπαταρίας και καθυστερήσεις

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

Γιατί το WorkManager δεν είναι μεταφορά άμεσων μηνυμάτων

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

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

Τι λέει η Livara για τις ειδοποιήσεις

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

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

Ένας πρακτικός έλεγχος ειδοποιήσεων

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

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

Ανοίξτε το Livara Chat
CONTINUE THE THREADAndroid & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗