bcryptoregulatory / skzi-requirements Goto Github PK
View Code? Open in Web Editor NEWRequirements for certification of cryptographic components in Belarus
Home Page: https://oac.gov.by/activity/technical-and-cryptographic-information-protection
Requirements for certification of cryptographic components in Belarus
Home Page: https://oac.gov.by/activity/technical-and-cryptographic-information-protection
В столбце с требованиями к криптографическим алгоритмам средства указывают только алгоритмы, которые предоставляются пользователю в качестве сервиса: в случае криптографического токена алгоритмы АШ и АИ1 пользователю не предоставляются и носят внутренний служебный характер
В ряде маршрутов используется связка АП2, АХ1 или АХ2
. Стоит рассмотреть вопрос целесообразности включения АХ1 или АХ2
:
В профилях требований к СКЗИ линейного шифрования явно допущена опечатка: [ПФ4] или УК5
.
В предложениях и вопросах по требованиям к СКЗИ неоднократно был поднят вопрос об отсутствии программно-аппаратных средств выработки ЭЦП.
Пояснение: в качестве программно-аппаратных средств выработки ЭЦП предлагается использовать СКЗИ класса криптографические токены.
Данная позиция вызвала ряд вопросов, поэтому предлагается для предметной критики/обсуждения здесь.
Для средств линейного шифрования строку с требованиями
УГ1 или УГ2, ПФ1 или УК5, УС2, УСЗ или УС4, [ПФЗ], [ПФ4]
предлагаем заменить на строку
УГ1 или УГ2, ПФ1 или ПФЗ или ПФ5 или ПФ6 или ПФ7 или УК5, УС2, УСЗ или УС4.
Обоснование.
По текущим требованиям в средстве линейного шифрования одновременно может использоваться ПФ1 (формирование общего ключа по протоколам BSTS и BMQV) и, например, ПФ4 (протокол DHE_PSK_BIGN). Не совсем понятно, почему при этом ПФ1 должен быть обязательно, а ПФ4 – необязательно. Более того, протокол ПФ4 не требует сертификатов и их проверки (согласно СТБ 34.101.65), а в указанной строчке сертификаты и их проверка обязательна (указано УС2, УСЗ или УС4). В то же время протокол ПФ5 требует использования сертификатов. Также предлагается разрешить использование протоколов ПФ6 (алгоритм DHE_BIGN согласно п. B.2.5.1 СТБ 34.101.65-2014) и ПФ7 (алгоритм DHT_BIGN согласно п. B.2.5.2 СТБ 34.101.65-2014), которые требуют использования сертификатов и их проверки. В связи с вышесказанным предлагаем писать:
УГ1 или УГ2, ПФ1 или ПФЗ или ПФ5 или ПФ6 или ПФ7 или УК5, УС2, УСЗ или УС4.
Поскольку одним из приоритетов при переработке таблиц является сокращение их объёма, выносятся на рассмотрение следующие предложение (которые следует рассматривать как независимые и требующие доработки и обсуждения):
Средства криптографической защиты информации | Требования к криптографическим алгоритмам | Требования к криптографическим протоколам и управлению ключами |
---|---|---|
Средства предварительного шифрования | (31 (пп. 6.3 или 6.4 или 6.5), 31 (6.6) или 47 (6.1)) или 31 (6.7) | *27 (5.6) или 47 (6.2 или 6.3), 31 (7.2) или 45 (7.2, Б1 или Б2 или Б3, Д) |
Относительно п.4 запрашиваются предложения по обозначениям, упрощающим восприятие таблиц.
В СТБ 34.101.79 BPACE не определяется, BPACE описан в СТБ 34.101.66,
Ранее в #9 уже обсуждался профиль с ПФ5, но обсуждение было закрыто по непонятным нам причинам. Считаем, что обсуждение стоит продолжить.
Сейчас имеется профиль
УГ1 или УГ2, ПФ1 или УК5, УС2, УСЗ или УС4, [ПФЗ], [ПФ5]
Считаем, что такой профиль некорректен по следующей причине.
По текущим требованиям ПФ5 нельзя использовать без ПФ1 (BSTS или BMQV) или УК5 (транспорт ключа). Но, например, в средствах, реализующих vpn с криптонаборами DHE, не нужны протоколы ПФ1 или транспорт ключа УК5.
Предлагаем писать ПФ5 через ИЛИ:
УГ1 или УГ2, ПФ1 или ПФ5 или ...
Требования, изложенные в 77 приказе, выглядят критически сложно для восприятия, поэтому необходимо разработать программу-ассистент для составления заявок на сертификацию СКЗИ.
Требование УЗ2 включает СТБ 34.101.78-2019 (пп. 11.2-11.5 раздела 11). Если посмотреть на п. 11.1 СТБ 34.101.78-2019 то можно видеть, что требование по разделению секрета для ключевого контейнера является условным, так как есть два варианта
Чтобы сохранить стойкость личного ключа при хранении, контейнер должен дополнительно защищаться аппаратно. Например, контейнер может храниться внутри устройства, доступ к объектам которого осуществляется только после предъявления пароля, причем доступ блокируется после нескольких неверных попыток ввода пароля. Для сравнения: блокировать ввод пароля при прямом доступе к контейнеру нельзя
2 . Защита контейнера с использованием разделения секрета
Если дополнительная защита контейнера затруднена, то вместо низкоэнтропийного
пароля следует использовать высокоэнтропийный ключ... Ключ защиты следует
разделить на несколько частичных секретов с помощью алгоритма, определенного в СТБ
34.101.60
Текущая редакция требований является безусловной - выбрасывает п. 1.
По тексту п.11.1 СТБ 34.101.78-2019 применение разделения секрета является условным (Если ... то
), данную условность следует отразить в требованиях.
Как вариант, УЗ1, УЗ2 заменить на УЗ - СТБ 34.101.78-2019 (пп. 11.1-11.5 раздела 11)
Требования по форматам средств выработки ЭЦП и токенов должны совпадать: требование [Ф2] для средств выработки ЭЦП нет, следовательно не должно быть и у токенов
Считаем, что требования "Средства выработки ЭЦП" и "Средства проверки ЭЦП" избыточны, в виду того, что сертификаты могут не использоваться при построении прикладных систем. Кроме того в Законе об электронном документе и в СТБ 34.101.45 требования к составу ЭЦП (выработка, проверка, генерация личных и открытых ключей подписи) не предусматривают средства управления открытыми ключами.
Предлагаем исключить из требования к Средствам линейного шифрования при использовании схемы с Требованиями к криптографическим протоколам и управления ключами "УГ1 или УГ2" исключить из Требований к криптографическим алгоритмам "АХ1 или АХ2", оставив только требование "АШИ".
Считаем необходимым строго установить требования по использованию физического источника шума в программно-аппаратных средствах защиты информации и смягчить данные требования только лишь в программных продуктах. Генерация личных ключей (секретных параметров ДПСЧ) должна производиться только с использованием сертифицированных программно-аппаратных средств.
Ссылка на СТБ 34.101.21 в полном объеме включает ссылку на иностранные криптографические алгоритмы
Название "Средства генерации личных и открытых ключей для средств ЭЦП" не очень удачно. Во-первых, "средства для средств". Во-вторых, пары ключей могут использоваться не только в алгоритмах ЭЦП, но еще и в алгоритмах транспорта (УК5), в протоколах (ПФ1).
Предлагаю сократить: ""Средства генерации личных и открытых ключей".
Предлагается в таблицу 1 в дополнение к ПФ4 (алгоритм DHE_PSK_BIGN) и ПФ5 (алгоритм DHT_PSK_BIGN) добавить новые механизмы формирования общего ключа: ПФ6 – формирование общего ключа по алгоритму DHE_BIGN согласно СТБ 34.101.65-2014 (п. B.2.5.1); ПФ7 - формирование общего ключа по алгоритму DHT_BIGN согласно СТБ 34.101.65-2014 (п. B.2.5.2).
Обоснование.
Многие разработчики реализовали VPN с поддержкой национальной криптографии. Для VPN есть внутренний стандарт, который определяет, что формирование общего ключа и аутентификация сторон должна выполняться таким же образом, как и в протоколе TLS. При этом другие механизмы VPN отличаются от TLS. В связи с этим, для сертификации VPN необходимо в дополнение к алгоритмам DHE_PSK_BIGN и DHT_PSK_BIGN добавить механизмы, соответствующие алгоритмам формирования общего ключа DHE_BIGN и DHT_BIGN.
Требуется актуализация требований.
Средства криптографической защиты информации | Требования к криптографическим алгоритмам | Требования к криптографическим протоколам и управлению ключами | Требования безопасности | Требования к форматам данных |
---|---|---|---|---|
Терминал взаимодействия с криптографическим токеном | АШ, АИ1 | УГ, УК1, ПФ2, УС7 | Б1, Б2 |
К УЦ и РЦ будут предъявляться требования определенные Приказом ОАЦ от 29.11.2013 №89
Дискуссия в #43 показала на неполноту классификации средств ЭЦП.
Имеется классификация
и дискуссия #43 показала что есть
Действительно, полная классификация средств ЭЦП включает (по увеличению надежности):
В данной классификации в планируемых требованиях выпадает второй (по порядку и по надежности) класс средств ЭЦП.
Для исправления данной проблемы нужно
(АШ, АИ1 или АИ2) или АШИ | УГ, УК1, УЗ3 | Б2 |
УЗ3 = СТБ 34.101.78 п 11.1
Введение отдельного класса может закрыть дополнительные аспекты криптографической защиты информации, так отчуждаемые носители ключевой информации кроме средств ЭЦП могут применяться в средствах предварительного и линейного шифрования, средствах генерации ключей
Некоторые ячейки в таблице 2 очень трудно понять. Это паззлы. По-видимому, ячейки соответствуют каким-то конкретным СКЗИ каких-то конкретных разработчиков. По-видимому, разработчики закодировали функционал своих средств, не задумываясь о декодировании. А декодирование может оказаться непростым делом.
Вот ближайший пример. Средство предварительного шифрования: AШ...
и УГ1 или УГ2, ПФ1 или УК5, УС2, УСЗ или УС4
. Можно понять, что получатель сообщения генерирует открытый ключ (УГ1 или УГ2
), погружает его в сертификат (УС2
) и в ИОК (УСЗ или УС4
). Отправитель сообщения генерирует сеансовый ключ (УГ1 или УГ2
), зашифровывает на нем сообщение (АШ...
), а сеансовый ключ зашифровывает на открытом ключе получателя (УК5
). Все хорошо, но что означает ПФ1
? ПФ1
-- это онлайн-протокол, в котором выполняется несколько разнонаправленных пересылок между сторонами. Но у нас средство предварительного шифрования -- отправитель может ходить сразу, не ожидая ответа от получателя. Возможно речь идет о том, что стороны предварительно согласовывают сеансовый ключ с помощью ПФ1
, сохраняют его, а затем используют всякий раз при отправке сообщений друг другу. Это только догадка, логика решения не до конца понятна. Если догадка все-таки верна, то решение представляется спорным, поскольку требуется хранить сеансовый ключ на протяжении длительного времени.
Предлагается:
(АШ, АИ1) или (АШ, АИ2) или АШИ
и есть ячейка (АШ, АИ1) или (АШ, АИ2) или АШИ, ФХ1 или ФХ2
. Дописка ФХ1 или ФХ2
явно непрофильная, она касается конкретного средства. Исключить. Оставить только (АШ, АИ1) или (АШ, АИ2) или АШИ
. Или даже (АШ, АИ1 или АИ2) или АШИ
.К средствам предварительного шифрования выдвигается [Ф2], которое связано только с шифрованием сообщений, обмениваемых с компонентами ИОК, что не входит в область применения средств предварительного шифрования
Встаёт вопрос о статусе требований Ф1 и Ф3, в связи с тем что они:
Выходит, что в случае, когда они обязательны (то есть в рамках ИОК), становятся актуальными требования Ф2 и Ф4, поглощающие их.
предлагается: убрать Ф1 и Ф3 и передать их названия механизмам Ф2 и Ф4 соответственно (.т.к. они более ёмкие)
Требования представлены в виде логических выражений, связанных кванторами И (запятая) и ИЛИ. Одно логическое выражение может быть частью другого (вложение через круглые скобки). Логические выражения, окаймленные квадратными скобками, могут опускаться. Элементарные логические выражения -- это требования из таблицы 1. Вот такой формализм.
Если мы имеем дело с логическими выражениями, то естественно поставить вопрос об их упрощении. Чем проще требования, тем лучше для всех.
Рассмотрим выражение УС2 или (УС2, УС5)
из таблицы 2. Его можно преобразовать в УС2, [УС5]
. Что означает [УС5]
? Что можно реализовать УС5
. А можно и не реализовывать. Требование УС5
фактически не выдвигается. Его можно исключить и тогда УС2 или (УС2, УС5)
упрощается до УС2
.
Я привел пример многоступенчатого упрощения. Других подобных примеров в таблице 2 я не нашел. Но с опциональными требованиями нужно навести порядок. Формально это не требования, и их можно исключить. Тогда почти весь последний столбец пропадает (кстати, требования по форматам неожиданно перестали выдвигаться). Видимо все-таки не таков был замысел. Наверное каждое опциональное требование следует сопроводить пометкой о том, при каких условиях он становится обязательным.
Предлагаем при генерации личных ключей включить в обязательном порядке только требование УГ1 (псевдослучайный датчик в это требование включен в соответствии с п.5.6 СТБ.34.101.27), а УГ2 исключить из требований, так как считаем, что с использованием только псевдослучайного датчика сгенерировать криптографически стойкий ключ невозможно.
Для средств линейного шифрования предлагается добавить в профиль следующую строку:
Требования к криптографическим алгоритмам: (АШ, АИ1) или (АШ, АИ2) или АШИ
Требования к криптографическим протоколам и управлению ключами: *УГ1 или УГ2, ПФ4, [УК1]
Требования безопасности: Б1 или Б2
Обоснование.
В текущих сертифицированных ОАЦ средствах канального шифрования нашей компании реализованы именно вышеуказанные стандарты. Передаваемые по каналу данные шифруются и для них обеспечивается контроль целостности, поэтому необходимо (АШ, АИ1) или (АШ, АИ2) или АШИ. УГ1 или УГ2 требуются для формирования эфемерных ключей. Протокол ПФ4 необходим для формирования общего ключа и аутентификации сторон. Алгоритм УК1 необходим для формирования по общему ключу ключа шифрования и ключа имитозащиты, а также для преобразования ключей шифрования и имитозащиты после шифрования определенного объема данных. Для cредств VPN формирование ключей шифрования и имитозащиты и их смена производится по внутреннему стандарту (как в TLS) без использования УK1 (в частности, ключи шифрования и имитозащиты формируются по общему ключу с использованием алгоритма генерации псевдослучайных чисел brng-hmac, а обновление ключей производится путем повторного выполнения протокола ПФ4). Для секретных ключей нет стандартизованных форматов криптоконтейнера (есть только для личных ключей и частичных секретов), поэтому требования к криптоконтейнеру не включаются. Согласно СТБ 34.101.65 протокол ПФ4 не требует сертификатов и их проверки, поэтому для данного типа средства канального шифрования требования к сертификатам (УС) не включаются.
На данный момент существует два маршрута требований к криптографическим протоколам и управлению ключами для криптографических токенов:
УГ1 или УГ2, ПА1, ПИ, УК1, УК2, УКЗ, УК4, УК5, УС1, УС2
УГ1 или УГ2, ПА1, ПА2, ПИ, УК1, УК2, УКЗ, УК4, УК5, УС1, УС2, УС7
Первый вариант создан как замена программно-аппаратным средствам выработки ЭЦП (см issue #4), а второй - для ID карт, и по этой причине имеет дополнительные требования ПА2
и УС7
.
предложение: в соответствии с issue #2 уменьшить "профильность" маршрутов и объединить их в УГ1 или УГ2, ПА1, ПИ, УК1, УК2, УКЗ, УК4, УК5, УС1, УС2, [ПА2, УС7]
и сместить акцент в логике использования обозначения [ ] с "необязательности требования" на "способ сокращения ветвления маршрутов"
Предлагается при использовании защиты ключа по паролю, зашифрованный ключ хранить с соблюдением формата в соответствии с СТБ 34.101.23 п. 11
Для средств линейного шифрования строку с требованиями
УГ1 или УГ2, ПФЗ, УК1, У31, У32
предлагаем заменить на строку
УГ1 или УГ2, ПФЗ, УК1, У31
Обоснование.
У32 определяет требования к формату и механизмам защиты ключевого контейнера. При этом согласно СТБ 34.101.78-2019 (пп. 11.2-11.5 раздела 11) и СТБ 34.101.45-2013 (приложение Е) в ключевом контейнере может храниться личный ключ алгоритмов bign или частичный секрет алгоритма bels, который используется для защиты личного ключа. Протокол ПФЗ основан на использовании личного и открытого ключа bake, поэтому формат У32 не может использоваться: согласно СТБ 34.101.78-2019 криптоконтейнер может использоваться для хранения ключей c идентификатором BignAlgorithmIdentifier или BelsAlgorithmIdentifier).
В средствах линейного шифрования второй профиль предлагаем изложить в следующей редакции: УГ1 или УГ2, ПФ1 или ПФ3 или УК5, AX1 или AX2, УС2, УС3 или УС4. Необязательные криптографические механизмы предлагаем не указывать и от применения квадратных скобок отказаться.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.