ข้อเสนอของ Python Software Foundation ในการยกเลิกการใช้ลายเซ็น PGP และหันไปใช้ Sigstore แทน ได้จุดประเด็นการถกเถียงครั้งสำคัญในชุมชนนักพัฒนา โดยเฉพาะในประเด็นความน่าเชื่อถือของการตรวจสอบแพ็คเกจและผลกระทบจากการบังคับใช้
สถานะปัจจุบันของการตรวจสอบแพ็คเกจ Python
จากการค้นพบล่าสุดได้เผยให้เห็นปัญหาที่น่ากังวลเกี่ยวกับระบบการตรวจสอบ PGP ในปัจจุบัน จากการอภิปรายในชุมชน การตรวจสอบที่ดำเนินการในเดือนพฤษภาคม 2023 พบว่าจากคีย์ที่ไม่ซ้ำกัน 1,069 คีย์ที่ใช้สำหรับลายเซ็นแพ็คเกจบน PyPI:
- 30% ไม่สามารถค้นพบได้บนเซิร์ฟเวอร์คีย์สาธารณะหลัก
- เกือบครึ่งหนึ่งของ 71% ที่เหลือไม่สามารถตรวจสอบความถูกต้องได้อย่างมีความหมาย
- แม้แต่ CPython รุ่นเก่ากว่าเวอร์ชัน 2.7 ก็ประสบปัญหาในการตรวจสอบ
การเปลี่ยนผ่านที่นำเสนอ
Seth Myhre Larson นักพัฒนาด้านความปลอดภัยประจำของ PSF ได้เสนอให้เปลี่ยนไปใช้ Sigstore แต่เพียงอย่างเดียวภายในปีหน้า การเปลี่ยนผ่านนี้จะเป็นการเปลี่ยนแปลงครั้งสำคัญจากวิธีการเซ็นแบบ PGP แบบดั้งเดิมที่ฝังรากลึกในวัฒนธรรมโอเพนซอร์ส
ความแตกต่างที่สำคัญและผลกระทบ
แนวทางของ Sigstore
- ใช้ OpenID Connect (OIDC) สำหรับการยืนยันตัวตน
- ขจัดความจำเป็นในการจัดการคีย์ PGP ด้วยตนเอง
- พึ่งพาหน่วยงานกลางแทนเครือข่ายความเชื่อถือ
- ใช้ใบรับรองแบบใช้ครั้งเดียวและการรับรองในบัญชีแยกประเภทสาธารณะ
ความกังวลของชุมชน
- การบังคับใช้ : สมาชิกชุมชนบางส่วนเห็นว่าการลบการสนับสนุน PGP ทั้งหมดขัดกับหลักการของโอเพนซอร์สในเรื่องทางเลือก
- ** ผลกระทบต่อการกระจาย** : ระบบปฏิบัติการ Linux หลักๆ ยังขาดกระบวนการในการทำงานร่วมกับ Sigstore
- ** การรวมศูนย์** : ระบบใหม่ต้องพึ่งพาผู้ให้บริการจำนวนจำกัด
ทางเลือกอื่น
สมาชิกในชุมชนบางส่วนได้เสนอให้สำรวจวิธีการตรวจสอบอื่นๆ รวมถึง:
- W3C DIDs พร้อมการตรวจสอบบนบล็อกเชน
- Verifiable Credentials (VCs)
- การใช้งาน TUF และ Uptane
- แนวทางแบบผสมผสานที่รักษาการสนับสนุนทั้ง PGP และ Sigstore
การเปลี่ยนผ่านนี้ถือเป็นจุดเปลี่ยนสำคัญในโครงสร้างความปลอดภัยของ Python ที่ต้องสร้างสมดุลระหว่างความต้องการด้านความปลอดภัยสมัยใหม่ ความต้องการของชุมชน และความท้าทายในการนำไปปฏิบัติจริง