Доска почёта ЭЦП

Мир неизбежно становится всё более цифровым. Да и мы с вами — не исключение. Всё больше вещей можно сделать удалённо, не выходя из дома. В том числе достаточно серьёзных, юридически значимых. Спасибо нашему законодательству, которое, в частности приравнивает правомерное подписание при помощи ЭЦП к собственноручной рукописной подписи.

Постепенно, действия с использованием ЭЦП перешли от взаимодействия исключительно между физическим (юридическим) лицом и государством к взаимодействию физических (юридических) лиц друг с другом или даже к взаимодействию сотрудников одного юридического лица внутри организации. Это и подписание договоров, и различных актов, накладных, и прочих документов. Стали появляться информационные системы и интернет-ресурсы, как государственные, так и частные, работающие с ЭЦП и серьёзно облегчающие нам жизнь. За что большое спасибо их создателям и идейным вдохновителям.

Те, кто знает меня или хотя бы читал мои публикации, знает, что я стараюсь держать руку на пульсе информационной безопасности. И в рамках работы в Казахстанской ассоциации автоматизации и робототехники часто приходится сталкиваться с аналогичными вопросами. Так, в ходе обсуждения рабочих вопросов с членами ассоциации, родилась идея посмотреть, а как у нас работают с ЭЦП различные интернет-ресурсы, как государственные, так и частные. Родилась и начала реализовываться коллективными усилиями. Результаты воплощения этой идеи в жизнь я и буду публиковать в течение некоторого времени.

Отдельное спасибо ТОО «Множество» за глубокое погружение в этот процесс. Коллеги, без вас эта идея так и осталась бы идеей.

ВНИМАНИЕ! В процессе изучался лишь заявленный функционал работы интернет-ресурса. Никаких попыток получения несанкционированного доступа, поиска или использования уязвимостей не предпринималось.

Мы взяли все известные нам казахстанские интернет-ресурсы, которые работают с ЭЦП и проанализировали, как именно они это делают.

Шероховатости

На этих интернет-ресурсах был обнаружен ряд замечаний разной степени важности. Мы их разделили на три уровня (от незначительных к критичным): зелёный [🤢], жёлтый [😐], красный [🤬].

Разберём каждую из них (по мере обнаружения).

Ограниченная поддержка носителей ключей ЭЦП

Уровень: ЖЁЛТЫЙ [😐]

Ключи ЭЦП можно хранить в разных местах. Например:
- Файлы на компьютере
- Удостоверение личности гражданина РК
- Казтокен
- JaCarta
- Хранилище ключей Java
- AKEY
- eToken5110
- eToken

Из всех вышеперечисленных, наименее защищённым является хранение ключей ЭЦП в файлах на компьютере. О соответствующем риске говорится в личном кабинете Национального удостоверяющего центра Республики Казахстан при выпуске ЭЦП.

Напомню, закрытый ключ, должен храниться в строжайшем секрете. В идеале, никогда, ни при каких обстоятельствах не покидать устройство, где он был создан и хранится. Об этом подробнее можно прочитать в одной из моих статей из цикла «Цифровая гигиена»: ЭЦП, SMS и много других непонятных слов. Я, например, выпускаю свои ключи ЭЦП (как личные, так и служебные) в своём устройстве Казтокен и, соответственно, храню их там же.

Данное замечание указывается, если при анализе было обнаружено, что интернет-ресурс не позволяет использовать защищённые носители ключей ЭЦП.

Комментарий разработчика:

Если интернет-ресурс использует актуальный API NCALayer, то разработчики могут довольно легко решить данную проблему. Для этого перед вызовом метода подписания данных, необходимо предварительно вызвать getActiveTokens и, в том случае, если он вернул непустой массив, попробовать использовать элемент этого массива при подписании.

Пример подобной обработки приведен в описании JS библиотеки для работы с NCALayer: https://github.com/sigex-kz/ncalayer-js-client

Интерактивная документация по API NCALayer.

Проблемы с разграничением доступа на основании полномочий, указанных в сертификате ключей ЭЦП для юридических лиц

Уровень: ЖЁЛТЫЙ [😐]

В соответствии с Приказом Министра по инвестициям и развитию Республики Казахстан от 9 декабря 2015 года №1187 «Об утверждении Правил проверки подлинности электронной цифровой подписи», одним из шагов проверки подлинности является проверка полномочий лица подписавшего документ (подпункт 7, пункта 6).

При выпуске ключей ЭЦП для сотрудников юридического лица можно указать, какие полномочия имеет владелец выпускаемых ключей (первый руководитель, сотрудник отдела кадров и т.д.).

Соответственно, при выполнении проверки ЭЦП необходимо также проверять и полномочия подписанта согласно данным, записанным в сертификате ключа ЭЦП. Если провести параллель с бумажным миром, вряд ли подпись рядового сотрудника, при отсутствии соответствующей доверенности, будет принята при сдаче отчётности в налоговый орган.

Отсутствие такой проверки хотя бы в одной информационной системе нашей страны ограничивает возможность выпуска организациями сертификатов для таких своих сотрудников, которым не требуется возможность подписывать документы от имени организации, но требуется подписывать документы в качестве сотрудников организации, например, внутренние наряд-задания на производстве.

Как следствие, у компаний пропадает стимул выпускать ключи ЭЦП для сотрудников, кроме как ЭЦП первого руководителя с соответствующими полномочиями и использовать только её. То есть, данная ситуация ограничивает возможности отечественных компаний в использовании ЭЦП для своих бизнес-процессов в рамках программы цифровизации.

Не выполняется проверка статуса отзыва сертификата

Уровень: КРАСНЫЙ [🤬]

В соответствии с Приказом Министра по инвестициям и развитию Республики Казахстан от 9 декабря 2015 года №1187 «Об утверждении Правил проверки подлинности электронной цифровой подписи», одним из шагов проверки подлинности является проверка регистрационного свидетельства на отозванность (подпункт 2, пункта 6).

Для чего производится отзыв сертификата ключей ЭЦП? Например, если сотрудник юридического лица увольняется из организации. Или если владелец ключей ЭЦП подозревает, что посторонние могли получить доступ к закрытым ключам его ЭЦП.

К чему это может привести? Ключом ЭЦП может воспользоваться лицо, не уполномоченное владельцем ЭЦП на совершение действий от его имени (посторонний).

Кроме того, по моему мнению, если проверка ЭЦП совершена с нарушением законодательства РК, данная подпись не является юридически значимой, разумеется, с соответствующими юридическими последствиями.

В соответствии с пунктом 7 того же приказа, техническая реализация проверки подлинности ЭЦП и регистрационного свидетельства возлагается на информационную систему. Т.е. корректная проверка подлинности ЭЦП — обязанность собственника информационной системы.

Некорректная реализация аутентификации

Уровень: КРАСНЫЙ [🤬]

Указывается, если при анализе было обнаружено, что в процессе аутентификации с применением ЭЦП на интернет-ресурсе не участвует закрытый ключ. Корректная реализация аутентификации с использованием сертификатов ключей ЭЦП предполагает подписание случайного блока данных закрытым ключом пользователя. Таким образом подтверждается что субъект, проходящий аутентификацию, имеет доступ к закрытому ключу и может быть идентифицирован по данным в соответствующем сертификате, содержащем его открытый ключ. Некоторые информационные системы пропускают подписание и ограничиваются получением данных из предоставленного сертификата. В некоторых случаях выполняется проверка срока действия сертификата, иногда даже статус его отзыва.

Важно понимать, что сертификат пользователя является общедоступной информацией, сертификаты присутствуют во всех корректно созданных цифровых подписях, то есть злоумышленнику достаточно получить доступ к какому-либо электронному документу пользователя, подписанному его ЭЦП и он получит доступ к сертификату данного пользователя. Открытый ключ ЭЦП также хранится в сертификате.

Потенциально, злоумышленник может войти в систему от имени любого пользователя.

PS: желающие более глубоко погрузиться в вопрос аутентификации по цифровым сертификатам могут почитать соответствующую статью.

Отсутствует информация о сертификации используемой криптографической библиотеки

Уровень: ЖЁЛТЫЙ [😐]

При работе с файловыми хранилищами используется нестандартная криптографическая библиотека. Т.е. вместо взаимодействия в части криптографических операций с NCALayer’ом, интернет-ресурс использует сторонние решения.

Если решение NCALayer уже достаточно устоявшееся и проверенное, то как себя поведут сторонние криптографические библиотеки — неизвестно. Может они работают вполне корректно, а может копируют закрытый ключ пользователя куда-то к себе в облако.

Подписание выполняется сертификатом аутентификации

Уровень: КРАСНЫЙ [🤬]

В соответствии с Приказом Министра по инвестициям и развитию Республики Казахстан от 9 декабря 2015 года №1187 «Об утверждении Правил проверки подлинности электронной цифровой подписи», одним из шагов проверки подлинности является проверка области использования ЭЦП регистрационного свидетельства (подпункт 3, пункта 6).

В частности, сертификаты для аутентификации не подходят для подписания электронных документов. Если электронный документ подписан ключом ЭЦП для аутентификации, то такой документ не имеет юридической силы, т.к. подпись выполнена с нарушением законодательства РК. Возможные последствия, думаю, понятны без дополнительного пояснения.

Используется устаревший API NCALayer

Уровень: ЗЕЛЁНЫЙ [🤢]

Указывается, если интернет-ресурс использует устаревшие вызовы NCALayer, сохранённые для обратной совместимости с Java-апплетом. Разработчиками рекомендуется использовать методы из «Common Bundle».

Сейчас это некритично, но, вероятно, в будущем устаревшие методы использования NCALayer перестанут работать, что может привести к временным ограничениям в работе интернет-ресурса с ЭЦП.

Подмена документа при подписании

Уровень: КРАСНЫЙ [🤬]

Долго думали, как назвать это замечание. В итоге, решили остановиться на том названии, которое вы видите. Суть замечания в том, что пользователь видит на странице информационной системы один документ, а подписывает, по факту, совсем другой, который никогда не видел.

Вне зависимости от того, намеренно это делается или по ошибке, считаем подобное поведение информационной системы недопустимым.

Неполное использование цифрового сертификата при регистрации

Уровень: ЖЁЛТЫЙ [😐]

Указывается, если для регистрации на интернет-ресурсе требуется цифровой сертификат, но его не используют для подписания, а только получают из сертификата данные о субъекте.

Важно понимать, что сертификат пользователя является общедоступной информацией, сертификаты присутствуют во всех корректно созданных цифровых подписях, то есть злоумышленнику достаточно получить доступ к какому-либо электронному документу, подписанному ЭЦП гражданина, и он получит доступ к сертификату данного гражданина. Открытый ключ ЭЦП также хранится в сертификате.

Потенциально, злоумышленник может зарегистрироваться в системе от имени других граждан.

Неполная реализация аутентификации по цифровым сертификатам

Уровень: ЖЁЛТЫЙ [😐]

Указывается, когда при аутентификации интернет-ресурс выполняет запрос на подписание случайного блока данных закрытым ключом пользователя, но не использует результат проверки подписи.

Важно понимать, что при таком подходе нельзя утверждать, что аутентификация выполняется при помощи ключей ЭЦП.

Процесс аутентификации подвержен атаке «повторное воспроизведение»

Уровень: КРАСНЫЙ [🤬]

Указывается, если аутентификация по цифровым сертификатам (при помощи ЭЦП) реализована так, что пользователи всегда подписывают один и тот же фиксированный блок данных. В том случае, если злоумышленник сможет перехватить этот подписанный пользователем блок данных при отправке его на сервер, то он сможет повторно использовать его для того, чтобы входить в систему от имени пользователя.

Рекомендуется для каждой попытки аутентификации генерировать для подписания блок случайных данных, вести их учет на стороне сервера таким образом, чтобы каждый блок мог быть использован только один раз.

Интернет-ресурсы

По состоянию на 25 ноября было проанализировано 16 интернет-ресурсов (в порядке проведения анализа):
- egov.kz
- elicense.kz
- cabinet.salyk.kz
- office.sud.kz
- infokazakhstan.kz
- newcab.kazpatent.kz
- doculite.kz
- ww2.подпиши.онлайн
- enbek.kz
- enpf.kz
- zakup.nationalbank.kz
- ofd1.kz
- org.oofd.kz
- is.ncste.kz
- zakup.sk.kz
- vmp.gov.kz

Проанализировав вышеперечисленные интернет-ресурсы, мы пошли дальше и будем публиковать постепенно статьи по следующим (ссылки будут появляться по мере выхода статей):
- enpf-otbasy.kz
- idocs.kz
- aisoip.adilet.gov.kz
- esf.gov.kz
- goszakup.gov.kz
- infonpo.gov.kz
- esalmaty-abonent.alseco.kz
- datcom.kz
- alm.dmed.kz
- vqb.gov.kz
- eatyrau.kz
- 1cb.kz

Что именно на каждом из интернет-ресурсов было обнаружено, обсудим отдельно. Следите за публикациями. Подписывайтесь на телеграм-канал.

Если вы знаете какой-либо интернет ресурс, работающий с казахстанской ЭЦП, который мы пропустили, дайте знать.

Vladimir Turekhanov ・ November 29, 2020

 

вернуться