Особенности использования вычислительной техники в криптографии.




Лекция 2. Особенности применения шифрования электронной и цифровой подписи ipsec и ssl

Особенности использования вычислительной техники в криптографии.

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

• защищенная электронная почта (электронный документооборот);

• обеспечение безопасности электронных транзакций (электронные платежи);

• виртуальные частные сети.

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

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

Причины ненадежности практических реализаций криптосистем приведены на рис. 3.23.

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

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

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

• недопущение компрометации (разглашения или возможности разглашения) секретных частей криптографической системы;

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

• прозрачность (непричастность пользователей к формированию ключей и управлению ими).

Рис. 3.23. Причины ненадежности криптосистем

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

В качестве устройств шифрования наиболее широко используют три вида шифраторов:

1) программные;

2) аппаратные;

3) программно-аппаратные.

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

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

Технология реализации криптоалгоритмов программными средствами имеет ряд особенностей:

• необходимость дополнительного контроля качества функционирования, поскольку в общем случае работу программного средства нарушить легче, чем его аппаратного аналога;

• возможность контроля ошибок в закрытом тексте при шифровании путем внедрения избыточности;

• необходимость обеспечения надежного хранения ключей, что достигается за счет использования иерархии ключей (использование мастер-ключа для шифрования ключей пользователей);

• возможность масштабирования и дополнения СКЗИ новыми программными блоками и модификациями существующих блоков;

• принципиальная возможность использования программного СКЗИ с открытым кодом, что допускается при шифровании информации в частных целях и облегчает построение общей схемы защиты информации.

Таким образом, программное СКЗИ отличает способность использования в открытых системах, более гибкая реализация, способность масштабирования и высокая мобильность.

Можно выделить следующие функции программных СКЗИ:

• идентификация и аутентификация пользователей;

• обеспечение криптографической защиты операционных систем и приложений, встроенной производителем;

• генерация псевдослучайных последовательностей;

• шифрование данных на диске, в том числе «прозрачное» шифрование;

• формирование и проверка ключей, электронных подписей, защита от копирования программного кода;

• обеспечение безопасной передачи секретного ключа при инициализации СКЗИ, в том числе и аппаратных.

Схема типового программного СКЗИ приведена на рис. 3.24.

Блок управления выполняет координацию функций различных компонентов СКЗИ, коммутацию модулей и внешних потоков информации, а также внешних команд. Компонентом взаимодействия с пользователем является интерфейс, который предоставляет возможности управления программной реализацией алгоритма, контроля функционирования. Модуль управления ключами выполняет задачи обработ

 
 

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

Генераторы случайных чисел, используемые в программных СКЗИ, также реализуются программно. Для этих целей применяются различные алгоритмы генерации псевдослучайных битовых последовательностей. Библиотеки программных средств криптографической защиты применяются при решении прикладных задач и настройке СКЗИ в зависимости от условий эксплуатации. Качество готовых библиотек криптографических функций подтверждается опытом применения в различных проектах и сертификатами соответствия. Использование подобных библиотек снижает риски внесения ошибок в программные реализации стойких алгоритмов шифрования, вызванные недостаточной квалификацией разработчиков.

Построение защищенных Windows-приложений. Доминирующее положение операционной системы Windows на рынке обусловливает внимание к программным интерфейсам библиотек криптографических функций (криптографическим интерфейсам) этой операционной системы — Crypto API, CNG API.

Application Programming Interfaces (API) — интерфейс программирования приложений, определяет функциональность, которую предоставляет программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована.

Crypto API — это интерфейс программирования приложений, который предоставляет разработчикам Windows-приложений средства вызова криптографических функций. В основе шифрования Windows Vista, Windows Server 2008 и более поздних версий операционной системы лежит новый криптографический интерфейс, называемый CNG API (Cryptography Next Generation). Основными отличиями CNG API являются: отделение хранилищ ключей от операций алгоритма, изоляция процессов для операций с долговременными ключами, подключаемые генераторы случайных чисел, криптографический API режима ядра и отсутствие ограничений на экспорт.

Криптографические интерфейсы Windows, с одной стороны, позволяют включать но мере разработки новые функции, а с другой, не требуют после этого изменения и обновления всех ранее созданных приложений. Для реализации такого интерфейса выбрана структура пакета, в которой обращение к функциям API представляет собой уровень связи с приложениями, а за ним располагается другой уровень, открытый для обновления и включения новых функций в виде встраиваемых компонентов, в том числе и от независимых разработчиков. Эта структура иллюстрируется рис. 3.25.

Встраиваемый компонент, позволяющий осуществлять отдельные криптографические операции (шифрование, электронная подпись и т.д.) в операционной системе и реализующий криптографические алгоритмы, в терминологии Microsoft называется провайдером службы шифрования — CSP (Cryptographic Service Provider).

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

Рис. 3.25. Взаимодействие между приложением и провайдерами службы шифрования посредством Crypto API

мы Windows пользователь получает несколько таких CSP, которые реализуют наиболее часто используемые методы шифрования. Если разрабатываемое приложение нуждается в стороннем компоненте CSP, это никак не отражается на программировании самого приложения. Оно строится точно так же, как если бы в нем использовался один из «родных» компонентов Windows.

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

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

Криптопровайдеры CSP отличаются друг от друга своими типами, которые определяются набором параметров, включающим:

• алгоритм обмена сессионным (симметричным) ключом;

• алгоритм вычисления цифровой подписи;

• формат цифровой подписи;

• схему генерирования сессионного ключа по хэшу;

• длину ключа.

Разработан ряд криптопровайдеров, поддерживающих отечественные стандарты криптографических алгоритмов ГОСТ Р 34.10—2012, ГОСТ Р

34.11-2012, ГОСТ 28147-89 (КриптоПро CSP, ViPNet CSP, Shipka Base Cryptographic Provider GOST, Валидата CSP и др.) и имеющих сертификат ФСВ России. Использование этих криптопровайдеров позволяет соблюсти, если это необходимо, требование об обязательном использовании сертифицированных СКЗИ.

Архитектура Crypto API может быть разделена на три основные части:

1) базовые функции;

2) функции для работы с сертификатами;

3) функции для работы с сообщениями.

В первую группу входят функции для выбора и подключения к кринго- провайдеру, генерации и хранения ключей, обмена ключами, выбора режима алгоритмов блочного шифрования (СВС или ЕСВ), а также криптографическая функция генерации случайных данных. К базовым относятся также функции для хэширования и получения цифровой подписи данных, шифрования и расшифрования.

Во вторую группу входят функции для использования сертификатов, основной задачей которых является предоставление доступа к открытому ключу. Crypto API поддерживает сертификаты спецификации Х.509, в которые входит информация о версии сертификата, его серийном номере, периоде действия, алгоритмах шифрования публичного ключа.

Под сообщениями в Crypto API понимаются данные в стандартизованном формате PKCS #7, разработанном RSA Laboratories. Функции для работы с ними делятся на две части: высокоуровневые функции (упрощенные) и низкоуровневые.

Зачастую применение непосредственно функций Crypto API достаточно проблематично, например в web-клиентах, где вызовы процедур напрямую невозможны. Для подобных целей, а также для упрощения работы с Crypto API был создан тип объектов CAPICOM (Crypto API COM-object). В своей реализации данный объект почти полностью охватывает все — от шифрования до работы с сертификатами.

Платформа.NET Framework позволяет работать с функциями Crypto API (CNG API) в объектно-ориентированной среде посредством набора классов в пространстве имен System.Security.Cryptography. Пространство System.Security.Cryptography содержит основные симметричные шифры (DES, 3DES, AES, Rijndael, RC2) и асимметричные криптосистемы (RSA DSA ECDSA система Диффи — Хеллмана на эллиптических кривых), несколько хэш-функций (MD5, SHA-l, SHA-2, RIPEMD160), кодов аутентификации (HMAC-SHA-1, HMAC-SHA-2, HMAC-RIPEMD, MAC-3DES) п криптографически сильный генератор псевдослучайных чисел. Эта криптографическая основа может быть расширена за счет подключения CSP сторонних производителей. Расширения криптографической объектной модели.NET Framework могут быть двух типов: добавление новой реализации криптоалгоритма, уже определенного в.NET Framework, или добавление нового криптоалгоритма.

Пространство имен System.Security.Cryptography содержит следующие основные классы:

• SymmetricAlgorithm — симметричные шифры;

• AsymmetricAlgorithm — криптосистемы с открытым ключом;

• CryptoStream — поддерживает модель программирования на основе потоков (streams), представляющих данные из разных хранилищ (текстовых файлов, XML-документов, памяти, сети), при криптографических преобразованиях;

• CspParameters — передает параметры криптопровайдеру CSP, который выполняет криптографические преобразования;

• Hash Algorithm — функции хэширования и коды аутентификации;

• RandomNumberGenerator — генератор псевдослучайных последовательностей;

• классы Cryptography Next Generation (CNG) — для прямого вызова криптографических API-функций. Центральным является класс CngKey — хранение и использование CNG-ключей, также реализованы поддерживающие CNG-классы (CngProvider — провайдер хранилища ключей, CngAlgorithm и CngAlgorithmGroup — реализованные средствами CNG алгоритмы шифрования или группы алгоритмов (CngKey получает объекты CngAlgorithm через параметр Algorithm и возвращает объекты CngAlgorithmGroup), CngUlPolicy — политика пользовательского интерфейса, относящегося к операциям с ключами).

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

Пространство имен System.Security.Cryptography.XML реализует цифровую подпись XML-объектов, a System.Security.Gryptography.X509Certificaties обеспечивает поддержку операций с цифровыми сертификатами.

Аппаратные средства криптографической защиты.

Аппаратное СКЗИ — специализированный блок, компонент средства вычислительной техники или отдельное устройство, выполняющее криптографическое преобразование информации.

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

Использование аппаратных СКЗИ позволяет перенести все криптографические операции для всех приложений информационной системы из внешней недоверенной среды (например, незащищенной памяти) в защищенное окружение.

Аппаратная реализация алгоритма шифрования:

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

• исключает какое-либо вмешательство в процесс шифрования;

• позволяет использовать аппаратные датчики истинно случайных чисел, что повышает качество реализации различных криптографических алгоритмов;

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

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

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

• надежность, позволяющая использовать средство криптографической защиты в критичных по надежности узлах автоматизированных систем;

• возможность реализации отдельным блоком, что зачастую позволяет более гибко строить топологию защищенной автоматизированной системы;

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

Аппаратное средство криптографической защиты содержит ряд дополнительных блоков, которые не требуются в программной реализации (рис. 3.26):

• блок управления криптографическими ключами;

• генератор случайных чисел;

• память — постоянная и оперативная;

• блок синхронизации времени;

• устройство хранения и проверки контрольных сумм и хэш-значений;

• шифронроцессор.

Рис. 3.26. Базовая схема аппаратного С КЗ И

Шифропроцессор представляет собой специализированную микросхему с фиксированным набором команд или микросхему программируемой логики (PLD — Programmable Logic Device), которая выполняет шифрование данных. Также возможно использование отдельных специализированных блоков идентификации, аутентификации и авторизации (проверки и генерации электронной подписи).

Блок управления выполняет координацию функций различных компонентов СКЗИ, коммутацию устройств и внешних потоков, управление данными, передаваемыми по системной шине.

Память аппаратного средства подразделяется на два блока:

1) оперативная, хранящая программное обеспечение СКЗИ, а также все программируемые компоненты, изменяемые значения и пр.;

2) постоянная, содержащая набор команд, реализующих защитные функции и загрузку программного обеспечения СКЗИ.

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

Используемые в аппаратной реализации криптографической защиты генераторы случайных чисел основаны на различных физических процессах. Блок управления ключами выполняет прием, обработку и выдачу ключевой информации, а также, если это необходимо, функции идентификации и аутентификации. Блок синхронизации времени требуется в операциях контроля функционирования самого СКЗИ, при синхронизации потока данных, для расчета и согласования операций. Устройство ввода-вывода обеспечивает обработку сигналов, поступающих от внешних устройств (системной шины компьютерной системы либо приемно-передающего устройства линии передачи информации; устройств хранения ключевой информации, применяемых в задачах идентификации и аутентификации; контроллеров жестких дисков и устройств резервного копирования информации).

Таким образом, полнофункциональное аппаратное СКЗИ может являться даже специализированным компьютером, реализованным в виде аппаратного блока, внешнего или внутреннего, связанного с центральным процессором собственными каналами передачи данных (системной шиной).

Программно-аппаратное СКЗИ — специальным образом организованные комплексы, содержащие взаимосвязанные программные и аппаратные блоки и реализующие следующий набор функций:

• идентификацию и аутентификацию пользователей;

• криптографическое преобразование данных;

• обеспечение целостности информации.

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

Криптографическая защита в компьютерных сетях.

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

• физический уровень — специфической формой шифрования, реализуемой аппаратно и применимой только на физическом уровне, является защита передачи (защита по ширине частотного спектра);

• сетевой уровень — шифрование передаваемого между узлами трафика (например, протокол IPSec);

• уровень представления — шифрование данных, передаваемых между удаленными приложениями (например, протоколы SSL и TLS);

• прикладной уровень — самостоятельное шифрование данных приложениями.

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

Вопросы информационной безопасности распределенных систем (сетей) достаточно полно и глубоко трактуются в технической спецификации Х.800 Международного союза электросвязи, при этом шифрование и цифровая подпись рассматриваются в качестве ключевых механизмов безопасности. Данный документ лег в основу стандарта ISO 7498-2:1989 и отечественного гармонизированного стандарта ГОСТ Р ИСО 7498-2—1999 «Информационная технология. Взаимосвязь открытых систем. Базовая эталонная модель. Часть 2. Архитектура защиты информации». Криптографические механизмы могут быть реализованы на разных уровнях эталонной модели взаимодействия сетей OSI, рекомендуемые Х.800 уровни реализации приведены в табл. 3.6. На прикладном уровне могут быть обеспечены все услуги безопасности.

Таблица 3.6

Связь между сервисами безопасности и уровнем шифрования (Х.800)

Требование Сервис безопасности Уровень шифрования
Полная конфиденциальность потока трафика Полная конфиденциальность 1-й (физический уровень)
Высокая градация защиты (наличие потенциально отдельного ключа для каждой ассоциации приложений) Целостность без восстановления, предотвращение отказа от авторства, селективная защита полей, полная конфиденциальность 6-й (уровень представления)
Массовая защита всей связи между оконечными системами и (или) внешними устройствами шифрования Конфиденциальность и целостность без восстановления 3-й (сетевой уровень)
Целостность с восстановлением вместе с высокой градацией защиты Конфиденциальность и целостность с восстановлением и без восстановления 4-й (транспортный уровень)

На самых нижних уровнях сетевой архитектуры (физическом и канальном) шифруются абсолютно все данные, проходящие по каналу связи, включая открытый текст сообщения и служебную информацию (заголовки, маршрут сообщения, информация об используемом коммуникационном протоколе). Такой вид шифрования обычно называется канальным {link encryption). Не шифруется только трафик управляющих сообщений канального уровня, который включает в себя команды и параметры, используемые различными канальными устройствами для синхронизации процесса коммуникаций. Канальное шифрование весьма эффективно, однако требует раскрытия данных (расшифровывания заголовков для получения служебной информации и повторного шифрования для дальнейшей передачи) в каждом промежуточном узле сети (например, на маршрутизаторе). Эта особенность требует дополнительной защиты всех коммуникационных узлов сети, что может существенно повысить стоимость реализации. Шифрование служебной информации, имеющей типовую структуру, может привести к появлению статистических закономерностей в шифро- текстах, облегчить криптоаналитику задачу определения используемых криптографических ключей. Примером защищенного протокола канального уровня является РРТР, использующийся в технологии VPN-туннелирования компании Microsoft.

Шифрование на верхнем уровне сетевой архитектуры (прикладном, уровне представления) обычно называется сквозным {end-to-end encryption). При сквозном шифровании данные остаются зашифрованными, пока не будут доставлены к месту назначения. Шифрование на прикладном уровне более гибко, так как оставляет пользователям (пользовательским приложениям) решение вопроса о необходимости шифрования тех или иных сообщений. В то же время криптоаналитик получает возможность анализа трафика, так как дополнительная информация (о маршрутизации, размере передаваемых сообщений, частоте обмена данными между конкретными абонентами, связи этого обмена с различными внешними событиями) остается открытой. Примером прикладного защищенного протокола является S/MIME, позволяющий пользователям шифровать и подписывать сообщения электронной почты.

Сетевые механизмы безопасности используют как симметричные, так и асимметричные криптосистемы. Обычно асимметричная схема служит для обеспечения аутентификации сторон и распределения сеансовых ключей, симметричные шифры — для непосредственного шифрования передаваемых данных. Использование асимметричных криптосистем требует сертификации открытых ключей и функционирования PKI-инфраструктуры (см. параграф 3.9). Далее рассмотрены наиболее известные сетевые протоколы защищенного обмена данными и аутентификации.

Протокол IPSec

Протокол IPSec (IP Security) — набор криптографических протоколов для обеспечения защиты передаваемых данных в IP-сетях. Протокол может функционировать на сетевом или транспортном уровне модели OSI. Использование протокола IPSec является преобладающим в реализациях виртуальных частных сетей (VPN-туннелей), на рынке представлены как программные, так и программно-аппаратные реализации этого протокола.

Протокол IPSec определяет:

• протоколы защиты передаваемого потока АН (Authentication Header) и ESP (Encapsulating Security Payload);

• параметры защищенного канала передачи данных SA (Security Associations), характеризующие соединение (например, используемые алгоритм шифрования, хэш-функция, секретные ключи, номер пакета и др.);

• протокол обмена криптографическими ключами IKE (Internet Key Exchange)]

• алгоритмы шифрования данных и аутентификации.

Протокол IPSec обеспечивает:

• аутентификацию сторон при создании защищенного канала;

• обеспечение конфиденциальности (шифрование) и целостности передаваемых данных;

• распределение ключей между сторонами.

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

Для шифрования данных используется симметричное шифрование, реализуемое протоколом ESP. Рекомендуемым алгоритмом шифрования является DES в режиме сцепления блоков шифротекста СВС (DES-CBC). Более современные рекомендации IPSec позволяют использовать и другие алгоритмы блочного шифрования (AES, Triple DES, Blowfish, IDEA 3IDEA CAST, RC5), если они поддерживаются обеими сторонами взаимодействия. Конкретные криптоалгоритмы могут добавляться производителями, однако практически все современные реализации протокола поддерживают AES-шифрование (AES-СВС и AES-CTR). Кроме шифрования, ESP обеспечивает целостность пакетов, а также защиту от их повторной передачи (рекомендуемые криптографические алгоритмы для вычисления контрольной суммы — НМАС с функцией хэширования SHA-1 или MD5, в настоящее время может использоваться AES-XCBC-MAC). Сервисы аутентификации предоставляются опционально. Для аутентификации пакетов используются хэш-значения (I1MAC), а не цифровые подписи. Возможно отключение шифрования или аутентификации (но не обоих одновременно), в этом случае используется соответствующий пустой алгоритм (NULL algorithm).

Протокол АН обеспечивает целостность передаваемых данных и аутентификацию их источника и опционально — защиту от повторной передачи данных. Для вычисления контрольных сумм протокол АН использует те же алгоритмы, что и ESP (обычно НМАС- SHA1 или AES-XCBC-MAC).

Протоколы ESP и АН могут использоваться по отдельности или совместно, определены два режима их работы — туннельный и транспортный. Туннельный режим функционирует на сетевом уровне, подходит для построения виртуальных частных сетей (VPN) и предполагает шифрования всего исходного IP-пакета совместно с его последующей инкапсуляцией. Поскольку IPSec работает на уровне IP-протокола, созданный защищенный канал может использоваться протоколами более высоких уровней, например TCP/UDP или прикладные протоколы. Транспортный режим функционирует на более высоком уровне сетевой архитектуры, производится шифрование только данных 1 P-пакета, исходный заголовок не изменяется. Этот режим подходит для защиты туннелей, организованных другими средствами (например, L2TP).

Протокол IKE обеспечивает начальную аутентификацию сторон, а также распределение ключей. Формирование общего секретного ключа для сессии производится с использованием алгоритма Диффи — Хеллмана, аутентификация — с помощью цифровых сертификатов сторон (Х.509, обычно используются цифровые подписи RSA или ECDSA). Сначала производится согласование параметров SA (защищенного канала), затем формируется общий ключ с помощью системы Диффи — Хеллмана и лишь затем проводится аутентификация сторон взаимодействия. IPSec допускает возможность установки ключа сессии вручную без использования IKE, однако этот метод не рекомендуется и используется крайне редко.

Протоколы SSL/TLS — протоколы создания защищенного канала связи в клиент-серверных системах (между двумя приложениями, как правило, между клиентом и сервером в сети Интернет). Протоколы SSL/TLS работают поверх протоколов транспортного уровня, например TCP. В то же время они располагаются ниже прикладного уровня и не зависят от используемого прикладного протокола стека TCP/IP, поэтому могут использоваться совместно с любым из них (например, частое использование совместно с протоколом HTTP привело к появлению защищенного прикладного протокола HTTPS). Разные источники относят протоколы SSL/TLS либо к транспортному уровню, либо к уровню представления.

Протокол SSL

Протокол SSL (Secure Sockets Layer) разработай специально для обеспечения безопасной передачи данных по протоколу HTTP между узлами сети Интернет. Протокол обеспечивает конфиденциальность (за счет симметричного шифрования) и целостность (за счет использования кодов аутентификации) сообщений, а также аутентификацию сервера и необязательную аутентификацию клиента (за счет использования цифровых сертификатов). Протокол SSL поддерживается большинством интернет-браузеров, доминирующей является версия SSL 3.0. В настоящее время протокол SSL признан небезопасным, на его основе разработан более современный протокол TLS (Transport Layer Security), первая версия которого вышла в 1999 г. TLS не обеспечивает совместимости с SSL.

Протокол TLS состоит из двух протоколов, имеющих различное назначение:

1) TLS Handshake Protocol — установление защищенного сеанса связи, взаимная аутентификация приложений и безопасный обмен криптографическими ключами;

2) TLS Record Protocol — обеспечение конфиденциальности и целостности передаваемых данных.

Первый из них предусматривает согласование используемых криптографических алгоритмов (шифрования и хэширования), обмен сеансовыми случайными величинами и криптографическими параметрами для дальнейшего формирования ключей, обмен и проверку сертификатов (Х.509) для аутентификации сторон (или только сервера), формирование общего сеансового ключа, проверку предыдущих этапов подтверждения связи (с помощью НМАС с MD5, SHA-1 или SHA-2). Сеансовый ключ передается в зашифрованном виде (с помощью асимметричной криптосистемы RSA) либо формируется по алгоритму Диффи — Хеллмана. Поддерживаются цифровые подписи RSA DSA ECDSA и хэш-функции MD5, SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512).

Протокол TLS Record Protocol использует параметры, полученные во время работы TLS Handshake Protocol. Он реализует симметричное шифрование, сжатие и проверку целостности передаваемых данных. Доступные для использования алгоритмы определяются версией протокола TLS. Симметричные блочные шифры используются в режиме сцепления блоков шиф- ротекста СВС. В текущей версии TLS 1.2 доступны: AES (128, 256), Triple DES и потоковый шифр RC4. Каждое сообщение снабжается кодом аутентификации НМАС (с MD5, SHA-1 или SHA-2). Использование шифрования и (или) кодов аутентификации может быть отключено.

Протоколы SSL/TLS позволяют создать VPN-туннель в интернет-соединениях и приложениях электронной коммерции, обеспечивая безопасность не только HTTP, но и других прикладных протоколов, таких как SMTP, FTP. Протоколы поддерживаются большинством современных браузеров и операционных систем на разных платформах, имеют программные и аппаратные реализации. Существуют реализации протокола TLS с поддержкой российских криптографических стандартов (например, КриптоПро TLS, входящий в состав КриптоПро CSP, реализация TLS в составе Вали- дата CSP, ViPNet CSP, Континент TLS VPN и др.).

Другие протоколы

Протокол Kerberos — протокол взаимной аутентификации и распределения сеансовых ключей в клиент-серверных системах с участием третьей (доверенной) стороны. Kerberos является одной из модификаций протокола взаимной аутентификации Нидхема — Шрёдера с применением симметричных криптосистем.

В качестве симметричных шифров могут быть использованы DES, 3DES и AES в режиме СВС. К передаваемым данным перед шифрованием добавляется контрольная сумма, в роли которой могут выступать коды аутентификации НМ АС (с хэш-функциями MD4, MD5, SHA-1), хэш-значения или контрольная сумма CRC-32. Доверенной стороной выбираются наиболее стойкие криптографические алгоритмы из списка тех, которые поддерживаются сторонами.

При непосредственной аутентификации на сервере пользователь вынужден проходить процедуру для каждой службы сети, а каждый сервер — хранить ключи и регистрационную информацию всех клиентов. Такая система не слишком удобна для пользователей и создает дополнительные риски безопасности. Протокол Kerberos предполагает централизованное хранение аутентификационной информации клиентов и позволяет реализовать принцип единого входа (Single Sign-On) — возможность использования единой учетной записи пользователя для доступа к любым службам и ресурсам сети без повторной аутентификации. Протокол Kerberos и его расширение, позволяющее проводить аутентификацию с помощью цифровых сертификатов, реализован в операционных системах Windows Server.

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

• способность выдать себя за одну из сторон сетевого взаимодействия;

• физический доступ к одному из участвующих в соединении компьютеров;

• перехват, модификация и повторная передача пакетов.

Безопасность протокола Kerberos требует обязательной синхронизации



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-04-07 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: