Безкоштовний підпис коду для відкритих проєктів: наша заявка до SignPath 🔏
Хто встановлював нашу гру на Windows, можливо, знає цей момент: «Windows захистила ваш ПК» — SmartScreen попереджає про «невідомого видавця», і спершу доводиться натиснути «Докладніше → Все одно виконати». Це не вірус; просто наші інсталятори ще не підписані. Ми хочемо позбутися цього попередження — не купуючи дорогого сертифіката.
Проблема із сертифікатами підпису коду. Сертифікат видавця для Windows (OV або EV) коштує грошей щороку, часто вимагає перевірки компанії та апаратного токена. Для комерційної студії — одна стаття витрат серед багатьох. Для сімейного open-source проєкту — справжня перешкода, до того ж якась неправильна: ми ж прозорі, увесь вихідний код відкритий.
Рішення: SignPath Foundation. SignPath безкоштовно надає підпис коду відкритим проєктам. Саме на це ми й подали заявку. Поки що нічого не схвалено — розгляд триває, — але підготовка була настільки повчальною, що нею варто поділитися. Якщо ви хочете підписати власний OSS-проєкт, ось що довелося зробити нам.
1. Передумови. Публічний репозиторій, ліцензія, визнана OSI (у нашому випадку AGPL-3.0), опубліковані релізи з помітною активною розробкою та документацією — і — обов'язково: двофакторна автентифікація на акаунті GitHub. Трохи репутації проєкту теж допомагає: вебсайт, відео, кілька зірок.
2. Політика підпису коду (найважливіша частина). SignPath хоче точно знати, як у вашому проєкті відбувається підписування. Тому ми додали до репозиторію файл CODE_SIGNING.md, де чітко сказано: який репозиторій офіційний, які артефакти підписуються, що підписує лише CI-процес релізу (ніколи не локальна збірка на чиємусь ноутбуці), хто схвалює релізи — і посилання на політику конфіденційності. Цей пункт — серце заявки.
3. Сторінка завантаження має згадувати SignPath. Форма просить «URL для завантаження» — сторінку, де згадано SignPath. Для цього ми переписали повідомлення про безпеку в нашому README. Нам було важливо бути чесними: поки нічого не підписано, там прямо сказано, що підпис зараз налаштовується — жодних обіцянок, які ще не відповідають дійсності.
4. Справжня політика конфіденційності. Якщо ваше програмне забезпечення обробляє дані — у нас це звіти про збої та акаунти гравців, — потрібна справжня політика конфіденційності за GDPR, а не заглушка з конструктора сайтів.
5. Надсилання. Заповніть форму (репозиторій, домашня сторінка, URL завантаження та конфіденційності, один рядок про проєкт, репутація, система збірки = GitHub Actions), поставте потрібні галочки, надішліть.
Тепер чекаємо: розгляд ручний, зазвичай один–два тижні, можливо з уточнювальними запитаннями. Якщо заявку схвалять, ми вбудуємо крок підпису в наш CI-конвеєр — і тоді попередження SmartScreen зникне для всіх, хто завантажує гру. Щойно отримаємо відповідь, буде частина 2 з конкретною інтеграцією в CI.
Тримайте за нас кулачки. 🤞
Коментарі