Οι περισσότερες συζητήσεις για τα digest του OpenVPN ξεκινούν από το λάθος πακέτο. Το να διαβάζετε auth SHA256 ως «δέξου μόνο ομοτίμους που προσφέρουν SHA256» είναι το πρώτο που πρέπει να ξεμάθετε. Η επιλογή ονομάζει ένα digest για συγκεκριμένα πακέτα, και ποια είναι αυτά τα πακέτα εξαρτάται από το κανάλι και από το αν αυτό το κανάλι είναι AEAD. Δουλέψτε τις τέσσερις ερωτήσεις παρακάτω με σειρά· καθεμία περιορίζει το τι μπορεί να σημαίνει η ρύθμιση στην ανάπτυξή σας.

Ονομάστε το κανάλι που προορίζεται να προστατεύσει η ρύθμιση

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

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

ContextWhat the auth digest does
Data channel without AEADSelects the HMAC digest that authenticates each data packet
Data channel with AEAD, such as GCMUnused for the data channel; the cipher authenticates its own packets
Control channel protected by tls-authSelects the HMAC digest for that protection, even when data is AEAD

Βεβαιωθείτε αν το κανάλι δεδομένων είναι AEAD πριν βασιστείτε σε αυτό

Αν ο διαπραγματευμένος κρυπτογράφος δεδομένων είναι AES-GCM ή CHACHA20-POLY1305, το κανάλι δεδομένων αυθεντικοποιεί τον εαυτό του και το χωριστό digest δεν κάνει τη δουλειά που ίσως φαντάζεστε. Και τα δύο είναι κατασκευές AEAD, άρα η ακεραιότητα παράγεται από την ίδια πράξη που κρυπτογραφεί το φορτίο. Αυτό δεν είναι υποβάθμιση, αλλά σημαίνει ότι μια πολιτική που δικαιολογείται ως «κάθε πακέτο δεδομένων είναι HMAC-SHA256» είναι πραγματικά λανθασμένη σε αυτή τη σήραγγα. Επιβεβαιώστε τη διαπραγματευμένη τιμή στο αρχείο καταγραφής του διακομιστή ή στην έξοδο κατάστασης του πελάτη πριν ξαναγράψετε την πολιτική.

Εξετάστε τον κρυπτογράφο που διαπραγματεύτηκε πράγματι αντί για τη λίστα στο προφίλ, γιατί η διαπραγμάτευση μπορεί να καταλήξει σε άλλο μέλος του συνόλου. data-ciphers AES-256-GCM:AES-128-GCM είναι λίστα διαπραγμάτευσης, και οι δύο καταχωρίσεις είναι AEAD, άρα καμία από τις δύο δεν καταναλώνει το digest του auth για προστασία του φορτίου.

Αντιμετωπίστε την προστασία του καναλιού ελέγχου ως δική της απόφαση

Το tls-auth προσθέτει HMAC στα πακέτα του καναλιού ελέγχου και παίρνει το digest του από τη ρύθμιση auth, γι' αυτό μια σήραγγα AEAD μπορεί να έχει ακόμη ένα ουσιαστικό digest ρυθμισμένο. Το tls-crypt είναι διαφορετική διάταξη με δική της σταθερή προστασία, οπότε μην υποθέσετε ότι κληρονομεί κάθε ιδιότητα του tls-auth. Διαβάστε την τεκμηρίωση για τον μηχανισμό που επιλέξατε αντί να μεταφέρετε υποθέσεις μεταξύ τους.

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

Κρατήστε το auth χωριστά από τη διαπραγμάτευση κρυπτογράφων και τα πιστοποιητικά

Τρεις ρυθμίσεις συγχέονται συνεχώς: το digest του auth, η λίστα κρυπτογράφων δεδομένων και ο αλγόριθμος υπογραφής του πιστοποιητικού. Η αλλαγή της πρώτης δεν επανεκδίδει πιστοποιητικό, δεν επιλέγει το digest υπογραφής του και δεν δημιουργεί μέθοδο χρήστη-κωδικού. Οι ορισμοί των επιλογών πρωτοκόλλου στις πηγές του OpenVPN 2.6 περιγράφουν καθεμία σε δική της ενότητα, κάτι που είναι χρήσιμη υπενθύμιση ότι είναι ανεξάρτητοι διακόπτες.

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

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

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

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

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