Криптографическая защита информации. Защита от несанкционированного доступа с использованием КриптоПро CSP

разработан в соответствии с требованиями фирмы Microsoft на Криптографические провайдеры и позволяет создавать новые, надежно защищенные приложения с использованием богатейшего и проверенного временем инструментария. Кроме того, КриптоПро Sharpei позволяет использовать стандартное программное обеспечение, такое как XPSViewer и Microsoft Office Forms Server 2007 для подписи и проверки ЭЦП с использованием российских криптографических алгоритмов.

Настройка Microsoft Office Forms Server 2007 для использования ЭЦП в веб-формах.

Приведенная ниже инструкция описывает порядок настройки Microsoft Office Forms Server 2007 для возможности подписи форм с использованием КриптоПро CSP .

Внимание! После выполнения данной инструкции подпись с использованием других криптопровайдеров (например, реализующих алгоритм RSA) будет невозможна.

На сервере:

  1. Установите КриптоПро CSP версии 3.6. Если в процессе установки не был добавлен считыватель "Реестр", необходимо выполнить его установку.
  2. Установите КриптоПро Sharpei версии 1.0.3497.2 или выше.
  3. Создайте закрытый ключ ЭЦП в реестре с именем FormsServerKey для локальной машины, например при помощи следующей командной строки:
    csptest -keyset -newkeyset -machine
    -container "\\.\Registry\FormsServerKey"
  4. Создайте ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Sharpei\1.0\InfoPath.Server
  5. Добавьте параметр DWORD AlgType 1 , добавьте строковый параметр Container в указанный выше ключ со значением \\.\Registry\FormsServerKey .
  6. Установите клиентский ActiveX из DSIGCTRL.cab (подробнее в инструкции ).
  7. Проверить наличие прав доступа (Full Control) на ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Keys\FormsServerKey пользователя, из под которого осуществляется запуск Группы приложений SharePoint (Обычно Network Service, Local System...)
  8. Проверить наличие корневых сертификатов, на которых выданы сертификаты клиентов в хранилище "Доверенные корневые центры сертификации" (Trusted Root Certification Authorities) локального компьютера (LocalMachine).
  9. Проверить наличие актуальных CRL для корневых сертификатов из пункта 6 в хранилище Промежуточные Центры сертификации (Intermidiate Certification Authorities) локального компьютера (LocalMachine) или возможности доступа к ним по CDP.
  10. Перезагрузите сервер

На клиенте:

  1. Установите КриптоПро CSP версии 3.6.
  2. Если на клиенте до этого не осуществлялась подпись форм, никаких дополнительных действий не потребуется.

Определить это можно по наличию файла DSigCtrl.dll в директории \WINDOWS\Downloaded Program Files. Если этот файл отсутствует, то подпись форм ранее не осуществлялась. Если на клиенте ранее осуществлялась подпись, то необходимо перейти в каталог \WINDOWS\Downloaded Program Files и запустить regsvr32 /u DSigCtrl.dll. Кроме того, необходимо удалить файлы DSigCtrl.* из каталога \WINDOWS\Downloaded Program Files.

Возможные изменения в процессе установки.

При работе Forms Server используется временный ключ для подписи. Этот ключ используется на сервере всякий раз при выполнении операции подписи на клиенте, поэтому рекомендуется его хранить на неотчуждаемом носителе - в реестре. Если ключ с именем FormsServerKey уже использовался до установки, то можно использовать любое другое имя. При переустановке продукта можно использовать старый ключ.

При установке можно ограничится только одной последней перезагрузкой.

При предварительно установленном КриптоПро CSP и КриптоПро Sharpei можно перезагрузку не выполнять, а ограничится командой iisreset.

Обратная связь:

Вопросы по применению ЭЦП в Microsoft Office Forms Server 2007 обсуждаются в разделе форума.

Средства криптографической защиты информации

  • КриптоПро CSP – средство криптографической защиты информации (шифрование/расшифрование, проверка подписи, хеширование) на уровне ядра операционной системы. Криптодрайвер предназначен для использования в специальных приложениях (шифраторы IP протокола, файловой системы)
  • КриптоПро JCP – средство криптографической защиты информации, разработанное в соответствии со спецификацией JCA (Java Cryptography Architecture), реализующее российские криптографические стандарты
  • КриптоПро Sharpei – позволяет использовать средство криптографической защиты информации КриптоПро CSP на платформе Microsoft .Net Framework. Программный продукт реализует набор интерфейсов для доступа к криптографическим операциям.Net Cryptographic Provider
  • КриптоПро IPSec – набор протоколов, обеспечивающих защиту данных, передаваемых по межсетевому протоколу IP. Программный продукт позволяет осуществлять подтверждение подлинности и/или шифрование IP-пакетов
  • КриптоПро HSM – программно-аппаратный криптографический модуль (hardware security module), совместимый с КриптоПро CSP, предоставляющий криптографический сервис пользователям корпоративной сети
  • Атликс HSM – аппаратный криптографический модуль (hardware security module), совместимый с КриптоПро CSP. Атликс HSM предназначен для обеспечения безопасного хранения и использования закрытого ключа уполномоченного лица удостоверяющего центра

Средства криптографической защиты информации со смарткартами и USB ключами

  • Магистра CSP – средство криптографической защиты информации, позволяющее вывести защиту секретного ключа пользователя на новый уровень и увеличить срок действия секретных ключей до 3х лет
  • КриптоПро Рутокен CSP – программно-аппаратное СКЗИ, объединяющее возможности российского криптопровайдера КриптоПро и идентификатора Рутокен ЭЦП
  • КриптоПро eToken CSP – средство криптографической защиты информации, позволяющее вывести защиту секретного ключа пользователя на более высокий уровень и увеличить срок действия секретных ключей до 3х лет

Инфраструктура открытых ключей

  • Удостоверяющий Центр "КриптоПро УЦ" – ПК, предназначенный для выполнения организационно-технических мероприятий по обеспечению средствами и спецификациями для использования сертификатов открытых ключей пользователей Удостоверяющего Центра как организации
  • КриптоПро TSP – линейка продуктов, предназначенных для организации сервера штампов времени и для встраивания функциональности работы со штампами времени в различные приложения
  • КриптоПро OCSP – линейка продуктов, предназначенных для организации сервера OCSP и для встраивания функциональности проверки статусов сертификатов по протоколу OCSP в различные приложения
  • АРМ разбора конфликтных ситуаций – ПК, входящий в состав программного обеспечения КриптоПро УЦ и предназначенный для проверки соответствия ЭЦП содержанию электронного документа и определения участника автоматизированной системы банковских расчетов, выполнившего ее формирование
  • КриптоПро Revocation Provider – продукт, предназначеный для встраивания проверки статусов сертификатов открытых ключей в режиме реального времени по протоколу OCSP в ОС Windows
  • Удостоверяющий центр Атликс УЦ
  • КриптоПро ЭЦП – усовершенствованная цифровая подпись, позволяющая решить трудности, связанные с применением ЭЦП. КриптоПро ЭЦП обеспечивает участников электронного документооборота доказательной базой, связанной с установлением момента подписи и статуса сертификата открытого ключа подписи на момент подписи

Защита от несанкционированного доступа с использованием КриптоПро CSP

  • КриптоПро TLS – модуль поддержки сетевой аутентификации КриптоПро TLS, входящий в состав СКЗИ КриптоПро CSP, реализующий протокол Transport Layer Security (TLS v. 1.0, RFC 2246) с использованием российских криптографических стандартов
  • КриптоПро Winlogon – продукт предназначен для ОС Windows, реализует первоначальную аутентификацию пользователя протокола Kerberos V5 (RFC 4120) по сертификату и ключевому носителю КриптоПро CSP 3.0 (смарт-карта, USB токен)
  • КриптоПро EAP-TLS – расширенный протокол двусторонней криптографической аутентификации между удаленными пользователями и RADIUS сервером (Remote Authentication Dial-In User Service)
  • Secure Pack Rus 1.0, Secure Pack Rus 2.0 – сервисный пакет обновлений для операционных систем Microsoft Windows XP и Microsoft Windows Server 2003
  • КриптоПро EFS – продукт для обеспечения защиты конфиденциальной информации при ее хранении на ПЭВМ

Системы идентификации

  • IdM – системы для автоматизации многочисленных задач, возникающих на протяжении жизненного цикла идентификационных данных. Обеспечивают взаимодействие службы безопасности отдела кадров, и ИТ-администраторов, снабжают их необходимым программным инструментарием

Программы и утилиты

  • КриптоАРМ (Крипто Три) – программное обеспечение, предназначенное для работы с сертификатами и провайдерами, шифрования или расшифрования данных, создания или проверки электронной цифровой подписи (ЭЦП) с использованием сертификатов открытых ключей
  • Приложение командной строки cryptcp – программный продукт, представляющий собой приложение командной строки для работы с сертификатами, шифрования и расшифрования данных, хеширования данных с использованием сертификатов открытых ключей, создания и проверки электронной цифровой подписи (ЭЦП)
  • ЭЦП процессор – программный продукт для внедрения сертифицированного средства СКЗИ КриптоПро CSP в систему защищенного электронного документооборота, для унификации доступа к криптографическим функциям СКЗИ КриптоПро CSP
  • КриптоПро PDF – модуль создания и проверки ЭЦП для формирования и проверки электронной цифровой подписи в программax Adobe Reader, Adobe Acrobat версии 7 и выше
  • КриптоПро Office Signature – программный продукт для обеспечения возможности создания и проверки электронной цифровой подписи (ЭЦП) по алгоритму ГОСТ Р 34.10-2001 документов Word и Excel из состава Microsoft Office 2007 и Microsoft Office 2010

Реализации криптоалгоритмов ГОСТ 28147-89, ГОСТ Р 34.10-2001 и ГОСТ Р 34.11-94 содержатся в разработанной компанией КриптоПро и распространяемой по лицензии библиотеке КриптоПро.NET SDK , требующей для своего использования установки криптопровайдера КриптоПро CSP. Для использования КриптоПро.NET SDK в приложениях на языке C# нужно подключить к проекту библиотеку CryptoPro.Sharpei.Base.dll (с помощью команды менюMicrosoftVisualStudioProject|AddReference| вкладкаBrowse) и добавить к используемым в приложении пространствам именCryptoPro.Sharpei:

using CryptoPro.Sharpei;

Документация по использованию классов библиотеки КриптоПро.NET SDK находится в свободно распространяемом файле справки Sharpei.chm.

Реализация алгоритма симметричного блочного шифрования ГОСТ 28147-89 содержится в классе Gost28147CryptoServiceProvider, являющемся наследником абстрактного класса Gost28147, который, в свою очередь, является наследником стандартного абстрактного класса библиотеки FCLSymmetricAlgorithm.

Особенностью класса Gost28147CryptoServiceProvider является то, что при попытке использования в приложении свойства объектов этого класса Key(сеансового ключа) всегда генерируется исключениеCryptographicException. Поэтому для вывода сеансового ключа из парольной фразы и экспорта-импорта случайного сеансового ключа следует использовать иные способы, нежели при работе с другими классами с реализациями алгоритмов симметричного шифрования.

Для вывода сеансового ключа из парольной фразы следует использовать метод ByDeriveBytesкласса Gost28147CryptoServiceProvider, например (парольная фраза содержится в элементе формы с именем PassFrase1, а в массивеrandBytes– случайная примесь длиной 8 байт):

Gost28147CryptoServiceProvider gostCSP = new

byte randBytes = new byte;

RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider();

rand.GetBytes(randBytes);

byte pwd = Encoding.Unicode.GetBytes(PassFrase1.Text);

byte buf=new byte;

pwd.CopyTo(buf,0);

randBytes.CopyTo(buf, pwd.Length);

gostCSP.ByDeriveBytes(buf);

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

Для обмена случайным сеансовым ключом с получателем зашифрованных данных используются классы GostKeyExchangeFormatter(экспорт сеансового ключа),GostKeyExchangeDeformatter(импорт сеансового ключа) и Gost3410CryptoServiceProvider (алгоритм асимметричного шифрования, используемый при обмене сеансовым ключом).

Класс Gost3410CryptoServiceProvider, содержащий реализацию алгоритма ЭЦП ГОСТ З 34.10-2001, является наследником абстрактного класса Gost3410, который, в свою очередь, является наследником стандартного абстрактного класса библиотеки FCLAsymmetricAlgorithm.

Для экспорта сеансового ключа используется метод CreateKeyExchangeDataклассаGostKeyExchangeFormatter, а для импорта – методDecryptKeyExchangeDataклассаGostKeyExchangeDeformatter.

При использовании в приложении объектов класса Gost3410CryptoServiceProvider следует иметь в виду, что криптопровайдер КриптоПро CSPможет хранить закрытые ключи пользователей на различных носителях. Выбор конкретного носителя (например, системного реестраWindows) возможен с помощью программы настройки КриптоПроCSP. На вкладке Оборудование окна настройки следует выбрать считыватели закрытых ключей. Добавление считывателя происходит в диалоге с мастером установки считывателя.

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

Рассмотрим пример экспорта и импорта сеансового ключа при использовании класса Gost28147CryptoServiceProvider (значение синхропосылки должно сохраняться отдельно). Объект класса CspParameters используется в примере для указания контейнера ключей из реестра при работе с криптопровайдером КриптоПро CSP, имеющего тип 75:

Gost28147CryptoServiceProvider gostEnc = new

Gost28147CryptoServiceProvider();

CspParameters csp = new CspParameters();

csp.KeyContainerName = "Реестр";

csp.ProviderType = 75;

Gost3410CryptoServiceProvider gostExch = new

Gost3410CryptoServiceProvider(csp);

GostKeyExchangeFormatter keyEnc = new

GostKeyExchangeFormatter(gostExch);

byte sessionKey = keyEnc.CreateKeyExchangeData(gostEnc);

byte IV = gostEnc.IV;

GostKeyExchangeDeformatter keyDec = new

GostKeyExchangeDeformatter(gostExch);

gostEnc = (Gost28147CryptoServiceProvider)keyDec.

DecryptKeyExchangeData(sessionKey);

gostEnc.IV = IV;

Реализация алгоритма хеширования ГОСТ 34.11-94 представлена абстрактным классом Gost3411, являющимся наследником абстрактного стандартного класса библиотеки FCLHashAlgorithm, и его наследником – классом Gost3411CryptoServiceProvider.

Для вычисления кодов аутентификации сообщений, основанных на хешировании, и имитовставок (кодов аутентификации сообщений, основанных на симметричном шифровании) предназначены соответственно классы Gost3411HMAC (наследник абстрактного стандартного класса HMAC) и Gost28147ImitCryptoServiceProvider (наследник абстрактного класса Gost28147Imit, который, в свою очередь, является наследником абстрактного стандартного класса KeyedHashAlgorithm).

Loading...Loading...