NativeNCA
English | Русский | Қазақша · oss.northbound.sh/NativeNCA
NativeNCA — нативная замена NCALayer для Windows. С ней можно входить и подписывать документы на eGov, в интернет-банках и других казахстанских сервисах ключом ЭЦП НУЦ РК. Java не нужна, вводить пароль от ключа каждый раз тоже не нужно.
Сайты общаются с NativeNCA так же, как с NCALayer, поэтому на их стороне ничего менять не надо. Вы один раз добавляете свои ключи .p12, а дальше на каждый запрос появляется понятное окно подтверждения: какой сайт спрашивает, что он хочет подписать и каким ключом. Подтверждаете через Windows Hello.
Зачем ещё один NCALayer
NCALayer со своей задачей справляется, но это Java-приложение: оно долго запускается, держит в памяти JVM, на каждую операцию просит выбрать файл ключа и ввести пароль и выглядит чужеродно в современной Windows. NativeNCA — небольшое .NET-приложение. Оно живёт в трее, запускается мгновенно и хранит ключи в зашифрованном хранилище, так что подпись превращается в один клик и прикосновение пальца.
Возможности
- Совместимость с NCALayer. Слушает
wss://127.0.0.1:13579 и реализует модули kz.gov.pki.knca.commonUtils и kz.gov.pki.knca.basics: подписи CMS/CAdES и XML, несколько документов за раз, сведения о сертификате.
- Ключи ГОСТ и RSA от НУЦ. Поддерживаются ключи СТ РК ГОСТ Р 34.10-2015 (512 бит) и RSA, выданные НУЦ РК. Криптография реализована на управляемом коде поверх BouncyCastle и сверена с подписями, созданными библиотекой Kalkan самого НУЦ. Kalkan SDK и Java не требуются.
- Хранилище ключей. Ключи и, по желанию, пароли от них хранятся зашифрованными через Windows DPAPI. Ключам можно давать понятные имена («Личный eGov», «ТОО Шанырак») и менять пароль.
- Фото ключей. Каждому ключу можно назначить фото или логотип компании и кадрировать его прямо в приложении. Так нужный ключ сразу видно в списке и в окне подписи.
- Windows Hello. Каждая подпись может требовать лицо, отпечаток пальца или PIN-код. В дополнительном защищённом режиме само хранилище шифруется ключом Windows Hello из TPM: без вас ключи не расшифрует даже программа, запущенная от вашего имени.
- Метки времени. К CMS-подписям можно добавлять доверенную метку времени от службы НУЦ (CAdES-T), чтобы подпись оставалась проверяемой и после окончания срока сертификата.
- Сделано для Windows 11. Fluent Design, Mica, светлая и тёмная темы, значок в трее, запуск вместе с Windows.
- Казахский, русский и английский. Язык берётся из Windows (на казахской и русской Windows — свой, в остальных случаях английский) или выбирается в параметрах. Он меняется сразу, без перезапуска.
Требования
- Windows 10 версии 2004 или новее либо Windows 11 (x64 или ARM64).
- NCALayer не нужен. Если он установлен, его нельзя запускать одновременно с NativeNCA: сайты ждут обе программы на одном и том же порту. Если NCALayer запущен, NativeNCA предложит закрыть его и отключить его автозапуск.
- Windows Hello (PIN-код, отпечаток или лицо) желателен, но не обязателен.
Как начать
- Скачайте с сайта или со страницы Releases архив для своего процессора (
win-x64 подходит большинству компьютеров, win-arm64 — для ARM) и распакуйте его.
- Запустите
NativeNCA.exe и нажмите Установить. NativeNCA установится только для вашей учётной записи, без прав администратора, в папку %LOCALAPPDATA%\Programs\NativeNCA и появится в меню «Пуск» и в списке установленных приложений. Запустить без установки запускает программу прямо из текущей папки, но такая копия не обновляется сама.
- При первом запуске программа объяснит, зачем нужен сертификат для браузеров, и установит его. Windows один раз покажет предупреждение системы безопасности об установке сертификата — ответьте Да. NativeNCA появится в трее и начнёт принимать запросы сайтов.
- Нажмите Добавить ключ, выберите файл
.p12 от НУЦ, введите пароль и дайте ключу название. Оставьте включённым Сохранить пароль в защищённом Vault, если хотите подписывать только через Windows Hello.
- Откройте eGov или свой банк и войдите как обычно. Вместо NCALayer появится окно подтверждения NativeNCA.
Обновление и удаление
- Установленная NativeNCA проверяет новые версии на GitHub при запуске и каждые шесть часов. Проверку можно выключить в параметрах, в разделе Обновления. Когда выходит новая версия, в окне появляется баннер, а Windows один раз показывает уведомление. Кнопка Обновить скачивает архив, проверяет его и за несколько секунд перезапускает NativeNCA. Ключи и параметры сохраняются.
- Каждый архив релиза подписан ключом проекта. NativeNCA устанавливает обновление, только если подпись верна именно для этой версии и архитектуры процессора, а версия новее установленной. Всё остальное отклоняется. Файлы загружаются только с github.com по HTTPS.
- Предыдущая версия сохраняется. Если после обновления что-то перестало работать, нажмите в параметрах Вернуть предыдущую версию. Версия, с которой вы вернулись, больше не предлагается автоматически, но её найдёт кнопка Проверить обновления.
- Удалить программу можно в параметрах NativeNCA (Удалить NativeNCA) или в «Параметры Windows → Приложения → Установленные приложения». По умолчанию ключи и параметры остаются в
%APPDATA%\NativeNCA на случай повторной установки; отметьте флажок, чтобы удалить их вместе с сертификатом для браузеров. Исходные файлы .p12 не затрагиваются.
Как это работает
Когда сайт просит подпись, NativeNCA показывает домен, подписываемые данные и подходящие ключи. После подтверждения ключ расшифровывается в памяти, данные подписываются на вашем компьютере, а сайту уходят только подпись и ваш открытый сертификат. Закрытый ключ компьютер не покидает.
Хранение:
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗