Сравнение с некоторыми типами алгоритмов
Речь пойдет о простых типах алгоритмов аутентификации и их уязвимостях в сравнении с данным, что покажет преимущества SRP.
Самый простой способ аутентификации — передача незашифрованного пароля от клиента к серверу, после чего сервер сравнивает полученный пароль или его хеш с элементом базы данных. Очевидный недостаток — уязвимость к прослушиванию.
Модифицируя первый алгоритм, получаем аутентификацию с запросом и подтверждением (challenge-responce), где обмен происходит так:
· Клиент — Сервер: username+r, где r — произвольный текст
· Сервер — Клиент: с, где с — произвольный текст (challenge)
после этого клиент вычисляет хеш от трех величин: r, c, password, и посылает его обратно. Данный метод уязвим к перебору, так как злоумышленник, имея r, c, hash, может подобрать пароль клиента.
Анализируя первые два алгоритма, можно прийти к третьему, который защищен и от перебора по словарю. Семейство таких протоколов называется EKE. Суть этого алгоритма в том, что обе стороны генерируют свои открытые ключи для асимметричного шифрования, и обмениваются или с помощью симметричного алгоритма, используя известный обоим пароль пользователя как ключ. Данное семейство протоколов имеет широкое распространение, с разными реализованными модификациями, добавляющими некоторые свойства:
1. При получении пароля злоумышленник не может расшифровать обмен данными, который уже состоялся, либо при получении сессионного ключа какого-либо сеанса он не может узнать пароль пользователя (даже полным перебором), однако, по-прежнему, на сервере хранится аналог открытого текста пароля, который может быть украден для получения собственно пароля (например, DH-EKE, SPEKE).
2. При получении информации из базы данных сервера, злоумышленник не может получить из них пароль, но теряется предыдущее свойство(например, A-EKE).
3. Модификация обладает свойствами 1 и 2 за счет введения дополнительного раунда обмена ключами, однако претерпевает сильную потерю в производительности из-за значительных дополнительных вычислений.
Для того, чтобы избежать всех указанных уязвимостей и получить алгоритм с хорошей скоростью работы, была разработана концепция AKE(Asymmetric key exchange), отличающаяся от предыдущих прежде всего тем, что при передаче данных отсутствует всякое шифрование, которое избавляет систему от ненужных затрат вычислительной мощности и возможных уязвимостей определенных алгоритмов шифрования. Одной из реализаций AKE и является SRP.
Протокол SSL
SSL (англ. Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, который обеспечивает установление безопасного соединения между клиентом и сервером. SSL изначально разработан компанией Netscape Communications.
Протокол обеспечивает конфиденциальность обмена данными между клиентом и сервером, использующими TCP/IP, причём для шифрования используется асимметричный алгоритм с открытым ключом. При шифровании с открытым ключом используется два ключа, причем любой из них может использоваться для шифрования сообщения. Тем самым, если используется один ключ для шифрования, то соответственно для расшифровки нужно использовать другой ключ. В такой ситуации можно получать защищённые сообщения, публикуя открытый ключ, и храня в тайне секретный ключ.
Описание
Протокол SSL состоит из двух подпротоколов: протокол SSL записи и рукопожатия. Протокол SSL записи определяет формат, используемый для передачи данных. Протокол SSL включает рукопожатие с использованием протокола SSL записи для обмена сериями сообщений между сервером и клиентом, во время установления первого соединения. Для работы SSL требуется, чтобы на сервере имелся SSL-сертификат.
SSL предоставляет канал, имеющий 3 основных свойства:
· Аутентификация. Сервер всегда аутентифицируется, в то время как клиент аутентифицируется в зависимости от алгоритма.
· Целостность. Обмен сообщениями включает в себя проверку целостности.
· Частность канала. Шифрование используется после установления соединения и используется для всех последующих сообщений.
В протоколе SSL все данные передаются в виде записей-объектов, состоящих из заголовка и передаваемых данных. Передача начинается с заголовка. Заголовок содержит либо два, либо три байта кода длины. Причём, если старший бит в первом байте кода равен единице, то запись не имеет заполнителя и полная длина заголовка равна двум байтам, иначе запись содержит заполнитель и полная длина заголовка равна трём байтам. Код длины записи не включает в себя число байт заголовка.
История и развитие
- разработан компанией Netscape.
- послужила основой для создания протокола TLS 1.0, стандарт протокола Internet Engineering Task Force (IETF) впервые был определен в RFC 2246 в январе 1999 года. Visa, Master Card, American Express и многие другие организации, работающие с интернет деньгами, имеют лицензию на использование протокола SSL, для коммерческих целей в сети Интернет.
SSL работает модульным способом. Тем самым SSL расширяемо в соответствии с проектом о поддержке передней и обратной совместимости и переговорам между соединениями в одноранговой сети.
Применение
Значительное использование протокола SSL привело к формированию протокола HTTPS (Hypertext Transfer Protocol Secure), поддерживающего шифрование. Данные, которые передаются по протоколу HTTPS, «упаковываются» в криптографический протокол SSL или TLS, тем самым обеспечивая защиту этих данных. Такой способ защиты широко используется в мире Веб для приложений, в которых важна безопасность соединения, например в платёжных системах. HTTPS поддерживается всеми браузерами. В отличие отHTTP
, для HTTPS по умолчанию используется TCP-порт 443.Изначально виртуальные частные сети (VPN) на основе SSL разрабатывались как дополнительная и альтернативная технология удалённого доступа на основе IPsec VPN. Однако, такие факторы как достаточная надёжность и дешевизна сделали эту технологию привлекательной для организации VPN. Также SSL получил широкое применение в электронной почте.