PyPI מאפשר לך כעת לפרסם חבילות מבלי להיות קשור לסיסמאות ואסימונים

PyPI

PyPI הוא מאגר התוכנה הרשמי עבור יישומי צד שלישי בשפת התכנות Python.

לפני מספר ימים הוכרז כי מאגר החבילות של Python, PyPI (Python Package Index), מציע כעת שיטה מאובטחת חדשה לפרסום חבילות , ובכך מבטלת את הצורך לאחסן סיסמאות קבועות וטוקנים לגישה ל-API במערכות חיצוניות (למשל, GitHub Actions).

שיטת האימות החדשה נקראת 'מפרסמים מהימנים' (Trusted Publishers) ונועדה לפתור את בעיית פרסום עדכונים זדוניים כתוצאה ממערכות חיצוניות שנפגעו וסיסמאות או טוקנים מוגדרים מראש שנופלים לידיים הלא נכונות.

החל מהיום, מנהלי חבילות PyPI יכולים לאמץ שיטת פרסום חדשה ומאובטחת יותר שאינה דורשת סיסמאות ארוכות טווח או אסימוני API לשיתוף עם מערכות חיצוניות.

מוזכר ששיטת אימות חדשה זו מעניקה יתרונות שימושיות ואבטחה משמעותיים בהשוואה לשיטות האימות המסורתיות האחרות של PyPI:

  • שמישות: עם פרסום מהימן, משתמשים כבר לא צריכים ליצור ידנית אסימוני API ב- PyPI ולהעתיק ולהדביק אותם לספק ה-CI שלהם. השלב הידני היחיד הוא להגדיר את העורך ב- PyPI.
  • אבטחה: אסימוני PyPI API רגילים הם בעלי חיים ארוכים, מה שאומר שתוקף שמתפשר על שחרור חבילה יכול להשתמש בו עד שהמשתמש הלגיטימי שלו יבחין ויבטל אותה באופן ידני. באופן דומה, העלאה עם סיסמה פירושה שתוקף יכול להעלות כל פרויקט המשויך לחשבון. פרסום מהימן מונע משתי הבעיות הללו: תוקף אסימונים שהונפקו פג אוטומטית ומוגבלים לחבילות שאליהן הם מורשים להעלות.

בנוגע לשיטת האימות החדשה הזו, צוין שהיא מבוססת על תקן OpenID Connect (OIDC), המשתמש באסימוני אימות מוגבלים בזמן המוחלפים בין שירותים חיצוניים לספריית PyPI כדי לאמת פעולת פרסום חבילות, במקום להשתמש בכניסה/סיסמה מסורתיים או ב-API קבוע שנוצר ידנית על ידי אסימוני גישה.

"פרסום מהימן" הוא המונח שלנו לשימוש בתקן OpenID Connect (OIDC) להחלפת אסימוני זהות קצרי מועד בין שירות צד שלישי מהימן לבין PyPI. ניתן להשתמש בשיטה זו בסביבות אוטומטיות ומבטלת את הצורך להשתמש בשילובי שם משתמש/סיסמה או באסימוני API שנוצרו באופן ידני כדי לאמת עם PyPI בעת הפרסום.

מצד שני, מוזכר גם שמתחזקי חבילות יכולים, בצד PyPI, לסמוך על מזהים הניתנים לספקי OpenID חיצוניים (IdPs), בהם השירות החיצוני ישתמש כדי לבקש אסימונים שאינם חיים של PyPI.

אסימוני OpenID Connect שנוצרו מאשרים את הקשר בין הפרויקט למנהל ההתקן, ומאפשרים ל-PyPI לבצע אימות מטא-נתונים נוסף, כגון אימות שהחבילה שפורסמה משויכת למאגר ספציפי. האסימונים אינם קבועים, קשורים ל-APIs ספציפיים ותוקפם פג אוטומטית לאחר אורך חיים קצר.

במקום זאת, מנהלי PyPI יכולים להגדיר את PyPI לסמוך על זהות שסופקה על ידי ספק זהות נתון של OpenID Connect (IdP). זה מאפשר ל-PyPI לאמת ולהאציל אמון לאותה זהות, אשר לאחר מכן מורשית לבקש אסימוני API קצרי טווח בהיקף מוגבל מ-PyPI. אסימוני API אלה לעולם אינם צריכים להיות מאוחסנים או משותפים, מסתובבים אוטומטית עם תפוגה מהירה ומספקים קישור בר אימות בין חבילה שפורסמה למקור שלה.

נכון לעכשיו, היכולת להשתמש במנגנון Trusted Publishers כבר מיושמת ופועלת עבור בקרים שמופעלים ב-GitHub Actions. לבסוף, וחשוב מכך, צוין גם כי תמיכה עתידית עבור Trusted Publishers צפויה עבור שירותים חיצוניים אחרים.

לבסוף, אם אתם מעוניינים ללמוד עוד על כך , תוכלו למצוא פרטים נוספים בקישור הבא.


הוסף כמקור מועדף בגוגל