Το PyPI είναι το επίσημο αποθετήριο λογισμικού για εφαρμογές τρίτων στη γλώσσα προγραμματισμού Python.
Πριν λίγες μέρες κυκλοφόρησε η είδηση το αποθετήριο πακέτων Python PyPI (Python Package Index) ήδη παρέχει τη δυνατότητα χρήσης μιας νέας ασφαλούς μεθόδου δημοσίευσης πακέτων, το οποίο εξαλείφει την ανάγκη αποθήκευσης σκληρών κωδικών πρόσβασης και διακριτικών πρόσβασης API σε εξωτερικά συστήματα (για παράδειγμα, στο GitHub Actions).
Η νέα μέθοδος ελέγχου ταυτότητας έχει το όνομα"Αξιόπιστοι εκδότες" και έχει σχεδιαστεί για να λύνει το πρόβλημα των κακόβουλων ενημερώσεων που εκδίδονται ως αποτέλεσμα της παραβίασης των εξωτερικών συστημάτων και των προκαθορισμένων κωδικών πρόσβασης ή διακριτικών που πέφτουν σε λάθος χέρια.
Από σήμερα, οι συντηρητές πακέτων PyPI μπορούν να υιοθετήσουν μια νέα, πιο ασφαλή μέθοδο δημοσίευσης που δεν απαιτεί μακροχρόνιους κωδικούς πρόσβασης ή διακριτικά API για κοινή χρήση με εξωτερικά συστήματα.
Αναφέρεται ότι αυτή η νέα μέθοδος ελέγχου ταυτότητας προσδίδει σημαντικά πλεονεκτήματα χρηστικότητας και ασφάλειας σε σύγκριση με τις άλλες παραδοσιακές μεθόδους ελέγχου ταυτότητας PyPI:
- Ευχρηστία: Με την αξιόπιστη δημοσίευση, οι χρήστες δεν χρειάζεται πλέον να δημιουργούν χειροκίνητα διακριτικά API στο PyPI και να τα αντιγράφουν και να τα επικολλούν στον πάροχο CI τους. Το μόνο χειροκίνητο βήμα είναι να ρυθμίσετε τις παραμέτρους του επεξεργαστή στο PyPI.
- Seguridad: Τα κανονικά διακριτικά PyPI API έχουν μεγάλη διάρκεια ζωής, πράγμα που σημαίνει ότι ένας εισβολέας που παραβιάζει μια έκδοση πακέτου μπορεί να το χρησιμοποιήσει έως ότου ο νόμιμος χρήστης το αντιληφθεί και το ανακαλέσει χειροκίνητα. Ομοίως, η μεταφόρτωση με κωδικό πρόσβασης σημαίνει ότι ένας εισβολέας μπορεί να ανεβάσει οποιοδήποτε έργο που σχετίζεται με τον λογαριασμό. Η Trusted Publishing αποφεύγει και τα δύο αυτά προβλήματα: Τα εκδοθέντα διακριτικά λήγουν αυτόματα και περιορίζονται μόνο στα πακέτα στα οποία έχουν εξουσιοδότηση να ανεβάζουν.
Σχετικά με αυτή τη νέα μέθοδο ελέγχου ταυτότητας, αναφέρεται ότι βασίζεται στο πρότυπο OpenID Connect (OIDC), το οποίο χρησιμοποιεί χρονικά περιορισμένα διακριτικά ελέγχου ταυτότητας που ανταλλάσσονται μεταξύ εξωτερικών υπηρεσιών και του καταλόγου PyPI για την επικύρωση μιας λειτουργίας δημοσίευσης πακέτου, αντί για χρήση παραδοσιακής σύνδεσης/κωδικού πρόσβασης ή μόνιμο API που δημιουργείται με μη αυτόματο τρόπο από διακριτικά πρόσβασης.
Η "Αξιόπιστη δημοσίευση" είναι ο όρος μας για τη χρήση του προτύπου OpenID Connect (OIDC) για την ανταλλαγή βραχυπρόθεσμων διακριτικών ταυτότητας μεταξύ μιας αξιόπιστης υπηρεσίας τρίτου μέρους και της PyPI. Αυτή η μέθοδος μπορεί να χρησιμοποιηθεί σε αυτοματοποιημένα περιβάλλοντα και εξαλείφει την ανάγκη χρήσης συνδυασμών ονόματος χρήστη/κωδικού πρόσβασης ή χειροκίνητα δημιουργούμενων διακριτικών API για έλεγχο ταυτότητας με το PyPI κατά τη δημοσίευση.
Από την άλλη πλευρά, αναφέρεται επίσης ότι οι συντηρητές πακέτων μπορούν, από την πλευρά του PyPI, να εμπιστεύονται αναγνωριστικά που παρέχονται σε εξωτερικούς παρόχους OpenID (IdP), τα οποία θα χρησιμοποιήσει η εξωτερική υπηρεσία για να ζητήσει μη ζωντανά tokens του PyPI.
Τα δημιουργημένα διακριτικά OpenID Connect επιβεβαιώνουν τη σχέση μεταξύ του έργου και του ελεγκτή, που επιτρέπει στο PyPI να εκτελεί πρόσθετη επαλήθευση μεταδεδομένων, όπως η επαλήθευση ότι το δημοσιευμένο πακέτο σχετίζεται με ένα συγκεκριμένο αποθετήριο. Τα διακριτικά δεν είναι μόνιμα, συνδέονται με συγκεκριμένα API και λήγουν αυτόματα μετά από μια σύντομη διάρκεια ζωής.
Αντίθετα, οι συντηρητές PyPI μπορούν να διαμορφώσουν το PyPI ώστε να εμπιστεύονται μια ταυτότητα που παρέχεται από έναν δεδομένο πάροχο ταυτότητας OpenID Connect (IdP). Αυτό επιτρέπει στην PyPI να επαληθεύει και να εκχωρεί εμπιστοσύνη σε αυτήν την ταυτότητα, η οποία στη συνέχεια εξουσιοδοτείται να ζητά διακριτικά API περιορισμένου εύρους και μικρής διάρκειας από την PyPI. Αυτά τα διακριτικά API δεν χρειάζεται ποτέ να αποθηκεύονται ή να κοινοποιούνται, εναλλάσσονται αυτόματα με τη γρήγορη λήξη και παρέχουν μια επαληθεύσιμη σύνδεση μεταξύ ενός δημοσιευμένου πακέτου και της πηγής του.
Τώρα τη δυνατότητα χρήσης του μηχανισμού "Αξιόπιστοι εκδότες" Έχει ήδη εφαρμοστεί και τρέχει. για ελεγκτές που ξεκίνησαν στο GitHub Actions. Τέλος, αλλά εξίσου σημαντικό, αναφέρεται επίσης ότι στο μέλλον αναμένεται συμβατότητα με τους Trusted Publishers για άλλες εξωτερικές υπηρεσίες.
Τελικά αν ενδιαφέρεστε να μάθετε περισσότερα γι 'αυτό, μπορείτε να ελέγξετε τις λεπτομέρειες Στον ακόλουθο σύνδεσμο.