Ευπάθεια στο TLS που επιτρέπει τον προσδιορισμό κλειδιού για συνδέσεις που βασίζονται σε κρυπτογράφηση DH

Αποκάλυψε πληροφορίες για το νέο τρωτά σημεία (CVE-2020-1968) στο πρωτόκολλο TLS, με την κωδική ονομασία
Ρακούν και επιτρέποντας, σε σπάνιες περιπτώσεις, τον προσδιορισμό ενός προκαταρκτικού πρωτεύοντος κλειδιού (pre-master), το οποίο μπορεί να χρησιμοποιηθεί για την αποκρυπτογράφηση των συνδέσεων TLS, συμπεριλαμβανομένου του HTTPS, κατά την αναχαίτιση της συγκοινωνίας (MITM). Σημειώνεται ότι η επίθεση είναι πολύ δύσκολη για πρακτική εφαρμογή και έχει περισσότερο θεωρητικό χαρακτήρα. Για να πραγματοποιηθεί μια επίθεση, απαιτείται μια συγκεκριμένη διαμόρφωση του διακομιστή TLS και η δυνατότητα πολύ ακριβούς μέτρησης του χρόνου επεξεργασίας του διακομιστή.

Το πρόβλημα υπάρχει απευθείας στην προδιαγραφή TLS και επηρεάζει μόνο συνδέσεις που χρησιμοποιούν κρυπτογράφηση που βασίζονται στο πρωτόκολλο ανταλλαγής κλειδιών DH (Diffie-Hellman, TLS_DH_*"). Με τους κρυπτογράφους ECDH το πρόβλημα δεν παρουσιάζεται και παραμένουν ασφαλείς. Μόνο τα πρωτόκολλα TLS έως την έκδοση 1.2 είναι ευάλωτα· το TLS 1.3 δεν επηρεάζεται από το πρόβλημα. Η ευπάθεια εμφανίζεται σε υλοποιήσεις TLS που επαναχρησιμοποιούν το μυστικό κλειδί DH σε διαφορετικές συνδέσεις TLS (αυτή η συμπεριφορά εμφανίζεται σε περίπου 4.4% των διακομιστών Alexa Top 1M).

Στο OpenSSL 1.0.2e και σε προηγούμενες εκδόσεις, το πρωτεύον κλειδί DH επαναχρησιμοποιείται σε όλες τις συνδέσεις διακομιστή, εκτός εάν έχει οριστεί ρητά η επιλογή SSL_OP_SINGLE_DH_USE. Από το OpenSSL 1.0.2f, το πρωτεύον κλειδί DH επαναχρησιμοποιείται μόνο όταν χρησιμοποιούνται στατικοί κρυπτογράφηση DH ("DH-*", π.χ. "DH-RSA-AES256-SHA"). Η ευπάθεια δεν εμφανίζεται στο OpenSSL 1.1.1, καθώς αυτός ο κλάδος δεν χρησιμοποιεί πρωτεύον κλειδί DH και δεν χρησιμοποιεί στατικούς κρυπτογράφησης DH.

Όταν χρησιμοποιείτε τη μέθοδο ανταλλαγής κλειδιών DH, και οι δύο πλευρές της σύνδεσης δημιουργούν τυχαία ιδιωτικά κλειδιά (στο εξής κλειδί "a" και κλειδί "b"), βάσει των οποίων υπολογίζονται και αποστέλλονται τα δημόσια κλειδιά (ga mod p και gb mod p). Αφού κάθε μέρος λάβει τα δημόσια κλειδιά, υπολογίζεται ένα κοινό πρωτεύον κλειδί (gab mod p), το οποίο χρησιμοποιείται για τη δημιουργία κλειδιών περιόδου λειτουργίας. Η επίθεση Raccoon σάς επιτρέπει να προσδιορίσετε το πρωτεύον κλειδί μέσω ανάλυσης πλευρικού καναλιού, με βάση το γεγονός ότι οι προδιαγραφές TLS έως την έκδοση 1.2 απαιτούν να απορριφθούν όλα τα βασικά μηδενικά byte του πρωτεύοντος κλειδιού πριν από τους υπολογισμούς που το αφορούν.

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

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

Ευπάθεια στο TLS που επιτρέπει τον προσδιορισμό κλειδιού για συνδέσεις που βασίζονται σε κρυπτογράφηση DH

Τρωτά σημεία OpenSSL ανατεθεί χαμηλό επίπεδο κινδύνου και η επιδιόρθωση περιορίστηκε στη μετακίνηση των προβληματικών κρυπτογράφησης "TLS_DH_*" στην έκδοση 1.0.2w στην κατηγορία κρυπτογράφησης με ανεπαρκές επίπεδο προστασίας ("αδύναμα-ssl-ciphers"), η οποία είναι απενεργοποιημένη από προεπιλογή . Οι προγραμματιστές της Mozilla έκαναν το ίδιο πράγμα, απενεργοποιημένο στη βιβλιοθήκη NSS που χρησιμοποιείται στον Firefox, τις σουίτες κρυπτογράφησης DH και DHE. Από τον Firefox 78, οι προβληματικοί κρυπτογράφηση είναι απενεργοποιημένοι. Η υποστήριξη του Chrome για το DH διακόπηκε το 2016. Οι βιβλιοθήκες BearSSL, BoringSSL, Botan, Mbed TLS και s2n δεν επηρεάζονται από το πρόβλημα επειδή δεν υποστηρίζουν κρυπτογράφηση DH ή στατικές παραλλαγές κρυπτογράφησης DH.

Πρόσθετα προβλήματα σημειώνονται ξεχωριστά (CVE-2020-5929) στη στοίβα TLS των συσκευών F5 BIG-IP, κάνοντας την επίθεση πιο ρεαλιστική. Συγκεκριμένα, έχουν εντοπιστεί αποκλίσεις στη συμπεριφορά των συσκευών παρουσία μηδενικού byte στην αρχή του πρωτεύοντος κλειδιού, το οποίο μπορεί να χρησιμοποιηθεί αντί για τη μέτρηση της ακριβούς καθυστέρησης των υπολογισμών.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο