Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пасоиб.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
325.28 Кб
Скачать

Основные отличия поточных шифров от блочных

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

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

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

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

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

  • ПШ в отличие от БШ часто могут быть атакованы при помощи линейной алгебры (так как выходы отдельных регистров сдвига с обратной линейной связью могут иметь корреляцию с гаммой). Также для взлома поточных шифров весьма успешно применяется линейный и дифференциальный анализ.

Теперь о положении в мире:

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

  • для поточных шифров установлен набор требований, являющихся критериями надёжности (большие периоды выходных последовательностей, постулаты Голомба, нелинейность); для БШ таких чётких критериев нет.

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

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

Проектирование поточных шифров

Согласно Райнеру Рюппелю можно выделить четыре основных подхода к проектированию поточных шифров:

  • Системно-теоретический подход основан на создании для криптоаналитика сложной, ранее неисследованной проблемы.

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

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

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

Теоретические критерии Райнера Рюппеля для проектирования поточных систем:

  • длинные периоды выходных последовательностей;

  • большая линейная сложность;

  • диффузия – рассеивание избыточности в подструктурах, «размазывание» статистики по всему тексту;

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

  • критерий нелинейности для логических функций.

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

99999999999999999999999999999999999999999999999

При защите программ от несанкционированного копирования приме- няются методы, которые позволяют привносить в защищаемую программу функции привязки процесса выполнения кода программы только на тех ЭВМ, на которые они были инсталлированы. Инсталлированная программа для защиты от копирования при каждом запуске должна выполнять следующие действия:

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

• проверка подлинности среды выполнения путем сравнения ее текущих характеристик с эталонными, хранящимися на винчестере;

• блокирование дальнейшей работы программы при несовпадении текущих характеристик с эталонными.

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

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

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

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

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

• запись криптографически преобразованных эталонных характери- стик аппаратно-программной среды компьютер на винчестер.

Преобразованные эталонные характеристики аппаратно-программной среды могут быть занесены в следующие области жесткого диска:

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

• в зарезервированные сектора системной области винчестера;

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

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

• с использованием шифрования.

Односторонние функции это функции, для которых при любом x из области определения легко вычислить f(x), однако почти для всех y из ее области значений, найти y=f(x) вычислительно трудно. Если эталонные характеристики программно-аппаратной среды пред- ставить в виде аргумента односторонней функции x, то y - есть «образ» этих характеристик, который хранится на винчестере и по значению которого вычислительно невозможно получить сами характеристики. Примером такой односторонней функции может служить функция дискретного возведения в степень, с размерностью операндов не менее 512 битов.

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

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

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

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

• в зарезервированные сектора системной области винчестера.

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

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

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

Манипуляции с кодом программы При манипуляциях с кодом программы можно привести два следующих способа:

• включение в тело программы «пустых» модулей;

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

Эти модули содержат большое количество команд, не имею- щих никакого отношения к логике работы программы. Но «ненужность» этих программ не должна быть очевидна потенциальному злоумышленни- ку. Второй способ заключается в изменении начала защищаемой про- граммы таким образом, чтобы стандартный дизассемблер не смог ее правильно дизассемблировать. Например, такие программы, как Nota и Copylock, внедряя защитный механизм в защищаемый файл, полностью модифицируют исходный заголовок EXE-файла. Все перечисленные методы были, в основном направлены на проти- водействия статическим способам снятия защиты от копирования. В сле- дующем подразделе рассмотрим методы противодействия динамическим способам снятия защиты.

10 10101010101010101010010101010101001010101010

Хэш-функция — это функция, устойчивая к коллизиям. Под устойчивостью к коллизиям понимается тот факт, что невозможно найти два разных сообщения m1 и m2, таких, что H(m1)=H(m2), где H — хэш функция. Что касается псеводслучайных функций, то в настоящее время вместо специальных PRF используется хэш функция в конструкции HMAC (HMAC — механизм аутентификации сообщений с использованием хэш функций). Для определения HMAC нам понадобится криптографическая хэш функция (обозначим ее как H) и секретный ключ K. Мы предполагаем, что H является хэш функцией, где данные хэшируются с помощью процедуры сжатия, последовательно применяемой к последовательности блоков данных. Мы обозначим за B длину таких блоков в байтах, а длину блоков, полученных в результате хэширования — как L (L<B). Ключ K может иметь длину, меньшую или равную B. Если приложение использует ключи большей длины, сначала мы должны хэшировать сам ключ с использованием H, и только после этого использовать полученную строку длиной L байт, как ключ в HMAC. В обоих случаях рекомендуемая минимальная длина для K составляет L байт. Определим две следующие различные строки фиксированной длины: ipad = байт 0x36, повторенный B раз;

opad = байт 0x5C, повторенный B раз.

Для вычисления HMAC от данных 'text' необходимо выполнить следующую операцию:

H(K XOR opad, H(K XOR ipad, text))

Из описания следует, что IKE использует для аутентификации сторон HASH величины. Отметим, что под HASH в данном случае подразумевается исключительно название Payload в ISAKMP, и это название не имеет ничего общего со своим содержимым.

11 11111111111111111111111111111111111111111111111111111111

Инфраструктура открытых ключей (англ. PKI - Public Key Infrastructure) — набор средств (технических, материальных, людских и т. д.), распределенных служб и компонентов, в совокупности используемых для поддержки криптозадач на основе закрытого и открытого ключей.

В основе PKI лежит использование криптографической системы с открытым ключом и несколько основных принципов:

  1. закрытый ключ известен только его владельцу;

  2. удостоверяющий центр создает сертификат открытого ключа, таким образом удостоверяя этот ключ;

  3. никто не доверяет друг другу, но все доверяют удостоверяющему центру;

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

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

PKI реализуется в модели клиент-сервер, то есть проверка какой-либо информации, предоставляемой инфраструктурой может происходить только по инициативе клиента.

Основные компоненты PKI

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

  1. он является доверенной третьей стороной (trusted third party)

  2. это сервер, который осуществляет управление сертификатами.

  • Сертификат открытого ключа (чаще всего просто сертификат) — это данные пользователя и его открытый ключ, скрепленные подписью удостоверяющего центра. Выпуская сертификат открытого ключа, удостоверяющий центр тем самым подтверждает, что лицо, поименованное в сертификате, владеет секретным ключом, который соответствует этому открытому ключу.

  • Регистрационный центр (РЦ) — необязательный компонент системы, предназначенный для регистрации пользователей. Для этих целей РЦ обычно предоставляет web-интерфейс. Удостоверяющий центр доверяет регистрационному центру проверку информации о субъекте. Регистрационный центр, проверив правильность информации, подписывает её своим ключом и передаёт удостоверяющему центру, который, проверив ключ регистрационного центра, выписывает сертификат. Один регистрационный центр может работать с несколькими удостоверяющими центрами (то есть состоять в нескольких PKI), один удостоверяющий центр может работать с несколькими регистрационными центрами. Иногда, удостоверяющий центр выполняет функции регистрационного центра.

  • Репозиторий — хранилище, содержащее сертификаты и списки отозванных сертификатов (СОС) и служащее для распространения этих объектов среди пользователей. В Федеральном Законе РФ № 63 «Об электронной подписи» он называется реестр сертификатов ключей подписей.

  • Архив сертификатов — хранилище всех изданных когда-либо сертификатов (включая сертификаты с закончившимся сроком действия). Архив используется для проверки подлинности электронной подписи, которой заверялись документы.

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

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

12 1212121212121212121212121212121212121212121212121212

Среди направлений международной стандартизации можно выделить ряд наиболее важных для обеспечения защищенности информационных технологий. Рабочая группа - ISO/ITC JTC1/SC27/WG3 - Критерии оценки безопасности - разрабатывает в этой области следующие направления:

  • критерии оценки защищенности информационных технологий;

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

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

По этим направлениям созданы проекты стандартов:

  • JTC1.27.13 - Служебные информационные объекты защиты;

  • JTC1.27.14 - Руководство по управлению и административным мерам защиты информации. Часть 1: Концепция и модели защиты информации. Часть 2: Управление и планирование защиты информации. Часть 3: Методы административного управления защитой информации;

  • JTC1.27.15 - Сбор и анализ требований к критериям оценки безопасности ИТ;

  • JTC1.27.16 - Критерии оценки безопасности информационных технологий. Часть 1: Общая модель. Часть 2: Функциональность защиты в продуктах, системах и компонентах информационных технологий. Часть 3: Удостоверение защищенности продуктов, систем и компонент информационных технологий;

  • JTC1.27.17 - Механизмы защиты на базе методов с нулевым знанием;

  • JTC1.27.18 - Управление ключами.

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

13 131313131313131313131313131313131313131313131313

Сертификат открытого ключа (сертификат ЭЦП, сертификат ключа подписи, сертификат ключа проверки электронной подписи (согласно ст. 2 Федерального Закона от 06.04.2011 «Об электронной подписи» № 63-ФЗ)) — цифровой или бумажный документ, подтверждающий соответствие между открытым ключом и информацией, идентифицирующей владельца ключа. Содержит информацию о владельце ключа, сведения об открытом ключе, его назначении и области применения, название центра сертификации и т. д.

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

  • для проверки подписи владельца (аутентификация)

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

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

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

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

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