Η Red Hat και η Google παρουσίασαν το Sigstore, μια υπηρεσία για την επαλήθευση κρυπτογραφικού κώδικα

Η Red Hat και η Google, μαζί με το Πανεπιστήμιο Purdue, ίδρυσαν το έργο Sigstore, με στόχο τη δημιουργία εργαλείων και υπηρεσιών για την επαλήθευση λογισμικού χρησιμοποιώντας ψηφιακές υπογραφές και τη διατήρηση ενός δημόσιου αρχείου καταγραφής για την επιβεβαίωση της αυθεντικότητας (διαφάνεια ημερολογίου). Το έργο θα αναπτυχθεί υπό την αιγίδα του μη κερδοσκοπικού οργανισμού Linux Foundation.

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

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

Το Sigstore διαφημίζεται ως το ισοδύναμο του Let's Encrypt for code, παρέχοντας πιστοποιητικά για ψηφιακή υπογραφή κώδικα και εργαλεία για την αυτοματοποίηση της επαλήθευσης. Με το Sigstore, οι προγραμματιστές μπορούν να υπογράψουν ψηφιακά τεχνουργήματα που σχετίζονται με εφαρμογές, όπως αρχεία έκδοσης, εικόνες κοντέινερ, δηλώσεις και εκτελέσιμα αρχεία. Ένα ιδιαίτερο χαρακτηριστικό του Sigstore είναι ότι το υλικό που χρησιμοποιείται για την υπογραφή αντικατοπτρίζεται σε ένα απαραβίαστο δημόσιο αρχείο καταγραφής που μπορεί να χρησιμοποιηθεί για επαλήθευση και έλεγχο.

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

Το Sigstore παρέχει τόσο μια έτοιμη υπηρεσία που μπορείτε ήδη να χρησιμοποιήσετε όσο και ένα σύνολο εργαλείων που σας επιτρέπουν να αναπτύξετε παρόμοιες υπηρεσίες στον δικό σας εξοπλισμό. Η υπηρεσία είναι δωρεάν για όλους τους προγραμματιστές και τους παρόχους λογισμικού και αναπτύσσεται σε μια ουδέτερη πλατφόρμα - το Linux Foundation. Όλα τα στοιχεία της υπηρεσίας είναι ανοιχτού κώδικα, γραμμένα σε Go και διανέμονται με την άδεια Apache 2.0.

Μεταξύ των αναπτυγμένων στοιχείων μπορούμε να σημειώσουμε:

  • Το Rekor είναι μια υλοποίηση αρχείου καταγραφής για την αποθήκευση ψηφιακά υπογεγραμμένων μεταδεδομένων που αντικατοπτρίζουν πληροφορίες σχετικά με έργα. Για να διασφαλιστεί η ακεραιότητα και η προστασία από την καταστροφή δεδομένων εκ των υστέρων, χρησιμοποιείται μια δομή που μοιάζει με δέντρο "Merkle Tree", στην οποία κάθε κλάδος επαληθεύει όλους τους υποκείμενους κλάδους και τους κόμβους, χάρη στον κοινό κατακερματισμό (όπως δέντρο). Έχοντας τον τελικό κατακερματισμό, ο χρήστης μπορεί να επαληθεύσει την ορθότητα ολόκληρου του ιστορικού των λειτουργιών, καθώς και την ορθότητα των προηγούμενων καταστάσεων της βάσης δεδομένων (ο κατακερματισμός επαλήθευσης ρίζας της νέας κατάστασης της βάσης δεδομένων υπολογίζεται λαμβάνοντας υπόψη την προηγούμενη κατάσταση ). Για την επαλήθευση και την προσθήκη νέων εγγραφών, παρέχεται ένα Restful API, καθώς και μια διεπαφή cli.
  • Το Fulcio (SigStore WebPKI) είναι ένα σύστημα για τη δημιουργία αρχών πιστοποίησης (Root-CAs) που εκδίδουν βραχυπρόθεσμα πιστοποιητικά βασισμένα σε email που έχουν επικυρωθεί μέσω του OpenID Connect. Η διάρκεια ζωής του πιστοποιητικού είναι 20 λεπτά, κατά τη διάρκεια των οποίων ο προγραμματιστής πρέπει να έχει χρόνο για να δημιουργήσει μια ψηφιακή υπογραφή (αν το πιστοποιητικό πέσει αργότερα στα χέρια ενός εισβολέα, θα έχει ήδη λήξει).
  • Το Сosign (Container Signing) είναι μια εργαλειοθήκη για τη δημιουργία υπογραφών για κοντέινερ, την επαλήθευση υπογραφών και την τοποθέτηση υπογεγραμμένων κοντέινερ σε αποθετήρια συμβατά με το OCI (Open Container Initiative).

Πηγή: opennet.ru

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