Размышления о корректности встраивания криптосредств

Размышления о корректности встраивания криптосредств ЭЦП
Содержание
  1. Требования к контролю встраивания криптосредства Методические рекомендации по обеспечению с помощью криптосредств безопасности персональных данных при их обработке в информационных системах персональных данных с использованием средств автоматизации (утв. ФСБ РФ 21.02.2008 N 149/54-144)
  2. Capicom
  3. Certificate enrollment api
  4. Certificate services
  5. Базовые криптографические функции
  6. Встраивание в ос unix
  7. Встраивание на уровне ядра
  8. Встраивание скзи «криптопро csp 5.0»
  9. Высокоуровневые функции обработки криптографических сообщений
  10. Использование com интерфейсов
  11. Использование скзи в составе программных продуктов ооо «крипто-про»
  12. Использование скзи в стандартном программном обеспечении
  13. Низкоуровневые функции обработки криптографических сообщений
  14. Отладка в windows
  15. Подключение на уровне cryptoapi 2.0 в windows
  16. Подключение на уровне csp в windows
  17. Примеры использования средств криптографической защиты
  18. Размышления о корректности встраивания криптосредств
  19. Функции кодирования/декодирования
  20. Функции работы со справочниками сертификатов
  21. Функциональность cryptoapi 2.0

Требования к контролю встраивания криптосредства Методические рекомендации по обеспечению с помощью криптосредств безопасности персональных данных при их обработке в информационных системах персональных данных с использованием средств автоматизации (утв. ФСБ РФ 21.02.2008 N 149/54-144)

5.1. Встраивание криптосредств класса КС1 и КС2 осуществляется без контроля со стороны ФСБ России (если этот контроль не предусмотрен техническим заданием на разработку (модернизацию) информационной системы).

Встраивание криптосредств класса КС3, КВ1, КВ2 и КА1 осуществляется только под контролем со стороны ФСБ России.

5.2. Встраивание криптосредств класса КС1, КС2 или КС3 может осуществляться либо самим пользователем криптосредства при наличии соответствующей лицензии ФСБ России, либо организацией, имеющей соответствующую лицензию ФСБ России.

Встраивание криптосредства класса КВ1, КВ2 или КА1 осуществляется организацией, имеющей соответствующую лицензию ФСБ России.

5.3. В ходе контроля со стороны ФСБ России встраивания криптосредства могут решаться, в частности, следующие задачи:

— проверка требований документации на криптосредство, относящихся к встраиванию криптосредства, в том числе:

— анализ корректности встраивания;

— анализ правильности функционирования системы управления ключами;

— экспериментальная проверка работоспособности криптосредства и правильности выполнения возложенных на него целевых функций;

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

Методика и программа контроля встраивания криптосредства разрабатываются и (или) обосновываются специализированной организацией, проводящей тематические исследования криптосредства, и согласовываются с ФСБ России.

Capicom

CAPICOM (реализованный в файле capicom.dll) предоставляет COM интерфейс, использующий основные функции CryptoAPI 2.0. Этот компонент является добавлением к COM интерфейсу Certificate Enrollment Control (xenroll.dll), который реализуют клиентские функции генерации ключей, запросов на сертификаты открытых ключей и обмена с центром сертификации.

С выпуском данного компонента стало возможным использование функций формирования и проверки электронной цифровой подписи, построения и проверки цепочек сертификатов, взаимодействия с различными справочниками сертификатов (включая Active Directory) с использованием Visual Basic, C , JavaScript, VBScript и среды разработки Delphi. Использование CAPICOM позволяет реализовать функциональность «тонкого» клиента в интерфейсе браузера Internet Explorer.

Компонент CAPICOM является свободно распространяемым и поставляется в составе Redistributable инструментария разработчика Microsoft Platform SDK.

Certificate enrollment api

COM интерфейс Certificate Enrollment API (реализованный в файле certenroll.dll, ранее xenroll.dll) предназначен для использования ограниченного количества функций CryptoAPI 2.0, связанных с генерацией ключей, запросов на сертификаты открытых ключей и обработкой сертификатов, полученных от Центра Сертификации, с использованием языков программирования Visual Basic, C , JavaScript, VBScript и среды разработки Delphi.

Именно этот интерфейс используют различные Центры Сертификации (Verisign, Thawte и т. д.) при формировании сертификатов открытых ключей пользователей на платформе Windows.

Certificate services

Certificate Services включает в себя несколько COM интерфейсов, позволяющих изменить функциональность Центра Сертификации, входящего в состав ОС Windows Server. При помощи данных интерфейсов возможно изменить:

  • обработку поступающих от пользователей запросов на сертификаты
  • состав данных (в том числе дополнений X.509), записываемых в издаваемые центром сертификаты
  • способ публикации (хранения) изданных центром сертификатов.

Базовые криптографические функции

К базовым функциям относятся функции:

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

По своей функциональности базовые функции повторяют низкоуровневый интерфейс CSP.

Встраивание в ос unix

Для подключения СКЗИ к прикладному ПО необходимо пользоваться интерфейсом CAPILite. Подробности в документации на CAPILite.

Встраивание на уровне ядра

Для встраивания на уровне ядра пользуйтесь рекомендациями из Особенности использования интерфейса уровня ядра в OC Linux и Особенности использования интерфейса уровня ядра в Windows .

Встраивание скзи «криптопро csp 5.0»

Иерархическая архитектура криптографических функций в операционной системе Windows позволяет использовать российские криптографические алгоритмы, реализованные в «КриптоПро CSP 5.0» на самых различных уровнях.

Высокоуровневые функции обработки криптографических сообщений

Именно эта группа функций (Simplified Message Functions) в первую очередь предназначена для использования в прикладном ПО. С помощью этих функций можно:

  • Зашифровать/расшифровать сообщение от одного пользователя к другому.
  • Подписать данные.
  • Проверить подпись данных.

Эти функции (как и функции низкого уровня) оперируют сертификатами открытых ключей X.509 для адресации отправителя/получателя данных. В качестве формата данных используется формат PKCS#7 или CMS.

Использование com интерфейсов

«КриптоПро CSP 5.0» может быть использовано из COM интерфейсов, разработанных Microsoft.

  • CAPICOM 1.0 (CAPICOM 2.0);
  • Certificate Services;
  • Certificate Enrollment Control.

Использование скзи в составе программных продуктов ооо «крипто-про»

СКЗИ «КриптоПро CSP 5.0» используется в составе следующих программных продуктов ООО «КРИПТО-ПРО» (включая, но не ограничиваясь):

  • КриптоПро УЦ;
  • Службы УЦ (КриптоПро OCSP, КриптоПро TSP, КриптоПро SVS, КриптоПро Revocation Provider);
  • КриптоПро DSS;
  • КриптоПро HSM;
  • КриптоПро NGate;
  • КриптоПро ЭЦП Browser plug-in;
  • КриптоАРМ;
  • КриптоПро EFS;
  • КриптоПро Office Signature;
  • Secure Pack RUS.

Кроме того, обеспечена техническая совместимость СКЗИ с продуктами:

  • КриптоПро SSF;
  • КриптоПро PDF.

Использование скзи в стандартном программном обеспечении

Программное обеспечение СКЗИ позволяет использовать российские криптографические алгоритмы и сертификаты открытых ключей (ключей проверки ЭП) стандарта X.509 совместно со следующим программным обеспечением (включая, но не ограничиваясь):

Низкоуровневые функции обработки криптографических сообщений

Данная группа функция (Low Level Message Functions) предназначена для аналогичных целей, что и группа высокоуровневых функций, но обладает большей функциональностью. Вместе с тем большая функциональность требует от прикладного программиста более детальных знаний в области прикладной криптографии.

Отладка в windows

Для работы с любым отладчиком контроль целостности в драйвере должен быть отключен. Для этого следует в реестре значение HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerCProIntegrityCheckMode установить в 0. После этого необходимо перестартовать сервис.

Подключение на уровне cryptoapi 2.0 в windows

«КриптоПро CSP 5.0» может быть подключено к прикладному программному обеспечению (как и любой другой криптопровайдер, поставляемый с ОС Windows) через интерфейс CryptoAPI 2.0, подробное описание которого приведено в программной документации MSDN (Microsoft Developer Network).

Подключение на уровне csp в windows

В ОС Windows СКЗИ «КриптоПро CSP 5.0» может быть непосредственно подключено к прикладному программному обеспечению путем загрузки модуля cpcspi.dll с использованием функции LoadLibrary(). При такой реализации прикладному ПО доступен лишь ограниченный набор низкоуровневых криптографических функций, соответствующий интерфейсу Microsoft CSP.

Примечание. При использовании СКЗИ под управлением ОС iOS загрузка библиотек при помощи функции LoadLibrary() невозможна.

Примеры использования средств криптографической защиты

СКЗИ «КриптоПро CSP 5.0» поставляется с тестовым программным обеспечением, содержащим примеры вызовов основных функций CryptoAPI 2.0. Большое количество примеров использования функций CryptoAPI 2.0, CAPICOM, Certificate Services содержится в документации MSDN и в инструментарии разработчика Platform SDK.

На сервере Крипто-Про ведется Форум КриптоПроWorld Wide Web link

Примечание. Подробную информацию об особенностях реализации и использования СКЗИ «КриптоПро CSP 5.0» см. в документах «КриптоПро CSP. Описание реализации» и «КриптоПро CSP. Руководство администратора безопасности. Использование СКЗИ под управлением ОС Windows», входящих в комплект поставки СКЗИ.

Размышления о корректности встраивания криптосредств

Вообще, я не в восторге от того, что, а точнее КАК, ведет себя ФСБ на рынке защиты информации КОММЕРЧЕСКИХ структур. Уж очень непросто выполнять все их требования. А уж про доступ к этим требованиям я вообще молчу — все документы закрытые и даже лицензиаты получают не сами документы и даже не выписки из них, а выписки из выписок. Но пост о другом. Все-таки некоторые требования ФСБ по зрелому размышлению выглядят достаточно здраво (вопрос реализации оставим в стороне).
В первую очередь речь идет о встраивании СКЗИ в какие-либо приложения, системы или устройства. Натолкнуло меня на это размышление презентация Юрия Маслова из КриптоПро на конференции в Магнитогорске. Я раньше как-то не задумывался об этом (да и не сталкивался с этим почти), но… почти все (а может и без почти) прикладные программы (в презентации речь шла о ДБО), которые сегодня заявляют об использовании сертифицированных криптопровайдеров, заставляют рисковать их пользователей. Ведь что заявляют их разработчики?.. Мол мы встроили КриптоПро CSP или Инфотекс VipNet CSP или других 6 или 7 сертифицированных криптобиблиотек, а значит вы можете спать спокойно, т.к. надежность этих СКЗИ подтверждено сертификатом ФСБ.
Да, это так. Сертификаты есть… но на криптопровайдеры, а не на решения, их использующие. Где гарантия, что они корректно используются? Где гарантия, что они вообще используются? Что мешает разработчику просто встроить их в свой софт, но не вызывать ни одной из их функций? А если вызывать, то неправильно? А если правильно, то не обеспечивать защиту от подмены вызова? На каждый из таких вопросов, ответа нет. Более того, его никто и не даст, т.к. такая гарантия должна быть подтверждена независимой стороной. Можно много спорить о сложности процесса сертификации в ФСБ (и невозможности попасть в него без связей), но он дает именно такую гарантию (пусть и не финансовую и не репутационную). Независимых аудиторов кода СКЗИ в России попросту нет. А если нет, то они малоизвестны рынку и цена их слову — грош (т.к. и они ни за что не несут ответственности).
Собственно аналогичная ситуация не только с ДБО, но и с любой СКЗИ. С теми же VPN-решениями. Даже ответ ФСБ на эту тему

есть

. Вот только мало кто задумывается об этой проблеме. Действительно, риски взлома систем из-за некорректного встраивания СКЗИ пока невелики (именно что пока). А раз так, то зачем тратить месяцы и тысячи долларов на такую проверку? Потребитель (банк) все равно не понимает разницы между сертифицированной системой ДБО и системой ДБО, использующей сертификацированную СКЗИ. Разработчик пользуется незнанием потребителя и уверен, что его продукцию купят и так. Клиент банка вообще почти всегда виноват. А учитывая его низкую квалификацию и доказать-то ничего не сможет. Регулятор тоже мало озабочен данной проблемой. Что в итоге? Все довольны! До начала массовых атак именно на этот механизм защиты систем ДБО и других аналогичных решений, использующих встроенную сертифицированную криптографию.

Функции кодирования/декодирования

Данные функции предназначены для преобразования (кодирования) из внутреннего представления объектов, используемых в CryptoAPI, во внешнее представление и обратно. В качестве внешнего представления объектов используется формат ASN.1 (Abstracy Syntax Notation One), определенный серией рекомендаций X.680.

Функции работы со справочниками сертификатов

Эта группа функций предназначена для хранения и обработки сертификатов в различных типах справочников. Причем в качестве справочника могут использоваться самые различные типы хранилищ: от простого файла до LDAP.

Функциональность cryptoapi 2.0

Использование интерфейса CryptoAPI 2.0 в ОС Windows преследует две главные цели:

  • Дать прикладному уровню доступ к криптографическим функциям для генерации ключей, формирования/проверки электронной цифровой подписи, шифрования/расшифрования данных. Эта цель достигается путем изолирования прикладного уровня от уровня реализаций криптографических функций. Прикладным программистам не нужно детально изучать особенности реализации того или иного алгоритма или изменять код в зависимости от алгоритма.
  • Изолирование прикладного уровня от криптографических функций позволяет одновременно использовать разные алгоритмы и различные реализации этих алгоритмов, включая аппаратные.

Функционально интерфейс CryptoAPI 2.0 делится на 5 групп.

Оцените статью
ЭЦП64
Добавить комментарий