파이썬 패키지 인덱스(PyPI)를 비롯한 주요 패키지 관리 시스템에서 도입된 'Trusted Publishing' 기능의 의미에 대한 오해가 확산되고 있습니다. 많은 사용자가 이 용어의 '신뢰(Trusted)'라는 단어 때문에 해당 패키지가 사람에게 안전하고 믿을 수 있다는 신호로 받아들이지만, 이는 사실과 다릅니다. Trusted Publishing은 패키지의 내용이나 품질을 보증하는 것이 아니라, 지속적 통합 및 배포(CI/CD) 시스템과 같은 '외부 머신 신원'이 패키지 인덱스에 패키지를 안전하게 업로드할 수 있도록 돕는 '인증 관계'를 의미합니다.
Trusted Publishing은 OpenID Connect(OIDC) 연합 기반의 인증 방식으로, 기존의 장기 API 토큰이 가진 보안 취약점을 해결하기 위해 고안되었습니다. 과거에는 CI/CD 환경에서 패키지를 배포할 때 장기 API 토큰을 사용했는데, 이는 유출될 경우 심각한 보안 문제를 야기할 수 있었습니다. Trusted Publishing은 CI/CD 시스템이 OIDC를 통해 자신의 신원을 증명하면, 패키지 인덱스가 짧고 범위가 제한된 '게시 자격 증명'을 발급하여 토큰 노출 위험을 줄입니다. PyPI가 2023년 이를 공개한 이후 npm, RubyGems, crates.io, NuGet 등 다른 패키지 생태계로도 확산되고 있습니다. 하지만 이 방식 역시 데이터 모델 복잡성, OIDC 제공자별 처리 방식의 차이, 그리고 CI/CD 워크플로 침해 가능성 등의 제약은 여전히 존재합니다.
PyPI는 이러한 오해를 줄이기 위해 Trusted Publishing 상태를 프로젝트 페이지에 초록색 체크 표시로 강조하지 않고, 파일 상세 정보에서 단순한 'Yes/No' 메타데이터로만 표시합니다. 이는 Trusted Publishing이 패키지 자체의 안전성이나 품질을 판단하는 기준이 아니며, 단지 업로드 인증 방식 중 하나일 뿐임을 명확히 하려는 의도입니다. 궁극적으로 Trusted Publishing은 패키지 공급망 보안의 한 측면인 '업로드 과정의 인증'을 강화하지만, 패키지 내용의 악성코드 여부나 취약점, 전반적인 신뢰성은 사용자가 별도로 검증해야 할 영역으로 남아 있습니다. 이 기술은 패키지 배포의 자동화와 보안을 향상시키지만, 최종 사용자의 신뢰 판단에는 직접적인 영향을 주지 않는다는 점을 이해하는 것이 중요합니다.