Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 247
Текст из файла (страница 247)
Следующий шаг состоит в установлении безопасных соединений, Сейчас мы рассмотрим, как это делается. Когда веб-технологии были впервые представлены широкой публике, они использовались для распространения статических страниц. Однако уже давным- давно некоторые компании задумались об использовании Паутины для выполнения финансовых транзакций, таких как покупка товаров по кредитным картам, онлайновые банковские операции, электронная торговля ценными бумагами. Для таких приложений требовалась организация защищенных соединений. В 1995 году тогдашний лидер среди производителей браузеров, корпорация Хегзсаре СопппцшсаБопз, в ответ на это представила систему безопасности под названием ЯЯ.
(Яесцге Яоскегз 1луег — протокол защищенных сокетов). Соответствую- Защита информации во Всемирной паутине 917 шее программное обеспечение, как и сам протокол, в наше время используется очень широко (в том числе и программой 1пгегпеь Ехр!огег), поэтому стоит рассмотреть 881. более детально. Итак, 881 создает защищенное соединение между двумя сокетами, позволяющее: + клиенту и серверу договориться об используемых параметрах; + клиенту и серверу произвести взаимную аутентификацию; + организовать тайное общение; + обеспечить зашиту целостности данных.
Все перечисленные пункты нам уже знакомы, поэтому мы не будем их комментировать. Расположение 881 в структуре обычного стека протоколов показано на рис, 8.45. По сути дела, между прикладным и транспортным уровнями появляется новый уровень, принимающий запросы от браузера и отсылающий их по ТСР для передачи серверу, После установки защищенного соединения основная задача ВЯ. заключается в поддержке сжатия и шифрования.
Если поверх 8БЕ используется НТТР, этот вариант называется ИТТИ (8есцге НТТР— защищенный НТТР) несмотря на то, что это обычный протокол НТТР. Впрочем, возможно и отличие: скажем, доступ может осушествляться через новый порт (443) вместо стандартного (80). Кстати говоря, область применения 88Е не ограничивается исключительно веб-браузерами, но это наиболее распространенное применение. Рис. 8.45. Уровни (и протоколы), используемые обычным домашним браузером с НВ Существуег несколько версий протокола ЯЯ.. Далее мы будем обсуждать только версию 3, так она распространена наиболее широко. 881. поддерживает множество разных алгоритмов и может обладать разными дополнительными функциями, среди которых наличие или отсутствие сжатия, тот или иной алгоритм шифрования, а также некоторые вещи, связанные с ограничениями экспорта в криптографии.
Последнее, в основном, предназначено для того, чтобы можно было 918 Глава 8. Безопасность в сетях удостовериться, что оба конца соединения находятся в США. Иногда длину ключа ограничивают 40 битами, что шифровальщики воспринимают как своего рода шутку. Однако Хесзсаре должен был ввести это ограничение, чтобы получить лицензию на экспорт от правительства США. ЯБЕ состоит из двух субпротоколов, один из которых предназначен для установления защищенного соединения, а второй — для использования этого соединения. Начнем с рассмотрения вопроса установления соединения. Работа субпротокола, занимающегося этим, показана на рис. 8 46. Все начинается с сообщения 1, в котором Алиса посылает Бобу запрос на установку соединения.
В нем указываются версия 881., а также предпочтения Алисы относительно сжатия и алгоритмов шифрования. Также в нем содержится ноно йм который будет использован впоследствии. Теперь наступает очередь Боба. В сообщении 2 он выбирает один из алгоритмов, поддерживаемых Алисой, и посылает собственный ноно йз, В сообщении 3 он отсылает сертификат со своим открытым ключом. Если сертификат не подписан какой-нибудь уважаемой организапией, он также отправляет цепочку сертификатов, по которым Алиса может удостовериться в том, что сертификату Боба действительно можно доверять.
Все браузеры, включая тот, что установлен у Алисы, изначально снабжаются примерно сотней открытых ключей, поэтому если среди присланных Бобом сертификатов встретится один из этих ключей, Алиса сможет по нему восстановить ключ Боба и проверить его. В этот момент Боб может прислать и другие сообщения (например, запрос на получение сетификата Алисы с ее открытым ключом). После окончания выполнения своей части протокола Боб посылает сообщение 4, в котором говорит, что настала очередь Алисы. Алиса в ответ выбирает 384-разрядный подготовительный ключ и посылает его Бобу, зашифровав предварительно своим открытым ключом (сообщение 5).
Настоящий ключ сеанса вычисляется при помощи подготовительного ключа и нонсов обеих сторон. Это довольно сложная процедура. После получения сообщения 5 и Алиса, н Боб могут вычислить ключ сеанса. Для этого Алиса просит Боба переключиться на новый шифр (сообщение 6), а также сообщает о том, что она считает субпротокол установления соединения оконченным (сообщение 7). Боб соглашается с ней (сообщения 8 и 9). Однако несмотря на то, что Алиса знает, кто такой Боб, последний Алису не знает (если только у нее нет открытого ключа и сертификата к нему, что довольно необычно для обычного физического лица).
Поэтому первым сообщением для Алисы запросто может оказаться просьба пройти регистрацию, используя полученные ранее имя пользователя и пароль. Впрочем, протокол регистрации в системе не выходит за область полномочий 88П Так илп иначе, по окончании этой серии запросов-подтверждений может начинаться передача данных. Как уже говорилось, ББЕ поддерживает разнообразные криптографические алгоритмы. Наиболее сильный из них использует для шифрации тройной ЭЕЯ с тремя отдельными ключами и ЯНА-1 для обеспечения целостности данных.
Такое сочетание алгоритмов работает довольно медленно, поэтому применяется в основном при выполнении банковских операций и в других приложениях, в которых Защита информации во Всемирной паутине 91В требуется высокий уровень защиты. В обычных приложениях электронной ком мерции для шифрации применяется 128-разрядный ключ, а для аутентифика ции — МП5. В качестве исходных данных КС4 передается 128-разрядный ключ, который разрастается во много раз при работе алгоритма. Это внутреннее число используется для создания ключевого потока Последний суммируется по модулю 2 с открытым текстом, в результате чего получается обычный потоковый шифр, как было показано на рис.
8.12. Экспортные версии алгоритма также работают с алгоритмом КС4 и 128-разрядным ключом, однако 88 из этих разрядов делаются открытыми, что позволяет довольно быстро взломать шифр. Рис. 8.46. Упрощенный вариант субпротоколе 88с установления соединения Для реальной передачи данных используется второй субпротокол, показанный на рнс.
8.47. Сообщения, поступающие от браузера, разбиваются на единицы данных размером до 16 Кбайт. Если сжатие включено, каждая из этих единиц независимо сжимается. Затем по двум нонсам вычисляется закрытый ключ, подготовительный ключ объединяется со сжатым текстом и результат хэшируется по согласованному алгоритму (чаще всего МП5). Хэш добавляется к каждому фрагменту в виде МАС (Меззайе Апгпег1сайоп Сок(е — код аутентификации сообщения). Этот сжатый фрагмент вместе с МАС кодируется согласованным алгоритмом с симметричным ключом (обгячно это суммирование по модулю 2 с ключевым потоком КС4).
Наконец, присоединяется заголовок фрагмента, и фрагмент передается по ТСР-соединению. Следует остерегаться следующего подводного камня: уже говорилось о том, что КС4 имеет некоторые слабые ключи, которые довольно просто взламываются, поэтому 88Е с КС4 — это довольно шаткая основа (Р1иЬгег и др., 2001). Браузеры, позволяющие пользователю выбирать тот или иной шифр, лучше всего 020 Глава 8. Безопасность в сетях настраивать на постоянное использование тройного алгоритма РЕЯ со 168-разрядными ключами и ЯНА-1 невзирая на то, что такая комбинация работает еше медленнее, чем КС4 е МП5, фрагментация Сжатие ентификации общения Добавление мдс Шифрация Добавление заголовка Рис.