Политика подписания кода
Последнее обновление: октябрь 2026 · Доступно на 12 языках.
1. Что определяет эта политика
На этой странице указано, какие выпускаемые артефакты KalderaShield подписываются, кем, при какой схеме хранения ключей и кто отвечает за утверждение каждой подписи. Исходная версия того же документа в репозитории: CODE_SIGNING_POLICY.md
2. Windows
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
Статус: заявка ещё не подана. KalderaShield намерен подать заявку в SignPath Foundation и подготовил эту политику заранее, поскольку их условия требуют, чтобы она существовала до подачи заявки. Заявка не подана, и никакого решения не ожидается. Из этого раздела нельзя заключать, что какой-либо артефакт для Windows подписан в настоящее время. Он не подписан. Пока первая подписанная версия фактически не выпущена, честная формулировка — таблица статуса ниже, и этот раздел обновляется до её выхода, а не после.
Подписываться будут файлы: установщик NSIS (KalderaShield_<версия>_x64-setup.exe), пакет MSI для управляемого развёртывания (KalderaShield_<версия>_x64.msi) и переносимый исполняемый файл, не требующий установки (KalderaShield_<версия>_x64-portable.exe). Все три собираются из этого репозитория и публикуются на странице выпусков. Ни один артефакт, не собранный из этого репозитория, не подписывается сертификатом этого проекта, и ни один сторонний двоичный файл не переподписывается им.
Хранение ключа: закрытый ключ создаётся и хранится в HSM компании SignPath. Этот проект никогда не хранит его, не экспортирует и не передаёт ни сборщику, ни машине разработчика. Подписание выполняется на стороне SignPath в ответ на запрос на подпись, который отправляет CI этого репозитория и который утверждает человек.
Цепочка: отправляется тег версии → GitHub Actions собирает файлы (рабочие процессы публичны, сторонние действия закреплены по SHA коммита, права токенов только для чтения) → сборка загружает их в SignPath и открывает запрос на подпись, не подписывая → Фрегебер утверждает или отклоняет → SignPath подписывает сертификатом Foundation → подписанный файл публикуется вместе с SHA256SUMS.txt. Каждый выпуск требует ручного утверждения; автоматической подписи без участия человека нет и не будет.
Действительная подпись SignPath Foundation означает, что двоичный файл является проверяемой автоматической сборкой исходного кода из этого репозитория на коммите, названном в выпуске. Это не означает, что программное обеспечение было проверено, и не является подтверждением безопасности приложения. Проект публикует модель угроз и документацию по контролю качества, но не имеет завершённого независимого аудита безопасности:
3. Роли команды
KalderaShield поддерживается одним человеком. Это указано здесь, а не представлено как команда, потому что перечисленные ниже роли — те, которых требует SignPath, и единственный сопровождающий может заполнить их честно только в одиночку. Все учётные записи с правом записи в этот репозиторий используют многофакторную аутентификацию.
Авторы — люди, которые могут изменять исходный код без дополнительной проверки:
hafgit99— github.com/hafgit99
Это единственная учётная запись с правом записи. Репозиторием владеет личная учётная запись, а не организация, поэтому путь записи — одна личность с включённой MFA.
Рецензенты — люди, проверяющие каждое изменение, предложенное некоммитером, до слияния:
hafgit99
Сейчас нет участников без права коммита, так что эта роль на практике не просто немногочисленна, а пуста.
Утверждающие — люди, утверждающие каждый запрос на подпись до подписания артефакта:
hafgit99
Известный пробел: когда все три роли у одного человека, автор кода сам утверждает и его подпись. Модель SignPath предполагает, что утверждающий «вызывает доверие всей команды», а это предполагает более одного участника. Второй утверждающий запланирован, но пока не добавлен. Тот, кто считает это препятствием, должен сказать об этом сейчас, а не после одобрения.
4. Политика конфиденциальности
Формулировкой, которую требует SignPath: эта программа не передаёт никакую информацию в другие сетевые системы, если это прямо не затребовано пользователем или лицом, устанавливающим либо эксплуатирующим её.
KalderaShield — офлайн-ориентированный менеджер паролей на основе принципа «нулевого знания». Содержимое хранилища шифруется на устройстве ключами, полученными из мастер-пароля, и никогда не передаётся. У него нет учётной записи, службы синхронизации, телеметрии и аналитики. В двоичных файлах для Windows нет сетевого клиента никакого рода, кроме компонентов самой операционной системы. Полный текст: политика конфиденциальности. Поведение сторонних компонентов, затрагивающее пользователей, описано в LICENSE-3RD-PARTY.md.
5. Другие платформы
macOS — артефакты подписываются Apple Developer ID и нотарифицируются Apple. Сертификат ещё не выпущен, поэтому ни один артефакт macOS не подписан и ни один не опубликован. Linux — .deb, .rpm и .AppImage публикуются с отсоединёнными подписями GPG (.sig), SBOM и пакеты браузерных расширений — с бесподписными подписями Sigstore (.sigstore.json). Android — релизные APK подписываются хранилищем ключей, находящимся в секретах GitHub Actions; подпись Android отделена от Authenticode. Ни одна платформа не описывается как подписанная, пока она таковой не является.
Текущий статус: Linux, Android и браузерное расширение опубликованы и подписаны. Windows публикуется только как неподписанная предварительная сборка: это предрелиз, а не стабильный выпуск, и latest не указывает на него. Неподписанные файлы вызывают предупреждение SmartScreen «Защищён ваш компьютер», и для запуска потребуется нажать «Подробнее» → «Выполнить в любом случае» — это ожидаемо. Перед запуском проверьте хеш SHA-256 по файлу SHA256SUMS.txt. Заявка в SignPath Foundation ещё не подана. macOS не опубликован и не подписан (сертификат ещё не выпущен).
Артефакты для Windows не публикуются как выпуск: конвейер выпуска считает неподписанный настольный выпуск ошибкой, и ни один рабочий процесс в .github/workflows/ не способен его опубликовать. Предварительная сборка собирается и загружается вручную — с машины сопровождающего через форму выпуска GitHub — и помечается как предрелиз, поэтому она явно носит предварительный характер, latest никогда не указывает на неё, а следующий подписанный выпуск заменяет её. Это решение, а не обходной путь. В репозитории есть защитный шлюз (npm run security:release-signing), отклоняющий любой рабочий процесс, способный превратить неподписанную сборку в публикацию, и его итоговый вывод состоит в том, что без секретов подписания публичный настольный выпуск по замыслу невозможен. Добавление исключения для рабочего процесса сделало бы этот вывод ложным ради удобства. Загрузка через браузер сохраняет гарантию. Шлюз описан в Руководстве по подписанию кода и артефактов; пошаговая процедура — в Плане: сайт, затем неподписанная сборка для Windows.
6. Как сообщить о проблеме
Если вы считаете, что артефакт, подписанный сертификатом SignPath Foundation, нарушает эту политику, сообщите об этом на support@signpath.io, указав хеш артефакта и причину. По всем прочим вопросам об этих артефактах используйте security@kalderashield.com; порядок раскрытия описан в SECURITY.md.
При расхождениях приоритет имеет турецкий текст настоящей политики.