Политика подписи кода
Как собираются выпуски PoE2 Oracle, кто их одобряет и как проверить скачанный файл.
Пока без подписи. Установщик и сама программа ещё не подписаны цифровой подписью, поэтому Windows может о них предупреждать. Проект хочет получить подпись SignPath Foundation — она бесплатно подписывает программы с открытым исходным кодом; если это случится, здесь будет сказано. Пока подписи нет, сверяйте скачанный файл с контрольными суммами, как описано ниже.
Как собираются выпуски
- Каждый выпуск собирается из исходного кода в открытом репозитории github.com/mttzzz/poe2-oracle — средствами GitHub Actions на машинах GitHub, когда сопровождающий ставит тег версии. Сценарий сборки, release.yml, лежит в том же репозитории: как собирается выпуск, может прочитать любой.
- Из прошлых сборок ничего не переносится: кэша сборки нет, версия компилятора Rust закреплена, и каждый выпуск компилируется заново из исходников с его тегом.
- Сборка, подпись и публикация — отдельные шаги, и каждый ключ доступен только тому шагу, которому он нужен. Выпуск сначала появляется черновиком: сопровождающий ставит и проверяет его, а публикует вручную.
Кто одобряет
У PoE2 Oracle один сопровождающий — mttzzz, и все три роли у него:
- Авторы (committers) меняют исходный код без проверки: mttzzz.
- Проверяющие (reviewers) проверяют каждое изменение от других людей, например pull request, прежде чем его принять: mttzzz.
- Одобряющие (approvers) одобряют подпись каждого выпуска: mttzzz.
Для входа в GitHub он использует многофакторную аутентификацию, в SignPath будет использовать тоже.
Как проверить скачанный файл
К каждому выпуску приложены ещё два файла: SHA256SUMS с контрольной суммой
SHA-256 установщика и SHA256SUMS.sig — подпись Ed25519 под этим файлом, сделанная
ключом выпусков PoE2 Oracle. Пользоваться ключом может только сценарий выпуска, а его
открытая половина вшита в программу: прежде чем поставить обновление, программа проверяет и
подпись, и сумму и отказывается от обновления, которое не прошло хотя бы одну проверку.
Чтобы проверить скачанный установщик:
- Возьмите
SHA256SUMSиSHA256SUMS.sigвыпуска: сhttps://oracle.pushka.biz/download/v<версия>/, пока это последний выпуск, или со страницы выпуска на GitHub. - В PowerShell, в папке с установщиком, выполните
Get-FileHash .\PoE2-Oracle-Setup-<версия>.exe. Сумма должна совпасть со строкой установщика вSHA256SUMS; регистр букв не важен. - Чтобы убедиться, что
SHA256SUMSподписан ключом выпусков, выполните в копии исходного кода, с установленным Rust:cargo run -p release-sign -- verify SHA256SUMS SHA256SUMS.sig "$(cat crates/auto-update/release-signing-key.pub)"
Подробнее — в политике безопасности репозитория.
Конфиденциальность
PoE2 Oracle ничего не собирает о вас и вашей игре. Он обращается к сайту торговли Path of Exile, серверу GGG с картинками и данными биржи, poe2scout и к oracle.pushka.biz за обновлениями. oracle.pushka.biz считает установки, запуски и обновления анонимными числами, не храня ни адресов, ни идентификаторов; сообщение разработчику уходит, только когда вы его отправляете. Установщик говорит об этом на первой странице, где галочка «Обновлять автоматически» выключает обновления, а с ними и подсчёт; позже это можно поменять в настройках. Что и куда уходит, подробно — в политике конфиденциальности; что считается — в разделе «Что считает сервис».
У сервисов, к которым обращается программа, свои политики конфиденциальности: у Grinding Gear Games — для сайта торговли и сервера GGG, и у poe2scout.