Прочитайте важную часть.
Шифрование, которое нельзя проверить, — это обещание, а не свойство. Вот что именно можно проверить сегодня и что на подходе.
Проверяемо сегодня: просмотрщик
Страница, которую открывает каждый получатель, — это единственный самодостаточный файл: без фреймворков, без вывода сборщика, без внешних скриптов. Откройте любую ссылку на записку, нажмите «Просмотр исходного кода» — и вы читаете всю программу, которая работает с ключом из вашей ссылки: вывод ключа WebCrypto, расшифровку AES-256-GCM, строгую Content-Security-Policy, запрещающую ей общаться с чем-либо, кроме этого сервера. Это не замена репозиторию, но означает, что код, касающийся ваших секретов, публичен в самом буквальном смысле на каждой записке.
Скучно намеренно
BurnPony не изобретает криптографию. Он использует AES-256-GCM для запечатывания, HKDF-SHA256 для вывода ключей и PBKDF2-HMAC-SHA256 с 600 000 итераций для парольных фраз — стандартные примитивы, применённые стандартно. Реализация на Swift в приложении и реализация на JavaScript в просмотрщике проверяются друг против друга независимо сгенерированными тестовыми векторами, так что обе кодовые базы обязаны совпадать байт в байт, чтобы вообще работать.
Репозиторий
Он существует, и эта страница теперь на него указывает: github.com/norsehorse-dev/BurnPonyiOS — полное приложение для iOS, сервер-ретранслятор, просмотрщик вместе с частями, из которых он собран, межреализационные тестовые векторы и руководство по самостоятельному хостингу, под лицензией Apache 2.0, в том же аккаунте, где размещены другие опубликованные ядра семьи, включая PGPonyCore и RelayPonyCore. Точный побайтовый формат описан как протокол v1, а поставляемый просмотрщик доказуемо идентичен своему опубликованному исходнику: scripts/assemble_viewer.py --verify в репозитории проверяет его байт в байт.
Почему такой порядок
- Сначала получатели: код, которому получатели должны доверять — просмотрщик — это часть, проверяемая с первого дня.
- Утверждения, которые можно проверить: конструкция с ключом во фрагменте означает, что «сервер не может читать записки» проверяемо снаружи: откройте вкладку сети и увидите, что фрагмент никогда не покидает браузер.
- Честность важнее видимости: сайт говорит «запланировано», пока репозитории не появятся. Когда они появятся, на этой странице будут ссылки и условия лицензии.
А пока
Вопросы или находки по безопасности приветствуются уже сейчас, с репозиторием или без: NorseHorse@norsehor.se, зашифровано через PGP-ключ, если хотите. страница безопасности документирует всю модель открыто.