Бесплатная подпись кода для открытого ПО: наша заявка в SignPath 🔏
Кто устанавливал нашу игру на Windows, возможно, знает этот момент: «Windows защитила ваш компьютер» — SmartScreen предупреждает о «неизвестном издателе», и сначала нужно нажать «Подробнее → Выполнить в любом случае». Это не вирус, просто наши установщики пока не подписаны. Мы хотим убрать это предупреждение, не покупая дорогой сертификат.
Проблема сертификатов подписи кода. Сертификат издателя для Windows (OV или EV) стоит денег каждый год, часто требует проверки компании и аппаратного токена. Для коммерческой студии это одна статья расходов из многих. Для семейного проекта с открытым кодом это настоящее препятствие, да ещё и какое-то несправедливое: мы ведь как раз прозрачны, весь исходный код открыт.
Решение: SignPath Foundation. SignPath бесплатно подписывает код проектов с открытым исходным кодом. Именно туда мы и подали заявку. Пока ничего не одобрено, проверка идёт, но подготовка была достаточно поучительной, чтобы о ней рассказать. Если вы хотите подписать свой собственный открытый проект, вот что нам пришлось сделать.
1. Требования. Публичный репозиторий, признанная лицензия OSI (у нас AGPL-3.0), опубликованные релизы с заметной активной разработкой и документацией и, без вариантов, двухфакторная аутентификация на аккаунте GitHub. Немного известности проекта тоже помогает: сайт, видео, несколько звёзд.
2. Политика подписи кода (самая важная часть). SignPath хочет знать точно, как в вашем проекте происходит подпись. Поэтому мы добавили в репозиторий файл CODE_SIGNING.md, где сказано: какой репозиторий официальный, какие артефакты подписываются, что подписывает только CI-процесс релиза (а не локальная сборка на чьём-то ноутбуке), кто утверждает релизы — и ссылка на политику конфиденциальности. Этот пункт — сердце заявки.
3. На странице загрузки должен упоминаться SignPath. В форме просят «URL для скачивания», где упоминается SignPath. Для этого мы переписали раздел о безопасности в README. Для нас было важно быть честными: пока ничего не подписано, там прямо сказано, что подпись сейчас настраивается, — без обещаний, которые пока не соответствуют действительности.
4. Настоящая политика конфиденциальности. Если ваше ПО обрабатывает данные (у нас это отчёты о сбоях и аккаунты игроков), нужна настоящая политика по GDPR, а не заглушка из конструктора сайтов.
5. Отправка. Заполняем форму (репозиторий, домашняя страница, адреса для скачивания и политики конфиденциальности, пара слов о проекте, известность, система сборки = GitHub Actions), ставим обязательные галочки и отправляем.
Теперь ждём: проверка ручная, обычно занимает одну-две недели, возможны уточняющие вопросы. Если заявку одобрят, мы встроим шаг подписи в наш CI-конвейер, и предупреждение SmartScreen исчезнет у всех, кто скачивает игру. Как только получим ответ, выйдет вторая часть с конкретной настройкой CI.
Пожелайте нам удачи. 🤞
Комментарии