Προγραμματισμός

Oracle to Java devs: Διακοπή υπογραφής αρχείων JAR με MD5

Από τον Απρίλιο, η Oracle θα αντιμετωπίζει τα αρχεία JAR που έχουν υπογραφεί με τον αλγόριθμο κατακερματισμού MD5 σαν να ήταν χωρίς υπογραφή, πράγμα που σημαίνει ότι οι σύγχρονες εκδόσεις του Java Runtime Environment (JRE) θα εμποδίσουν την εκτέλεση αυτών των αρχείων JAR. Η αλλαγή έχει καθυστερήσει πολύ, καθώς οι αδυναμίες ασφαλείας του MD5 είναι γνωστές και θα πρέπει να χρησιμοποιούνται πιο ασφαλείς αλγόριθμοι για την υπογραφή κώδικα.

«Ξεκινώντας με τις κυκλοφορίες του Critical Patch Update του Απριλίου, που έχουν προγραμματιστεί για τις 18 Απριλίου 2017, όλες οι εκδόσεις JRE θα αντιμετωπίζουν τα JAR που έχουν υπογραφεί με MD5 ως μη υπογεγραμμένα», έγραψε η Oracle στη σελίδα λήψης Java.

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

Οι νεότερες εκδόσεις της Java απαιτούν πλέον την υπογραφή όλων των αρχείων JAR με έγκυρο κλειδί υπογραφής κώδικα και ξεκινώντας από την Ενημέρωση 51 της Java 7, οι εφαρμογές που δεν έχουν υπογραφεί ή έχουν υπογραφεί αποκλειστικά.

Η υπογραφή κώδικα είναι ένα σημαντικό μέρος της αρχιτεκτονικής ασφαλείας της Java, αλλά το κατακερματισμό MD5 αποδυναμώνει την ίδια την υπογραφή κώδικα προστασίας που υποτίθεται ότι παρέχει. Από το 1992, το MD5 χρησιμοποιείται για μονόδρομο κατακερματισμό: λήψη εισόδου και δημιουργία μιας μοναδικής κρυπτογραφικής αναπαράστασης που μπορεί να αντιμετωπιστεί ως αναγνωριστική υπογραφή. Δεν θα πρέπει να καταλήξουν σε δύο εισόδους τον ίδιο κατακερματισμό, αλλά από το 2005, οι ερευνητές ασφαλείας έχουν επανειλημμένα αποδείξει ότι το αρχείο θα μπορούσε να τροποποιηθεί και να έχει τον ίδιο κατακερματισμό σε επιθέσεις συγκρούσεων. Ενώ το MD5 δεν χρησιμοποιείται πλέον για TLS / SSL - η Microsoft απέσυρε το MD5 για TLS το 2014 - παραμένει διαδεδομένο σε άλλους τομείς ασφαλείας παρά τις αδυναμίες του.

Με την αλλαγή της Oracle, "τα αρχεία JAR που έχουν υπογραφεί MD-5 που επηρεάζονται δεν θα θεωρούνται πλέον αξιόπιστα [από το Oracle JRE] και δεν θα μπορούν να εκτελεστούν από προεπιλογή, όπως στην περίπτωση εφαρμογών Java ή εφαρμογών Java Web Start" Ο Erik Costlow, διευθυντής προϊόντων της Oracle με την Java Platform Group, έγραψε τον Οκτώβριο.

Οι προγραμματιστές πρέπει να επαληθεύσουν ότι τα αρχεία JAR τους δεν έχουν υπογραφεί χρησιμοποιώντας MD5 και, εάν έχει, υπογράψουν ξανά τα αρχεία που έχουν επηρεαστεί με έναν πιο σύγχρονο αλγόριθμο. Οι διαχειριστές πρέπει να επικοινωνήσουν με τους προμηθευτές για να βεβαιωθούν ότι τα αρχεία δεν έχουν υπογραφή MD5. Εάν τα αρχεία εξακολουθούν να εκτελούν MD5 κατά τη στιγμή της αλλαγής, οι χρήστες θα δουν ένα μήνυμα σφάλματος ότι η εφαρμογή δεν μπορούσε να πάει. Η Oracle έχει ήδη ενημερώσει τους πωλητές και τους δικαιοδόχους προέλευσης για την αλλαγή, δήλωσε ο Costlow.

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

Υπήρχε αρκετή προειδοποίηση. Η Oracle σταμάτησε να χρησιμοποιεί MD5 με αλγόριθμο RSA ως την προεπιλεγμένη επιλογή υπογραφής JAR με το Java SE6, το οποίο κυκλοφόρησε το 2006. Η κατάργηση του MD5 ανακοινώθηκε αρχικά ως μέρος της ενημέρωσης κρίσιμης ενημέρωσης κώδικα του Οκτωβρίου 2016 και είχε προγραμματιστεί να τεθεί σε ισχύ αυτόν τον μήνα ως μέρος του CPU Ιανουαρίου. Για να διασφαλιστεί ότι οι προγραμματιστές και οι διαχειριστές ήταν έτοιμοι για τη μετατόπιση, η εταιρεία αποφάσισε να καθυστερήσει τη μετάβαση στην ενημέρωση κώδικα κρίσης του Απριλίου, με το Oracle Java SE 8u131 και τις αντίστοιχες εκδόσεις των Oracle Java SE 7, Oracle Java SE 6 και Oracle JRockit R28.

«Το Συμβούλιο Ασφαλείας της ΑΠ επικροτεί την Oracle για την απόφασή της να αντιμετωπίζει το MD5 ως μη υπογεγραμμένο. Το MD5 έχει καταργηθεί εδώ και χρόνια, καθιστώντας την απομάκρυνση από το MD5 κρίσιμη αναβάθμιση για χρήστες Java », δήλωσε ο Jeremy Rowley, εκτελεστικός αντιπρόεδρος των αναδυόμενων αγορών στο Digicert και μέλος του Συμβουλίου Ασφαλείας της CA.

Η απόσυρση του MD5 εδώ και πολύ καιρό, αλλά δεν αρκεί. Η Oracle θα πρέπει επίσης να εξετάσει την κατάργηση του SHA-1, το οποίο έχει το δικό του σύνολο προβλημάτων, και να υιοθετήσει το SHA-2 για υπογραφή κώδικα. Αυτή η πορεία δράσης θα ήταν σύμφωνη με την τρέχουσα μετεγκατάσταση, καθώς τα μεγάλα προγράμματα περιήγησης έχουν δεσμευτεί να σταματήσουν να υποστηρίζουν ιστότοπους χρησιμοποιώντας πιστοποιητικά SHA-1. Με τους περισσότερους οργανισμούς που έχουν ήδη ασχοληθεί με τη μετεγκατάσταση SHA-1 για TLS / SSL, είναι λογικό να αλλάξουν και τα υπόλοιπα πιστοποιητικά και βασικές υποδομές υπογραφής τους στο SHA-2.

Τα καλά νέα είναι ότι η Oracle σχεδιάζει να απενεργοποιήσει το SHA-1 σε αλυσίδες πιστοποιητικών αγκυρωμένες από ρίζες που περιλαμβάνονται από προεπιλογή στο JDK της Oracle, ενώ ταυτόχρονα το MD5 καταργείται, σύμφωνα με τον χάρτη πορείας JRE και JDK Crypto, ο οποίος περιγράφει τεχνικές οδηγίες και πληροφορίες σχετικά με την τρέχουσα κρυπτογράφηση εργάζονται για την Oracle JRE και την Oracle JDK. Το ελάχιστο μήκος κλειδιού για το Diffie-Hellman θα αυξηθεί επίσης στα 1.024 bit αργότερα το 2017.

Ο οδικός χάρτης ισχυρίζεται επίσης ότι η Oracle πρόσθεσε πρόσφατα υποστήριξη για τους αλγορίθμους SHA224withDSA και SHA256wDDSA με Java 7 και απενεργοποίησε την ελλειπτική καμπύλη (EC) για κλειδιά μικρότερα από 256 bit για SSL / TLS για Java 6, 7 και 8.

$config[zx-auto] not found$config[zx-overlay] not found