Αυτό το σφάλμα εμφανίζεται πριν από το αίτημα κωδικού πρόσβασης, και αυτό είναι το χρήσιμο μέρος: τίποτα δεν έχει ταυτοποιηθεί ακόμη, άρα τα διαπιστευτήρια δεν είναι το πρόβλημα. Στο Linux το ίδιο παράθυρο του AnyConnect μπορεί να προέρχεται από παλιά έκδοση πρωτοκόλλου, από ομάδα ανταλλαγής κλειδιών 1024 bit ή από σουίτα κρυπτογράφησης που η κρυπτογραφική πολιτική του συστήματος απορρίπτει. Το έχω εξαλείψει με τρεις διαφορετικούς τρόπους σε τρία μηχανήματα, και αυτό που ξεχωρίζει αυτές τις λύσεις είναι το εύρος επιρροής, όχι η εξυπνάδα. Καθεμία είναι υπερασπίσιμη στη σωστή θέση και κακή προεπιλογή παντού αλλού.

Διαβάστε το μήνυμα πριν αγγίξετε την πολιτική

Κρατήστε την ακριβή συμβολοσειρά από το παράθυρο. Ένα παράπονο έκδοσης δείχνει το επίπεδο πρωτοκόλλου, ένα παράπονο πιστοποιητικού δείχνει την εμπιστοσύνη ή την ονοματοδοσία, και μια αποτυχημένη σύνδεση δείχνει τα διαπιστευτήρια. Μια πύλη που προσφέρει TLS 1.0 με ομάδα DHE 1024 bit, AES-256-CBC και υπογραφή SHA-1 μπορεί να έχει απολύτως έγκυρο πιστοποιητικό και παρ’ όλα αυτά να απορριφθεί από μια σύγχρονη πολιτική πριν σταλούν καν τα διαπιστευτήριά σας.

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

Η αποτυχία του openssl s_client -connect vpn.example.com:443 -servername vpn.example.com ενώ το -tls1 -cipher DEFAULT@SECLEVEL=0 πετυχαίνει σας λέει ότι το όριο είναι έκδοση και μέγεθος κλειδιού μαζί. Αν η πρώτη εντολή αναφέρει μικρό κλειδί DH αντί για προειδοποίηση πρωτοκόλλου, η έκδοση είναι εντάξει και μόνο η ομάδα χρειάζεται προσοχή. Μην βάζετε ποτέ ιδιωτικό κλειδί ή κωδικό πρόσβασης στον έλεγχο.

Επιλογή 1: χαλαρώστε ολόκληρο τον κεντρικό υπολογιστή με την κρυπτογραφική πολιτική

Στο Fedora και στο RHEL 8 και 9, το update-crypto-policies --set LEGACY χαμηλώνει την πολιτική συστήματος του OpenSSL, και το update-crypto-policies --show επιβεβαιώνει τι είναι ενεργό. Συνήθως επαναφέρει τη σήραγγα, αλλά η πολιτική διαβάζεται όταν ξεκινά μια διεργασία, οπότε επανεκκινήστε τον πελάτη και κάθε βοηθητική διεργασία που δημιούργησε πριν δοκιμάσετε ξανά. Επιτρέπει επίσης παλαιότερα πρωτόκολλα και ασθενέστερες ομάδες σε κάθε πελάτη TLS του μηχανήματος, από το πρόγραμμα περιήγησης στο διπλανό παράθυρο έως τον διαχειριστή πακέτων που ενημερώνει τον πυρήνα.

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

Τα Debian και Ubuntu δεν έχουν έναν μοναδικό διακόπτη γι’ αυτό. Το ισοδύναμο είναι μια αλλαγή στο /etc/ssl/openssl.cnf που ορίζει χαμηλότερο MinProtocol και CipherString = DEFAULT@SECLEVEL=0 στην ενότητα προεπιλογών συστήματος. Ίδιο εύρος, διαφορετικό αρχείο, λίγο ευκολότερο να χαθεί από τα μάτια κατά την αναβάθμιση έκδοσης.

Επιλογή 2: ένα αρχείο ρυθμίσεων για έναν πελάτη

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

openssl_conf = openssl_init

[openssl_init]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1.0
CipherString = DEFAULT@SECLEVEL=0

Στρέψτε το OPENSSL_CONF σε εκείνο το αρχείο και ξεκινήστε τον πελάτη VPN μέσω ενός περιτυλίγματος που το εξάγει. Όλα τα άλλα στον κεντρικό υπολογιστή κρατούν την προεπιλεγμένη πολιτική, και αυτή είναι η ιδιότητα που μετράει όταν έρθει το ερώτημα συμμόρφωσης. Επιβεβαιώστε ότι το αρχείο ισχύει πραγματικά πριν κατηγορήσετε την πύλη: το OPENSSL_CONF=/path/to/file openssl ciphers -s -tls1 πρέπει να απαριθμεί κρυπτογραφήσεις TLS 1.0, και ένα κενό αποτέλεσμα σημαίνει ότι η αλυσίδα έχει σπάσει και ο πελάτης κράτησε σιωπηρά τις προεπιλογές του συστήματος.

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

Το όριο είναι η κάλυψη. Ό,τι είναι συνδεδεμένο με GnuTLS ή NSS αγνοεί το OPENSSL_CONF, όπως και κάθε βοηθητική διεργασία που εκκινεί ο πελάτης χωρίς να κληρονομήσει το περιβάλλον. Ελέγξτε με το ldd με ποια βιβλιοθήκη TLS συνδέεται πραγματικά το εκτελέσιμο πριν φτιάξετε το περιτύλιγμα, γιατί η απάντηση καθορίζει αν αυτή η επιλογή υπάρχει καθόλου.

Επιλογή 3: μια VM ή ένα κοντέινερ μιας χρήσης

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

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

Τι σας αφήνει η σύγκριση

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

Η διαρκής λύση ανήκει στη συσκευή: TLS 1.2 ή νεότερο, ομάδα τουλάχιστον 2048 bit, κρυπτογράφηση AEAD και πιστοποιητικό με σύγχρονη υπογραφή. Ζητήστε αυτή την αλλαγή από τον ιδιοκτήτη της συσκευής και μετά επιβεβαιώστε τη διαπραγματευμένη έκδοση και κρυπτογράφηση στο ημερολόγιο του πελάτη. Καταγράψτε την εξαίρεση με τον κεντρικό υπολογιστή, την πύλη, το διαπραγματευμένο πρωτόκολλο, τον εγκρίνοντα και ημερομηνία λήξης, γιατί η σημείωση είναι αυτό που εμποδίζει μια προσωρινή λύση να γίνει προεπιλογή.

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