Совместим с NCALayer
Слушает тот же wss://127.0.0.1:13579 и понимает тот же протокол, поэтому сайтам ничего менять не нужно.
Нативная замена NCALayer для Windows
NativeNCA входит и подписывает на eGov, в интернет-банках и других казахстанских сервисах ключом ЭЦП НУЦ РК. Сайты работают с ней так же, как с NCALayer, а подпись вы подтверждаете лицом, отпечатком или PIN-кодом Windows Hello.
Почему не NCALayer
Он много лет подписывал документы за весь Казахстан, и спасибо ему за это. Сравните, как проходит одна подпись в нём и в NativeNCA: нажмите кнопку в любом из окон.
Это пародия. Совпадения с реальностью не случайны.
| Коротко | NCALayer | NativeNCA |
|---|---|---|
| Java | Везёт с собой целую Java-машину и держит её в памяти | Не нужна. Один файл на .NET, сидит в трее |
| Пароль от ключа | Найти файл .p12 и ввести пароль. На каждую подпись | Один раз при добавлении ключа, дальше Windows Hello |
| Выбор ключа | Угадать, какой из GOST512_…p12 нужный |
Понятные имена и фото: «Личный eGov», «ТОО Шанырак» |
| Сертификат для 127.0.0.1 | Один и тот же закрытый ключ на всех компьютерах | Свой на каждом компьютере, ключ центра сертификации уничтожен |
| Исходный код | Закрыт, проверить нельзя | Открыт на GitHub под GPL-3.0, можно собрать самому |
| Внешний вид | Привет из эпохи Java-апплетов | Fluent Design, Mica, светлая и тёмная темы |
Возможности
Ключи .p12 добавляются один раз. Потом на каждый запрос сайта появляется окно, где видно, кто просит подпись, что именно подписать и каким ключом.
Слушает тот же wss://127.0.0.1:13579 и понимает тот же протокол, поэтому сайтам ничего менять не нужно.
СТ РК ГОСТ Р 34.10-2015 (512 бит) и RSA от НУЦ. Подписи CMS/CAdES и XML сверены с эталонными подписями Kalkan.
Подпись подтверждается лицом, отпечатком пальца или PIN-кодом. Пароль от ключа вводится один раз, когда вы добавляете ключ.
Ключи и пароли шифруются Windows DPAPI. По желанию их дополнительно закрывает ключ Windows Hello из TPM.
В окне подтверждения показаны домен сайта, сами данные и ключи, которые подходят для запроса.
Ключу можно назначить фото или логотип компании и кадрировать его прямо в программе, чтобы не путать ключи.
С меткой CAdES-T подпись можно проверить и после того, как срок сертификата закончится.
Ставится без прав администратора. О новой версии программа сообщит сама и обновится, когда вы нажмёте «Обновить». Предыдущую версию можно вернуть.
Fluent Design, Mica, тёмная тема, значок в трее и запуск вместе с Windows. Открывается сразу, без заставки.
Как проходит подпись
eGov или банк обращается к 127.0.0.1:13579, как раньше к NCALayer.
Домен, содержимое запроса и подходящие ключи. Можно выбрать другой ключ или отменить.
Ключ расшифровывается в памяти, данные подписываются на вашем компьютере.
Ему уходят подпись и открытый сертификат. Закрытый ключ остаётся на компьютере.
Безопасность
Код открыт под лицензией GPL-3.0, устройство защиты подробно описано в README. Здесь собрано главное.
Криптография, хранилище, протокол и обновления лежат на GitHub. Релизы собирает GitHub Actions из этого же кода, к каждому архиву приложена контрольная сумма SHA-256.
Браузеру нужен сертификат для 127.0.0.1. NativeNCA выпускает его своим центром сертификации и сразу уничтожает ключ этого центра. Ограничения имён разрешают только локальные адреса.
Ключи и пароли зашифрованы DPAPI для вашей учётной записи. В защищённом режиме их дополнительно шифрует AES-256-GCM с ключом из TPM, который открывается только через Windows Hello.
Каждый архив релиза подписан ключом проекта. NativeNCA ставит обновление, только если подпись верна для этой версии и архитектуры, а версия новее установленной. Файлы скачиваются только с github.com по HTTPS. Предыдущая версия сохраняется для отката.
NativeNCA слушает только 127.0.0.1: из локальной сети и интернета к нему не подключиться. Подпись создаётся на компьютере, закрытый ключ никуда не отправляется.
Разработчику программа ничего не отправляет. В интернет она обращается в двух случаях: к GitHub, чтобы проверить обновления (это можно выключить), и к службе меток времени НУЦ, если метки включены.
Скриншоты
Интерфейс собран на Fluent Design. Тема скриншотов переключается вместе с темой сайта.
Все ключи в одном списке: названия, фото, срок действия и назначение. Рядом сведения о сертификате, ИИН и издатель.
Установка
Кнопка ниже скачает версию для вашего процессора. Распакуйте архив в любую папку.
Запустите NativeNCA.exe и нажмите «Установить». Права администратора не нужны, программа появится в меню «Пуск».
Windows один раз спросит про сертификат для браузеров, ответьте «Да». Затем выберите файл .p12 от НУЦ и введите пароль.
Как обычно. Вместо NCALayer появится окно NativeNCA. Если NCALayer запущен, программа предложит его закрыть.
Можно и без установки: «Запустить без установки» откроет программу прямо из папки с архивом, но такая копия не обновляется сама.
Вопросы
NativeNCA бесплатная, без рекламы и телеметрии. Донаты идут на совместимость с новыми сайтами, поддержку аппаратных носителей и сертификат для подписи программы, после которого SmartScreen перестанет предупреждать при запуске.
Распакуйте архив, запустите NativeNCA.exe и нажмите «Установить». Если SmartScreen спросит, нажмите «Подробнее» и «Выполнить в любом случае».