Угрозы компьютерной безопасности Парольная защита операционных систем Криптографические ключи Аппаратное и программное шифрование Информационная деятельность Технологии программирования

Информационная защита. Курс лекций по информатике

Протокол обмена ключами с цифровой подписью

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

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

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

Одновременная передача ключа и сообщения

Антон и Борис совершенно необязательно передают друг другу сеансовые ключи перед тем, как приступить к обмену сообщениями. Вместо этого они могут воспользоваться следующим протоколом:

1. Антон генерирует случайный сеансовый ключ К и с помощью него

 зашифровывает сообщение М, получая в результате ЕK(М).

2. Антон извлекает открытый ключ Бориса В из базы данных.

3. Антон шифрует сеансовый ключ К при помощи В, получая в

 результате ЕВ(К).

4. Антон посылает Борису ЕK (М) и ЕВ (K).

5. Борис расшифровывает сеансовый ключ К с помощью своего тайного

 ключа.

6. Борис расшифровывает сообщение Антона на сеансовом ключе К.

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

Множественная рассылка ключей и сообщений

Почему бы Антону не послать шифрованное сообщение сразу нескольким адресатам? Он может сделать это, например так:

1. Антон генерирует случайный сеансовый ключ Кис его помощью

 зашифровывает сообщение М, получая в результате ЕK (М).

2. Антон извлекает открытые ключи Бориса, Владимира и Георгия из

 базы данных.

3. Антон шифрует К при помощи открытых ключей Бориса, Владимира и

 Георгия, получая в результате ЕБ (K), ЕВ (К)и ЕГ (К).

4. Антон посылает шифрованное сообщение ЕK (М), а также многократно

зашифрованный сеансовый ключ (ЕБ (К), ЕВ (К)и ЕГ (К)) всем, кто пожелает их получить.

5. Только Борис, Владимир и Георгий смогут расшифровать сеансовый

 ключ К при помощи своих тайных ключей.

6. Только Борис, Владимир и Георгий смогут прочесть шифрованное

 сообщение Антона с помощью сеансового ключа К.

Аутентификация

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

Аутентификация при помощи  однонаправленных функций

На сервере, который проверяет правильность введенного Антоном пароля, совершенно не обязательно хранить пароли пользователей. Достаточно научить сервер отличать правильные пароли от неправильных. Это легко сделать при помощи однонаправленных функций. Тогда на сервере будут присутствовать не сами пароли, а их хэш-значения:

1. Антон посылает на сервер свой пароль.

2. С помощью однонаправленной функции сервер вычисляет 

 хэш-значение для присланного Антоном пароля.

3. Сервер сравнивает вычисленное хэш-значение с эталоном, который

 хранится в его памяти, и делает вывод о правильности пароля Антона.

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

Отражение словарной атаки при помощи "изюминок"

Файл с хэш-значениями, полученными из паролей, может подвергнуться словарной атаке. Составив словарь примерно из 1 млн самых распространенных паролей, Зиновий применит к ним хэш-функцию. В результате он получит файл объемом до 10 Мбайт, который уместится на нескольких дискетах. Далее Зиновий украдет с сервера файл с паролями, зашифрованными с помощью хэш-функции, и сравнит его со своим файлом, содержащим хэш-значения для самых часто используемых паролей. Совпадающие хэш-значения позволят Зиновию определить некоторые из паролей.

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

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

“Изюма” понадобится много. Во многих версиях операционной системы UNIX используются “изюминки” длиной 12 бит. Этого явно недостаточно: существуют программы, которые при помощи словарной атаки позволяют за неделю вскрыть от 30 до 40% всех паролей, применяемых пользователями UNIX.

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

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

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

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

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

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

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


Рынок информационных продуктов и услуг: структура и характерные особенности