Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шнайер - Прикладная криптография.doc
Скачиваний:
13
Добавлен:
01.05.2025
Размер:
10 Мб
Скачать
☆

10.2 Криптография с открытыми ключами против симметричной криптографии

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

Неедхэм и Шредер [1159] показали, что количество и размер сообщений при алгоритмах с открытыми ключами намного больше, чем при симметричных алгоритмах. Согласно их выводам симметричный алгоритм гораздо эффективнее алгоритма с открытыми ключами. Тем не менее, этот анализ показал значительные преимущества криптографии с открытыми ключами. Уитфилд Диффи пишет [492, 494]:

Рассматривая криптографию с открытыми ключами как новую форму криптографии, а не новую форму управления ключами, я перевел спор на почву безопасности и эффективности одновременно. Оппоненты правильно заметили, что скорость системы RSA составляет одну тысячную от скорости работы DES, а необходимые ключи должны быть в десять раз длиннее. Хотя с самого начала было очевидно, что использование систем с открытыми ключами может быть ограничено обменом ключей для обычной (симметричной) криптографии, немедленной ясности в необходимости такого ее использования не было. В этом контексте предложение создать гибридные системы [879] по праву приветствовалось как открытие.

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

В Части I обсуждались и другие примитивы: однонаправленные хэш-функции, коды проверки подлинности сообщений, и т.д. В Табл. -1 перечисляются различные типы алгоритмов и их свойства [804].

Табл. -1. Классы алгоритмов

Алгоритм

Конфиденциальность

Проверка подлинности

Целостность

Управление ключами

Алгоритмы симметричного шифрования

Да

Нет

Нет

Да

Алгоритмы шифрования с открытыми ключами

Да

Нет

Нет

Да

Алгоритмы цифровой подписи

Нет

Да

Да

Нет

Алгоритмы согласования ключей

Да

Необязательно

Нет

Да

Одно направленные хэш-функции

Нет

Нет

Да

Нет

Коды проверки подлинности сообщения

Нет

Да

Да

Нет

10.3 Шифрование каналов связи

Вот классическая проблема Алисы и Боба: Алиса хочет послать Бобу безопасное сообщение. Как ей быть? Она шифрует сообщение.

В теории, это шифрование может быть выполнено на любом уровне коммуникационной модели OSI (Open Systems Interface, взаимодействие открытых систем). (Дополнительную информацию о стандарте архитектуры безопасности OSI можно найти в [305].) На практике, шифрование выполняется либо на самых нижних уровнях (первом и втором), либо на верхних уровнях. Если оно происходит на нижних уровнях, оно называется канальным шифрованием, шифруется все, проходящее через конкретный канал данных. Если шифрование происходит на верхних уровнях, оно называется сквозным шифрованием, данные шифруются выборочно и остаются зашифрованными, пока их не расшифрует окончательный получатель. У каждого подхода есть свои преимущества и недостатки.

Канальное шифрование

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

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

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

Рис. -1. Канальное шифрование.

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

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

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

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

Табл. -2. Канальное шифрование: преимущества и недостатки

Преимущества:

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

Требуется только один набор ключей на канал.

Обеспечивает безопасность трафика, так как шифруется любая информация о маршрутизации.

Диалоговое шифрование.

Недостатки:

Данные раскрываются на промежуточных узлах

Сквозное шифрование

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

Такой подход позволяет избежать проблемы шифрования/дешифрирования на физическом уровне. При сквозном шифровании данные остаются зашифрованными, пока не будут доставлены к месту назначения (см Рис. -2). Основной проблемой сквозного шифрования является открытость информации о маршрутизации. Хороший криптоаналитик многое может узнать из того, кто, кому, когда передает информацию и каков ее объем, даже не зная содержания этой информации. Усложняется и управление ключами, так как пользователи должны быть уверены, что они используют общие.

Рис. -2. Сквозное шифрование.

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

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

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

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

Табл. -3. Сквозное шифрование: преимущества и недостатки

Преимущества:

Высокий уровень безопасности.

Недостатки:

Необходима более сложная система управления ключами.

Возможен анализ трафика, так как маршрутная информация не шифруется.

Шифрование выполняется в автономном режиме.

Объединение двух подходов

В Табл. -4, прообраз которой взят из [1244], выполнено сравнение канального и сквозного шифрований. Объединение обоих подходов хотя и весьма дорого, но является самым эффективным способом обеспечить безопасность сети. Шифрование каждого физического канала делает невозможным анализ маршрутной информации, а сквозное шифрование уменьшает угрозу для незашифрованных данных на различных узлах сети. Управление ключами в обеих схемах может быть совершенно независимым: сетевые администраторы занимаются шифрованием на физическом уровне, а пользователи отвечают за сквозное шифрование.