На момент написания этой лекции в России есть две компании, которые выпускают криптопровайдеры на российских стандартах криптографической защиты информации. Наиболее распространенные из них это ЗАО «Сигнал‑КОМ» и ООО «Крипто‑Про». Компания ЗАО «Сигнал‑КОМ» была организована в начале 2003 года и выпустила свой криптопровайдер Signal‑COM CSP 07.04.2003 г. Компания ООО «Крипто‑Про» была организована в середине 2000 года и выпустила свой криптопровайдер CryptoPro CSP 23.10.2000 и на момент написания этой работы была актуальна вторая версия — CryptoPro CSP v3.0.
Основные функции, реализуемые CryptoPro CSP:
· Генерация закрытых (256 бит), открытых (1024 бита для ГОСТ Р 34.10‑94 и 512 бит для ГОСТ Р 34.10‑2001) ключей ЭЦП и шифрования;
· возможность хранения сертификатов открытых ключей в ключевом контейнере;
· возможность генерации ключей с различными параметрами в соответствии с ГОСТ Р 34.10‑94 («Информационная технология. Криптографическая защита информации. Система электронной цифровой подписи на базе асимметричного криптографического алгоритма.»);
|
|
· возможность генерации ключей с различными параметрами в соответствии с ГОСТ Р 34.10‑2001 («Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи.»);
· хеширование данных в соответствии с ГОСТ Р 34.11‑94 («Информационная технология. Криптографическая защита информации. Функция хэширования.»);
· шифрование данных во всех режимах, определенных ГОСТ 28147‑89 («Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования.»);
· имитозащита данных в соответствии с ГОСТ 28147-89;
· формирование электронной цифровой подписи в соответствии с ГОСТ Р 34.10‑94, ГОСТ Р 34.10‑2001;
· опциональное использование пароля (пин‑кода) для дополнительной защиты ключевой информации;
· реализация мер защиты от НСД ключевой информации пользователя.
CryptoPro CSP осуществляет формирование закрытых ключей на следующие типы носителей:
· дискета 3,5";
· процессорные карты MPCOS‑EMV и российские интеллектуальные карты (РИК) с использованием считывателей смарт‑карт, поддерживающий протокол PS/SC (GemPlus GCR‑410, Towitoko, Oberthur OCR126);
· таблетки Touch‑Memory DS1993 ‑ DS1996 с использованием устройств Аккорд 4+, электронный замок «Соболь» или устройство чтения таблеток Touch‑Memory DALLAS;
· электронный ключ с интерфейсом USB;
· сменный носитель с интерфейсом USB;
· реестр Windows.
Основные характеристики «Signal‑COM CSP»:
· поддержка международных стандартов и рекомендаций в области защиты информации (Х.509, PKIX, PKCS, CMS);
· формирование и проверка ЭЦП в соответствии с ГОСТ Р 34.10‑94;
|
|
· выработка значения хэш‑функции в соответствии с ГОСТ Р 34.11‑194;
· шифрование данных в соответствии с ГОСТ 28147‑89;
· формирование ключей шифрования и ЭЦП с помощью сертифицированного ФАПСИ программного датчика случайных чисел (ДСЧ);
· возможность использования аппаратных ДСЧ, сертифицированных ФАПСИ;
· возможность хранения ключевой информации на различных носителях, включая eToken, Touch Memory и USB Flash Drive.
Протокол TLS/SSL
Основная функция протокола TLS состоит в обеспечении защиты и целостности данных между двумя взаимодействующими приложениями, одно из которых является клиентом, а другое – сервером.
Протокол TLS (Transport Layer Security) разрабатывался на основе спецификации протокола SSL 3.0 (Secure Socket Layer), опубликованного корпорацией Netscape. Различия между данным протоколом и SSL 3.0 несущественны, но важно заметить, что TLS 1.0 и SSL 3.0 несовместимы, хотя в TLS 1.0 предусмотрен механизм, который позволяет реализациям TLS иметь обратную совместимость с SSL 3.0.
Перечислим задачи протокола TLS в порядке их приоритета:
· Криптографическая безопасность: TLS должен использоваться для установления безопасного соединения между двумя участниками.
· Интероперабельность: независимые разработчики могут создавать приложения, которые будут взаимодействовать по протоколу TLS, что позволит устанавливать безопасные соединения.
· Расширяемость: TLS формирует общий каркас, в который могут быть встроены новые алгоритмы открытого ключа и симметричного шифрования. Это также избавляет от необходимости создавать новый протокол, что сопряжено с опасностью появления новых слабых мест, и предотвращает необходимость полностью реализовывать новую библиотеку безопасности.
· Относительная эффективность: криптографические операции интенсивно используют ЦП, особенно операции с открытым ключом. Для этого вводится понятие сессии, для которой определяются алгоритмы и их параметры. В рамках одной сессии может быть создано несколько соединений (например, ТСР). TLS позволяет кэшировать сессии для уменьшения количества выполняемых действий при установлении соединения. Это снижает нагрузку как на ЦП, так и на трафик.
Протокол состоит из двух уровней. Нижним уровнем, расположенным выше некоторого надежного протокола (а именно, протокола ТСР) является протокол Записи. Протокол Записи обеспечивает безопасность соединения, которая основана на следующих двух свойствах:
Конфиденциальность соединения. Для защиты данных используется один из алгоритмов симметричного шифрования. Ключ для этого алгоритма создается для каждой сессии и основан на секрете, о котором договариваются в протоколе Рукопожатия. Протокол Записи также может использоваться без шифрования.
Целостность соединения. Обеспечивается проверка целостности сообщения с помощью МАС с ключом. Для вычисления МАС используются безопасные хэш-функции SHA-1 и MD5. Протокол Записи может выполняться без вычисления МАС, но обычно функционирует в этом режиме.
Протокол Записи используется для инкапсуляции различных протоколов более высокого уровня. Одним из протоколов более высокого уровня является протокол Рукопожатия, который использует протокол Записи в качестве транспорта для ведения переговоров о параметрах безопасности.
Протокол Рукопожатия позволяет серверу и клиенту аутентифицировать друг друга и договориться об алгоритмах шифрования и криптографических ключах до того, как прикладной протокол, выполняющийся на том же уровне, начнет передавать или принимать первые байты данных.
Протокол Рукопожатия обеспечивает безопасность соединения, которая основана на следующих свойствах:
Участники аутентифицированы с использованием криптографии с открытым ключом (т.е. с использованием алгоритмов RSA, DSS и т.д.). Эта аутентификация может быть необязательной, но обычно требуется по крайней мере для сервера.
|
|
Переговоры о разделяемом секрете безопасны, т.е. этот общий секрет невозможно подсмотреть.
Переговоры о разделяемом секрете надежны, если выполнена аутентификация хотя бы одной из сторон. В таком случае атакующий, расположенный в середине соединения, не может модифицировать передаваемый секрет незаметно для участников соединения.
Одно из преимуществ TLS состоит в том, что он независим от прикладного протокола. Протоколы более высокого уровня могут прозрачно располагаться выше протокола TLS.
Элементы протокола