4 Настройки безопасности в почтовых системах: TLS, SSL, цифровая подпись.
TLS (англ. Transport Layer
Security) — криптографический протокол, обеспечивающий безопасную передачу
данных между пользователями в сети Интернет.
TLS-протокол основан на
Netscape SSL-протоколе версии 3.0 и состоит из двух частей — TLS Record
Protocol и TLS Handshake Protocol. Различие между SSL 3.0 и TLS 1.0
незначительные, поэтому далее в тексте термин «SSL» будет относиться к ним
обоим. Большинство современных браузеров поддерживает данный протокол. TLS Working Group, основанная в 1996 году, продолжает работать над протоколом.
SSL, используя криптографию,
предоставляет возможности аутентификации и безопасной передачи данных через
Интернет. Часто происходит лишь аутентификация сервера, в то время как клиент
остается неаутентифицированным. Для взаимной аутентификации каждая из сторон
должна поддерживать инфраструктуру открытого ключа (PKI), которая позволяет
защитить клиент-серверные приложения от перехвата сообщений, редактирования
существующих сообщений и создания поддельных.
SSL включает в себя три
основных фазы:
Диалог между сторонами,
целью которого является выбор алгоритма шифрования
Обмен ключами на основе криптосистем
с открытым ключом или аутентификация на основе сертификатов.
Передача данных, шифруемых при
помощи симметричных алгоритмов шифрования
В первой фазе клиент и сервер
обсуждают выбор криптографического алгоритма для дальнейшего использования. В
данной версии протокола доступны следующие алгоритмы:
Для обмена ключами и проверки
их подлинности применяются комбинации алгоритмов: RSA (асимметричный шифр),
Diffie-Hellman (безопасный обмен ключами), DSA (алгоритм цифровой подписи) и
алгоритмы технологии Fortezza.
Для симметричного шифрования:
RC2, RC4, IDEA, DES, Triple DES или AES;
Для хэш-функций: MD5 или
SHA.
SSL (англ. Secure Sockets
Layer — протокол защищённых сокетов) — криптографический протокол,
обеспечивающий безопасную передачу данных по сети Интернет. При его
использовании создаётся защищённое соединение между клиентом и сервером. SSL
изначально разработан компанией Netscape Communications, в настоящее время принят
IETF как стандарт. Поддерживается всеми популярными браузерами.
Использует шифрование с открытым
ключом для подтверждения подлинности передатчика и получателя. Поддерживает
надёжность передачи данных за счёт использования корректирующих кодов и
безопасных хэш-функций.
SSL состоит из двух уровней.
На нижнем уровне многоуровневого транспортного протокола (например, TCP) он
является протоколом записи и используется для инкапсуляции (то есть формирования
пакета) различных протоколов. Для каждого инкапсулированного протокола он
обеспечивает условия, при которых сервер и клиент могут подтверждать друг другу
свою подлинность, выполнять алгоритмы шифрования и производить обмен криптографическими
ключами, прежде чем протокол прикладной программы начнёт передавать и получать
данные.
Для доступа к страницам,
защищённым протоколом SSL, в URL вместо обычного префикса (schema) http, как правило,
применяется префикс https (порт 443), указывающий на то, что будет
использоваться SSL соединение. Так как операции шифрования / расшифрования требуют
много вычислительных ресурсов, чтобы снизить нагрузку на веб-серверы,
используют аппаратные SSL-ускорители.
Для работы SSL требуется,
чтобы на сервере имелся SSL-сертификат.
Электронная цифровая подпись
(ЭЦП) - реквизит электронного документа, предназначенный для удостоверения
источника данных и защиты данного электронного документа от подделки.
Цифровая подпись
обеспечивает:
Удостоверение источника
документа. В зависимости от деталей определения документа могут быть подписаны
такие поля, как «автор», «внесённые изменения», «метка времени» и т. д.
Защиту от изменений
документа. При любом случайном или преднамеренном изменении документа (или
подписи) изменится хэш, следовательно, подпись станет недействительной.
Невозможность отказа от авторства.
Так как создать корректную подпись можно лишь, зная закрытый ключ, а он
известен только владельцу, то владелец не может отказаться от своей подписи под
документом.
Возможны следующие угрозы
цифровой подписи:
Злоумышленник может
попытаться подделать подпись для выбранного им документа.
Злоумышленник может
попытаться подобрать документ к данной подписи, чтобы подпись к нему подходила.
Злоумышленник может
попытаться подделать подпись для хоть какого-нибудь документа.
При использовании надёжной
хэш-функции, вычислительно сложно создать поддельный документ с таким же хэшем,
как у подлинного. Однако, эти угрозы могут реализоваться из-за слабостей конкретных
алгоритмов хэширования, подписи, или ошибок в их реализациях.
Тем не менее, возможны ещё
такие угрозы системам цифровой подписи:
Злоумышленник, укравший закрытый
ключ, может подписать любой документ от имени владельца ключа.
Злоумышленник может обманом
заставить владельца подписать какой-либо документ, например используя протокол
слепой подписи.
Злоумышленник может
подменить открытый ключ владельца (см. управление ключами) на свой собственный,
выдавая себя за него.
Сертификат (сертификат открытого
ключа, сертификат ЭЦП) — цифровой или бумажный документ, подтверждающий
соответствие между открытым ключом и информацией, идентифицирующей владельца
ключа. Содержит информацию о владельце ключа, сведения об открытом ключе, его
назначении и области применения, название центра сертификации и т. д.
Открытый ключ может быть
использован для организации защищённого канала связи с владельцем двумя
способами:
для проверки подписи
владельца (аутентификация)
для шифрования посылаемых
ему данных (конфиденциальность)
Существует две модели организации
инфраструктуры сертификатов: централизованная (PKI) и децентрализованная (PGP).
В централизованной модели существуют корневые центры сертификации, подписи которых
обязан доверять каждый пользователь. В децентрализованной модели каждый
пользователь самостоятельно выбирает, каким сертификатам он доверяет и в какой
степени.