Firma de código gratis para el código abierto: nuestra solicitud a SignPath 🔏
Si instalas nuestro juego en Windows, quizá conozcas este momento: «Windows protegió su PC». SmartScreen avisa de un «editor desconocido» y primero tienes que hacer clic en «Más información → Ejecutar de todas formas». No es un virus; simplemente nuestros instaladores todavía no están firmados. Queremos que ese aviso desaparezca, sin tener que comprar un certificado caro.
El problema de los certificados de firma de código. Un certificado de editor para Windows (OV o EV) cuesta dinero cada año, y a menudo exige verificar una empresa y usar un token de hardware. Para un estudio comercial, es un gasto más entre muchos. Para un proyecto familiar de código abierto, es un obstáculo real y, en cierto modo, también el equivocado: nosotros ya somos transparentes, todo el código fuente es público.
La solución: la SignPath Foundation. SignPath ofrece firma de código gratis a proyectos de código abierto. Justo eso es lo que acabamos de solicitar. Todavía no hay nada aprobado (la revisión sigue en curso), pero la preparación fue lo bastante instructiva como para compartirla. Si quieres firmar tu propio proyecto de código abierto, esto es lo que tuvimos que hacer.
1. Los requisitos. Un repositorio público, una licencia reconocida por la OSI (en nuestro caso, AGPL-3.0), versiones publicadas con un desarrollo y una documentación visiblemente activos y, algo innegociable: autenticación en dos pasos en la cuenta de GitHub. Un poco de reputación del proyecto también ayuda: una web, videos, algunas estrellas.
2. La política de firma de código (lo más importante). SignPath quiere saber exactamente cómo se firma en tu proyecto. Por eso añadimos al repositorio un CODE_SIGNING.md que deja claro cuál es el repositorio oficial, qué artefactos se firman, que solo el flujo de publicación de la CI firma (nunca una compilación local en el equipo de cualquiera), quién aprueba las versiones, y un enlace a la política de privacidad. Este punto es el corazón de la solicitud.
3. La página de descarga debe mencionar SignPath. El formulario pide una «URL de descarga» en la que aparezca SignPath. Para ello reescribimos el aviso de seguridad de nuestro README. Para nosotros era importante ser honestos: mientras todavía no se firme nada, dice expresamente que la firma se está configurando en este momento; ninguna promesa que aún no sea cierta.
4. Una política de privacidad de verdad. Si tu software procesa datos (en nuestro caso, informes de fallos y cuentas de jugadores), necesitas una política de privacidad real conforme al RGPD, no un texto de relleno de un creador de webs.
5. Enviar. Completa el formulario (repositorio, página de inicio, URL de descarga y de privacidad, una frase sobre el proyecto, reputación, sistema de compilación = GitHub Actions), marca las casillas obligatorias y envíalo.
Ahora toca esperar: la revisión es manual y suele tardar entre una y dos semanas, quizá con alguna pregunta de seguimiento. Si la aprueban, integraremos el paso de firma en nuestra cadena de CI, y entonces el aviso de SmartScreen desaparecerá para todos los que descarguen el juego. En cuanto tengamos respuesta, publicaremos la segunda parte con la integración concreta en la CI.
Cruza los dedos por nosotros. 🤞
Comentarios