PyPI là kho lưu trữ phần mềm chính thức dành cho các ứng dụng của bên thứ ba bằng ngôn ngữ lập trình Python.
Một vài ngày trước, tin tức đã phá vỡ rằng kho lưu trữ gói Python PyPI (Chỉ mục gói Python) rồi cung cấp khả năng sử dụng một phương pháp xuất bản gói an toàn mới, loại bỏ nhu cầu lưu trữ mật khẩu cứng và mã thông báo truy cập API trong các hệ thống bên ngoài (ví dụ: trong Tác vụ GitHub).
Phương thức xác thực mới có tên'Nhà xuất bản đáng tin cậy' và được thiết kế để giải quyết vấn đề các bản cập nhật độc hại được phát hành do hệ thống bên ngoài bị xâm nhập và mật khẩu hoặc mã thông báo được xác định trước rơi vào tay kẻ xấu.
Bắt đầu từ hôm nay, những người bảo trì gói PyPI có thể áp dụng một phương thức xuất bản mới, an toàn hơn, không yêu cầu mật khẩu tồn tại lâu dài hoặc mã thông báo API để chia sẻ với các hệ thống bên ngoài.
Người ta đề cập rằng phương thức xác thực mới này mang lại lợi thế bảo mật và khả năng sử dụng đáng kể so với các phương thức xác thực PyPI truyền thống khác:
- Khả năng sử dụng: Với tính năng xuất bản đáng tin cậy, người dùng không còn cần phải tạo mã thông báo API theo cách thủ công trong PyPI cũng như sao chép và dán chúng vào nhà cung cấp CI của họ. Bước thủ công duy nhất là định cấu hình trình chỉnh sửa trong PyPI.
- an ninh: mã thông báo API PyPI thông thường tồn tại lâu dài, điều đó có nghĩa là kẻ tấn công thỏa hiệp việc phát hành gói có thể sử dụng nó cho đến khi người dùng hợp pháp của nó thông báo và thu hồi nó theo cách thủ công. Tương tự, tải lên bằng mật khẩu có nghĩa là kẻ tấn công có thể tải lên bất kỳ dự án nào được liên kết với tài khoản. Trusted Publishing tránh được cả hai vấn đề này: Mã thông báo đã phát hành tự động hết hạn và chỉ giới hạn ở các gói mà chúng được phép tải lên.
Liên quan đến phương thức xác thực mới này, có đề cập rằng dựa trên tiêu chuẩn OpenID Connect (OIDC), mà sử dụng mã thông báo xác thực có giới hạn thời gian được trao đổi giữa các dịch vụ bên ngoài và thư mục PyPI để xác thực hoạt động xuất bản gói, thay vì sử dụng thông tin đăng nhập/mật khẩu truyền thống hoặc API liên tục được tạo thủ công bằng mã thông báo truy cập.
“Ấn bản đáng tin cậy” là thuật ngữ của chúng tôi để chỉ việc sử dụng tiêu chuẩn OpenID Connect (OIDC) để trao đổi mã thông báo nhận dạng tồn tại trong thời gian ngắn giữa dịch vụ bên thứ ba đáng tin cậy và PyPI. Phương pháp này có thể được sử dụng trong môi trường tự động và loại bỏ nhu cầu sử dụng kết hợp tên người dùng/mật khẩu hoặc mã thông báo API được tạo thủ công để xác thực bằng PyPI khi xuất bản.
Mặt khác, người ta cũng đề cập rằng các nhà bảo trì gói có thể, về phía PyPI, tin cậy các mã định danh được cung cấp cho Nhà cung cấp OpenID (IdP) bên ngoài, mà dịch vụ bên ngoài sẽ sử dụng để yêu cầu mã thông báo không trực tiếp của PyPI.
Mã thông báo OpenID Connect được tạo xác nhận mối quan hệ giữa dự án và bộ điều khiển, cho phép PyPI thực hiện xác minh siêu dữ liệu bổ sung, chẳng hạn như xác minh rằng gói đã xuất bản được liên kết với một kho lưu trữ cụ thể. Mã thông báo không cố định, chúng được liên kết với các API cụ thể và chúng tự động hết hạn sau một thời gian ngắn.
Thay vào đó, những người bảo trì PyPI có thể định cấu hình PyPI để tin cậy một danh tính do nhà cung cấp danh tính OpenID Connect (IdP) cung cấp. Điều này cho phép PyPI xác minh và ủy thác niềm tin cho danh tính đó, sau đó danh tính này được phép yêu cầu mã thông báo API tồn tại trong thời gian ngắn, phạm vi giới hạn từ PyPI. Các mã thông báo API này không bao giờ cần được lưu trữ hoặc chia sẻ, tự động xoay vòng khi hết hạn nhanh chóng và cung cấp liên kết có thể xác minh giữa gói đã xuất bản và nguồn của gói đó.
Bây giờ khả năng sử dụng cơ chế "Nhà xuất bản đáng tin cậy" Nó đã được triển khai và đang chạy. cho các bộ điều khiển bắt đầu trên GitHub Actions. Cuối cùng nhưng không kém phần quan trọng, người ta cũng đề cập rằng khả năng tương thích với Nhà xuất bản đáng tin cậy đối với các dịch vụ bên ngoài khác sẽ được mong đợi trong tương lai.
Cuối cùng nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết Trong liên kết sau đây.