오픈 소스를 위한 무료 코드 서명: SignPath 신청기 🔏
Windows에서 저희 게임을 설치해 본 분이라면 그 순간을 아실 거예요. “Windows의 PC 보호” 창이 뜨면서 SmartScreen이 “알 수 없는 게시자”라고 경고하고, 먼저 “추가 정보 → 실행”을 눌러야 하죠. 바이러스가 아니에요. 저희 설치 파일이 아직 서명되지 않았을 뿐이에요. 이 경고를 없애고 싶어요. 비싼 인증서를 사지 않고서요.
코드 서명 인증서의 문제. Windows 게시자 인증서(OV나 EV)는 해마다 비용이 들고, 회사 인증과 하드웨어 토큰이 함께 필요한 경우가 많아요. 상업 스튜디오에게는 여러 비용 항목 중 하나일 뿐이지만, 오픈 소스 가족 프로젝트에는 진짜 장벽이에요. 게다가 어딘가 맞지 않는 장벽이기도 해요. 저희는 실제로 투명하게 운영하고 있고, 소스 코드 전체가 공개되어 있으니까요.
해결책: SignPath Foundation. SignPath는 오픈 소스 프로젝트에 코드 서명을 무료로 제공해요. 저희가 바로 그걸 신청했어요. 아직 승인된 건 아니고 심사가 진행 중이에요. 하지만 준비 과정이 꽤 도움이 되어서 공유하려고 해요. 여러분의 오픈 소스 프로젝트에 서명하고 싶다면, 저희가 해야 했던 일은 이래요.
1. 전제 조건. 공개 저장소, 인정받는 OSI 라이선스(저희는 AGPL-3.0), 활발한 개발과 문서가 눈에 보이는 공개 릴리스, 그리고 양보할 수 없는 조건인 GitHub 계정의 2단계 인증이 필요해요. 프로젝트의 평판도 도움이 돼요. 웹사이트, 영상, 별 몇 개 정도요.
2. 코드 서명 정책(가장 중요한 부분). SignPath는 프로젝트에서 서명이 어떻게 이루어지는지 정확히 알고 싶어 해요. 그래서 저장소에 CODE_SIGNING.md를 추가했어요. 어느 저장소가 공식인지, 어떤 결과물에 서명하는지, CI 릴리스 워크플로만 서명한다는 점(누군가의 노트북에서 로컬 빌드로는 절대 하지 않아요), 누가 릴리스를 승인하는지, 그리고 개인정보 처리방침 링크를 분명히 적었어요. 이 부분이 신청서의 핵심이에요.
3. 다운로드 페이지에 SignPath가 언급되어야 해요. 신청서에는 SignPath를 언급하는 “다운로드 URL”을 적는 칸이 있어요. 그래서 README의 보안 안내를 새로 썼어요. 저희는 정직함을 중요하게 생각했어요. 아직 아무것도 서명되지 않은 동안에는 서명을 지금 준비 중이라고 분명히 적었고, 아직 사실이 아닌 약속은 하지 않았어요.
4. 제대로 된 개인정보 처리방침. 소프트웨어가 데이터를 처리한다면(저희 경우에는 충돌 보고서와 플레이어 계정이요) 웹사이트 빌더의 자리 표시용 문구가 아니라 진짜 GDPR 개인정보 처리방침이 필요해요.
5. 제출. 양식(저장소, 홈페이지, 다운로드 및 개인정보 URL, 프로젝트 한 줄 소개, 평판, 빌드 시스템 = GitHub Actions)을 채우고, 필수 항목에 체크한 다음 보내요.
이제 기다릴 차례예요. 심사는 수작업이라 보통 1~2주 걸리고, 추가 질문이 올 수도 있어요. 승인되면 서명 단계를 CI 파이프라인에 연결할 거예요. 그러면 게임을 내려받는 모든 분에게서 SmartScreen 경고가 사라져요. 답을 받는 대로 구체적인 CI 연동을 다룬 2부를 올릴게요.
행운을 빌어 주세요. 🤞
댓글