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

Διαχωρίστε το στοιχείο από το προϊόν

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

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

Αυτή η διάκριση εξηγεί επίσης γιατί δύο προϊόντα με πανομοιότυπους ανοιχτούς πελάτες μπορούν να προσφέρουν πολύ διαφορετικές διασφαλίσεις. Ο πελάτης είναι το μέρος που μπορείτε να ελέγξετε· η συμπεριφορά του φορέα είναι το μέρος που πρέπει να αξιολογήσετε με άλλα μέσα.

Αντιστοιχίστε την εγκατεστημένη έκδοση με τη δημοσιευμένη ετικέτα

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

ComponentWhat inspection can showWhat it leaves untouched
Client sourceHow profiles, packets and optional telemetry are handledWhether the shipped binary matches that source
Build outputWhether a declared build reproduces a matching artefactWhether the source is correct or the toolchain is clean
Server softwareWhat the implementation is capable of loggingWhat the operator actually configures and retains
Account and support systemsAlmost nothing, unless they are separately publishedEverything about how those systems treat your data

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

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

dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wg

Από πού συνήθως ξεκινά ένα σύμπτωμα

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

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

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

Τι δεν μπορεί να φτάσει ο έλεγχος, και τι να κάνετε αντ’ αυτού

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

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

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

Ένας ισχυρισμός ελέγχου πρέπει πάντα να ονομάζει τα στοιχεία και τις εκδόσεις του. Αν μια αναφορά δεν μπορεί να πει ποιο αποθετήριο και ποια έκδοση εξέτασε, περιγράφει μια πρόθεση και όχι ένα προϊόν.

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