SSL

Поделись знанием:
Перейти к: навигация, поиск

SSL (англ. secure sockets layer — уровень защищённых cокетов) — криптографический протокол, который подразумевает более безопасную связь. Он использует асимметричную криптографию для аутентификации ключей обмена, симметричное шифрование для сохранения конфиденциальности, коды аутентификации сообщений для целостности сообщений. Протокол широко использовался для обмена мгновенными сообщениями и передачи голоса через IP (англ. Voice over IP — VoIP) в таких приложениях, как электронная почта, Интернет-факс и др. В 2014 году правительство США сообщило об уязвимости в текущей версии протокола[1]. SSL должен быть исключен из работы в пользу TLS (см. CVE-2014-3566).

SSL изначально разработан компанией Netscape Communications для добавления протокола HTTPS в свой веб-браузер Netscape Navigator. Впоследствии на основании протокола SSL 3.0 был разработан и принят стандарт RFC, получивший имя TLS.





Содержание

Описание

Протокол SSL обеспечивает защищенный обмен данных за счет двух следующих элементов:

  • Аутентификация
  • Шифрование

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

Протокол SSL предоставляет «безопасный канал», который имеет три основных свойства:

  1. Канал является частным. Шифрование используется для всех сообщений после простого диалога, который служит для определения секретного ключа.
  2. Канал аутентифицирован. Серверная сторона диалога всегда аутентифицируется, а клиентская делает это опционально.
  3. Канал надежен. Транспортировка сообщений включает в себя проверку целостности.

Преимуществом SSL является то, что он независим от прикладного протокола. Протоколы приложений (HTTP, FTP, TELNET и т. д.) могут работать поверх протокола SSL совершенно прозрачно, то есть SSL может согласовывать алгоритм шифрования и ключ сессии, а также аутентифицировать сервер до того, как приложение примет или передаст первый байт сообщения.

История и развитие

SSL 1.0, 2.0 и 3.0

Протокол SSL был изначально разработан компанией Netscape Communications. Версия 1.0 никогда не была обнародована. Версии 2.0 была выпущена в феврале 1995 года, но содержала много недостатков по безопасности, которые привели к разработке SSL версии 3.0[2]. SSL версии 3.0, выпущенный в 1996 году, послужил основой для создания протокола TLS 1.0, стандарт протокола Internet Engineering Task Force (IETF), который впервые был определен в RFC 2246 в январе 1999 года. Visa, Master Card, American Express и многие другие организации имеют лицензию на использование протокола SSL для коммерческих целей в сети Интернет. Тем самым SSL расширяемо в соответствии с проектом о поддержке прямой и обратной совместимости и переговорам между соединениями в одноранговой сети.

TLS 1.0

TLS 1.0 впервые был определен в RFC 2246 в январе 1999 года в качестве обновления версии SSL 3.0. Как указано в RFC, «различия между этим протоколом и SSL 3.0 не критичны, но они значительны для появления несовместимости при взаимодействии TLS 1.0 и SSL 3.0». TLS 1.0 действительно включает средства, с помощью которых реализация подключения TLS к SSL 3.0 ослабит безопасность.

TLS 1.1

TLS 1.1 презентовали в RFC 4346 в апреле 2006 года[3]. Это было обновление TLS версии 1.0. Значительные изменения в этой версии включают в себя:

  • добавлена защита от атак, использующих режим сцепления блоков шифротекста (Cipher Block Chaining);
    • неявный Вектор инициализации (IV) был заменен на явный IV;
    • было проведено изменение в обработке ошибок;
  • введена поддержка IANA регистрации параметров.

TLS 1.2

TLS 1.2 был анонсирован в RFC 5246 в августе 2008 года. Он основан на ранее предложенной версии TLS 1.1.

TLS 1.3 (draft)

С января 2016 года по настоящее время разрабатывается версия 1.3, сейчас доступны драфты — черновики.К:Википедия:Статьи без источников (тип: не указан)[источник не указан 2852 дня]

Принцип работы

К:Википедия:Статьи без источников (тип: не указан)

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

Многослойная среда

Протокол SSL размещается между двумя протоколами: протоколом, который использует программа-клиент (HTTP, FTP, LDAP, TELNET etc) и транспортным протоколом TCP/IP. SSL защищает данные, выступая в роли фильтра для обеих сторон и передает их далее на транспортный уровень. Работу протокола можно разделить на два уровня:

  1. Слой протокола подтверждения подключения (Handshake Protocol Layer)
  2. Слой протокола записи

Первый слой, в свою очередь, состоит из трех подпротоколов:

  1. Протокол подтверждения подключения (Handshake Protocol)
  2. Протокол изменения параметров шифра (Cipher Spec Protocol)
  3. Предупредительный протокол (Alert Protocol)

Протокол подтверждения подключения используется для согласования данных сессии между клиентом и сервером. К данным сессии относятся:

  • Идентификационный номер сессии
  • Сертификаты обеих сторон
  • Параметры алгоритма шифрования
  • Алгоритм сжатия информации
  • «Общий секрет» применен для создания ключей; открытый ключ

Протокол изменения параметров шифра используется для изменения данных ключа (keyingmaterial) — информации, которая используется для создания ключей шифрования. Протокол состоит всего из одного сообщения, в котором сервер говорит, что отправитель хочет изменить набор ключей.

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

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

Цифровые сертификаты

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

  1. Использовать сертификат, выданный CA
  2. Использовать самоподписанный сертификат
  3. Использовать «пустой» сертификат

Самоподписанный сертификат — сертификат, созданный самим пользователем — в этом случае издатель сертификата совпадает с владельцем сертификата. «Пустой» сертификат — сертификат, содержащий фиктивную информацию, используемую в качестве временной для настройки SSL и проверки его функциональности в данной среде.

Механизмы образования ключа для текущей сессии в SSL/TLS

Существует 4 основных алгоритма для образования ключей: RSA, Fixed Diffie-Hellman, Ephemenral Diffie-Hellman, Anonymous Diffie-Hellman

RSA

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

Diffie-Hellman

Механизм Fixed Diffie-Hellman использует постоянный публичный ключ, который прописан в сертификате сервера. Это также означает, что при каждом новом соединении клиент предоставляет свою часть ключа. После обмена ключами образуется новый симметричный ключ для обмена информацией для текущей сессии. При раскрытии приватного ключа сервера криптоаналитик может расшифровать ранее записанные сообщения, а также все будущие сообщения. Это становится возможным из-за самого механизма. Так как криптоаналитик знает частный ключ сервера, он сможет узнать симметричный ключ каждой сессии, и даже тот факт, что механизм образования ключа является двусторонним, не поможет.
Механизм Anonymous Diffie-Hellman не предоставляет гарантий секретности, ибо данные передаются незашифрованными.
Единственный вариант, при котором гарантируется безопасность прошлых и будущих сообщений — Ephemeral Diffie-Hellman. Разница по сравнению с ранее рассмотренными методами заключается в том, что при каждом новом соединении сервером и клиентом создается одноразовый ключ. Таким образом, даже если криптоаналитику достанется текущий частный ключ, он сможет расшифровать только текущую сессию, но не предыдущие или будущие сессии.

Особенности шифрования

Существует два основных способа шифрования данных: симметричный ключ (общий секретный ключ) и асимметричный ключ (открытый ключ).

SSL использует как асимметричную, так и симметричную криптографию.

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

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

RSA — самый распространенный алгоритм шифрования с использованием асимметричных ключей.

При шифровании симметричным ключом используется один и тот же ключ для шифрованных данных. Если стороны хотят обменяться зашифрованными сообщениями в безопасном режиме, то у обеих сторон должны быть одинаковые симметричные ключи. Такой тип шифрования используется для большого объёма данных. Обычно используются алгоритмы DES, 3-DES, RC2, RC4 и AES.

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

Хеширование

Хеш-значение является идентификатором сообщения, его размер меньше размера оригинального сообщения. Самыми известными хеш-алгоритмами являются MD5 (Message Digest 5), который создает 128-битное хеш-значение, SHA-1 (Standard Hash Algorithm), создающий 160-битное хеш-значение, SHA-2 и SHA-3. Результат работы алгоритма хеширования — значение, которое используется для проверки целостности передачи данных.

Уровень записи

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

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

Шифрование можно обозначить в виде функции

C = E(Key, M), где M — исходные данные, Key — ключ шифрования, С — зашифрованные данные.

Как правило, блоки имеют небольшой размер (обычно 16 байт), поэтому возникает вопрос: как зашифровать длинное сообщение?
Первый режим для подобного шифрования называется ECB (Electronic Codebook) или режим простой замены. Его суть состоит в том, что мы разбиваем исходное сообщение на блоки (по те же 16 байт) и шифруем каждый блок отдельно. Однако, данный режим применяет редко из-за проблемы сохранения статистических особенностей исходного текста: 2 одинаковых блока открытого текста после шифрования превратятся в два одинаковых блока зашифрованного текста.
Для решения этой проблемы был разработан второй режим — CBC (Cipher-block chaining). В этом случае каждый новый блок шифротекста XOR’ится с предыдущим результатом шифрования. Первый блок XOR’ится c некоторым вектором инициализации (Initialization Vector, IV). Однако вся вышеизложенная теория разработана для одного большого объекта, в то время как SSL, являясь криптографическим протоколом, должен шифровать серию пакетов. В такой ситуации существует два способа применения CBC:

  1. Обрабатывать каждое сообщение как отдельный объект, генерируя для него каждый раз новый вектор инициализации
  2. Обрабатывать все сообщения как один большой объект, сохраняя режим CBC между ними. В таком случае в качестве вектора инициализации для сообщения n будет использоваться последний блок шифрования предыдущего сообщения (n-1)

Применение

При проектировании приложений SSL реализуется поверх любого другого протокола прикладного уровня, таких как HTTP, FTP, SMTP, NNTP и XMPP. Исторически SSL был использован в первую очередь с надёжными транспортными протоколами, такими как Transmission Control Protocol (TCP). Тем не менее, он также был реализован с датаграммными транспортными протоколами, такими как User Datagram Protocol (UDP) и Datagram Control Protocol (DCCP), использование которого было стандартизировано, что привело к появлению термина Datagram Transport Layer Security (DTLS).

Вебсайты

Частое использование протокола SSL привело к формированию протокола HTTPS (Hypertext Transfer Protocol Secure), поддерживающего шифрование. Данные, которые передаются по протоколу HTTPS, «упаковываются» в криптографический протокол SSL или TLS, тем самым обеспечивая защиту этих данных. Такой способ защиты широко используется в мире Веб для приложений, в которых важна безопасность соединения, например в платёжных системах. В отличие от HTTP, для HTTPS по умолчанию используется TCP-порт 443.

Сайт поддержки протокола
Версия протокола Безопасность Поддержка сайтами
SSL 2.0 Нет 28.4 %
SSL 3.0 Нет 99.8 %
TLS 1.0 Может быть 99.4 %
TLS 1.1 Да 10.4 %
TLS 1.2 12.7 %

Браузеры

По состоянию на 2013 г. все основные веб-браузеры, поддерживающие SSL/TLS:

Браузеры, поддерживающие SSL/TLS
Браузер Платформы TLS 1.0 TLS 1.1 TLS 1.2
Chrome 0-21 Android, iOS, Linux, Mac OS X, Windows (XP, Vista, 7, 8)[a][b] Да Нет Нет
Chrome 29-текущая Android, iOS, Linux, Mac OS X, Windows (XP, Vista, 7, 8,10)[a][b] Да[4] Да[4] Да[5]
Firefox 2 Linux, Mac OS X, Windows (XP, Vista, 7, 8)[c][b] Да[6] Нет[7] Нет[8]
IE 6 Windows (XP)[d] Да Нет Нет
IE 7-8 Windows (XP, Vista)[d] Да Нет Нет
IE 8-9 Windows 7[d] Да Да Да
IE 9 Windows Vista[d] Да Нет Нет
IE 10 Windows (7, 8)[d] Да Да Да
Opera 5-7 Linux, Mac OS X, Windows Да[9] Нет Нет
Opera 8-9 Linux, Mac OS X, Windows Да Да[10] Нет
Opera 10-текущая Linux, Mac OS X, Windows[e] Да Да Да
Safari 4 Mac OS X, Windows (XP, Vista, 7), iOS 4.0[f] Да Нет Нет
Safari 5 Mac OS X, Windows (XP, Vista, 7)[f] Да Нет Нет
Safari 5-текущая iOS 5.0-[g] Да Да Да

Уточнения:

  • В OS X используется TLS, предоставляемый Network Security Services (NSS). По состоянию на март 2013 года NSS 3.14.3 поддерживает TLS 1.0 и 1.1, но не версию 1.2.
  • Firefox 31.2 поддерживает TLS 1.0, 1.1 и 1.2, поддержка SSL 3.0 по умолчанию отключена.
  • IE использует реализацию TLS от операционной системы Microsoft Windows, предоставляемый SChannel. TLS 1.1 и 1.2 по умолчанию отключены[11][12].
  • Opera 10 имеет поддержку TLS 1.2. Предыдущие версии поддерживали TLS 1.0 и 1.1[13]. TLS 1.1 и 1.2 по умолчанию отключены (за исключением версии 9[14]).
  • Safari использует реализацию операционной системы Mac OS X, Windows (XP, Vista, 7)[15][16]. Safari 5 является последней версией, доступной для Windows.
  • Mobile Safari и программное обеспечение сторонних производителей с использованием библиотечных систем UIWebView поддерживают TLS 1.2, как и iOS 5.0[17][18][19].

Использование и реализация

Изначально виртуальные частные сети (VPN) на основе SSL разрабатывались как дополнительная и альтернативная технология удалённого доступа на основе IPsec VPN. Однако, такие факторы, как достаточная надёжность и дешевизна, сделали эту технологию привлекательной для организации VPN. Также SSL получил широкое применение в электронной почте.

Наиболее распространённая реализация SSL — криптографический пакет с открытым исходным кодом OpenSSL, основанный на SSLeay, написанной Эриком Янгом. Последняя версия OpenSSL поддерживает SSLv3. Пакет предназначен для создания и управления различного рода сертификатами. Также в его состав входит библиотека для поддержки SSL различными программами. Библиотека используется, например, модулем SSL в распространенном HTTP-сервере Apache.

Спецификация протокола записей SSL

Формат заголовка записей SSL

Все данные в SSL пересылаются в виде записей или рекордов — объектов, которые состоят из заголовка и некоторого количества данных. Каждый заголовок рекорда содержит 2 или 3 байта кода длины. Если старший бит в первом байте кода длины рекорда равен 1, тогда рекорд не имеет заполнителя и полная длина заголовка равна 2 байтам, в противном случае рекорд содержит заполнитель, и полная длина заголовка равна 3 байтам. В случае длинного (3 байта) заголовка второй по старшинству бит первого байта имеет специальное значение. Если он равен 0 — рекорд является информационным, если он равен 1 — рекорд является security escape. Код длины рекорда не включает в себя число байт заголовка. Для 2-байтового заголовка его длина вычисляется так:

RECORD-LENGTH = ((byte[0] & 0x7F) << 8) | byte[1];

Здесь byte[0] — первый полученный байт, а byte[1] — второй полученный байт.
Для 3-байтового заголовка длина рекорда вычисляется следующим образом:

RECORD-LENGTH = ((byte[0] & 0x3F) <<8) | byte[1];
IS-ESCAPE = (byte[0] & 0x40) !=0;
PADDING = byte[2];

Значение PADDING специфицирует число байтов добавленных отправителем к исходному рекорду. Данные заполнителя используются для того, чтобы сделать длину рекорда кратной размеру блока шифра. Отправитель добавляет PADDING после имеющихся данных, а затем шифрует все это, так как длина этого массива кратна размеру блока используемого шифра. Поскольку известен объём передаваемых данных, заголовок сообщения может быть сформирован с учетом объёма PADDING. Получатель сообщения дешифрует все поле данных и получает исходную информацию, затем вычисляет истинное значение RECORD-LENGTH, при этом PADDING из поля «данные» удаляется.

Формат информационных записей SSL

Часть данных рекорда SSL состоит из 3х компонентов:

  1. MAC-DATA[MAC-SIZE]
  2. ACTUAL-DATA[N]
  3. PADDING-DATA[PADDING]

MAC-DATA — код аутентификации сообщения
MAC-SIZE — функция используемого алгоритма вычисления хеш-суммы
ACTUAL-DATA — реально переданные данные или поле данных сообщения
PADDING-DATA — данные PADDING (при блочном шифровании)

MAC-DATA = HASH[ SECRET, ACTUAL-DATA, PADDING-DATA, SEQUENCE-NUMBER ]

Здесь SECRET передается хеш-функции первым, затем следует ACTUAL-DATA и PADDING-DATA, за которыми передается SEQUENCE-NUMBER — порядковый номер.
Значение SECRET зависит от того, кто именно посылает сообщение. Если это делает клиент, то SECRET равен CLIENT-WRITE-KEY. Если же клиент получает сообщение, SECRET равен CLIENT-READ-KEY.
Порядковый номер представляет собой 32-битовый код, который передается хеш-функции в виде 4 байт, используя сетевой порядок передачи «от старшего к младшему». Порядковый номер — счетчик для сервера или клиента. Для каждого направления передачи используется пара счетчиков — для отправителя и для получателя; каждый раз, когда отправляется сообщение, счетчик увеличивает своё значение на 1.
Получатель сообщения использует ожидаемое значение порядкового номера для передачи MAC (тип хеш-функции определяется параметром CIPHER-CHOICE). Вычисленное значение MAC-DATA должно совпадать с переданным значением. Если сравнение не прошло, сообщение считается поврежденным, что приводит к возникновению ошибки, которая вызывает закрытие соединения.
Окончательная проверка соответствия выполняется, когда используется блочный шифр. Объём данных в сообщении (RECORD-LENGTH) должен быть кратен размеру блока шифра. Если данное условие не выполнено, сообщение считается поврежденным, что приводит к разрыву соединения.

Для 2х-байтового заголовка максимальная длина сообщения равно 32767 байтов, для 3х-байтового 16383 байтов. Сообщения протокола диалога SSL должны соответствовать одиночным рекордам протокола SSL, а сообщения прикладного протокола могут занимать несколько рекордов SSL.

Протокол диалога SSL

Протокол диалога SSL содержит 2 основные фазы.

Фаза 1

Первая фаза используется для установления конфиденциального канала коммуникаций.
Эта фаза инициализирует соединение, когда оба партнера обмениваются сообщениями «hello». Клиент посылает сообщение CLIENT-HELLO. Сервер получает это сообщение, обрабатывает его и посылает в ответ сообщение SERVER-HELLO.
В этот момент и сервер и клиент имеют достаточно информации, чтобы знать, нужен ли новый master key. Если ключ не нужен, сервер и клиент переходят в фазу 2.
Когда возникает необходимость создания нового master key, сообщение сервера SERVER-HELLO уже содержит достаточно данных для того, чтобы клиент мог сгенерировать master key. В эти данные входят подписанный сертификат сервера, список базовых шифров и идентификатор соединения (случайное число, сгенерированное сервером, которое используется на протяжении всей сессии). После генерации клиентом master key он посылает серверу сообщение CLIENT-MASTER-KEY или же сообщение об ошибке, когда клиент и сервер не могут согласовать базовый шифр.
После определения master key сервер посылает клиенту сообщение SERVER-VERIFY, что аутентифицирует сервер.

Фаза 2

Фаза 2 называется фазой аутентификации. Так как сервер уже аутентифицирован на первой фазе, то на второй фазе осуществляется аутентификация клиента. Сервер отправляет запрос клиенту, и если у клиента есть необходимая информация — он присылает позитивный отклик, если же нет — сообщение об ошибке. Когда один партнер выполнил аутентификацию другого партнера — он посылает сообщение finished. В случае клиента сообщение CLIENT-FINISHED содержит зашифрованную форму идентификатора CONNECTION-ID, которую должен верифицировать сервер. Если верификация была неудачной, сервер посылает сообщение ERROR.
Когда один из партнеров послал сообщение finished — он должен принимать сообщения до тех пор, пока не получит сообщение finished от другого партнера, и только когда оба партнера послали и получили сообщения finished, протокол диалога SSL закончит свою работу. С этого момента начинает работу прикладной протокол.

Типовой протокол обмена сообщениями

Ниже представлено несколько вариантов обмена сообщениями в рамках протокола диалога SSL. Клиент — C , сервер — S. «{smth}key» означает что «smth» зашифровано с помощью ключа.

При отсутствии идентификатора сессии

Client-hello C ® S: challenge, cipher_specs
Server-hello S ® C: connection-id,server_certificate,cipher_specs
Client-master-key C ® S: {master_key}server_public_key
Client-finish C ® S: {connection-id}client_write_key
Server-verify S ® C: {challenge}server_write_key
Server-finish S ® C: {new_session_id}server_write_key

Идентификатор сессии найден клиентом и сервером

Client-hello C ® S: challenge, session_id, cipher_specs
Server-hello S ® C: connection-id, session_id_hit
Client-finish C ® S: {connection-id}client_write_key
Server-verify S ® C: {challenge}server_write_key
Server-finish S ® C: {session_id}server_write_key

Использован идентификатор сессии и аутентификация клиента

Client-hello C ® S: challenge, session_id, cipher_specs
Server-hello S ® C: connection-id, session_id_hit
Client-finish C ® S: {connection-id}client_write_key
Server-verify S ® C: {challenge}server_write_key
Request-certificate S ® C: {auth_type ,challenge'}server_write_key
Client-certificate C ® S: {cert_type,client_cert, response_data}client_write_key
Server-finish S ® C: {new_session_id}server_write_key

Аутентификация и обмен ключами

SSL поддерживает 3 типа аутентификации:

  • аутентификация обеих сторон (клиент — сервер),
  • аутентификация сервера с неаутентифицированным клиентом,
  • полная анонимность.

Если сервер аутентифицирован, то его сообщение о сертификации должно обеспечить верную сертификационную цепочку, ведущую к приемлемому центру сертификации. Проще говоря, аутентифицированный сервер должен предоставить допустимый сертификат клиенту. Каждая сторона отвечает за проверку того, что сертификат другой стороны ещё не истек и не был отменен. Всякий раз, когда сервер аутентифицируется, канал устойчив (безопасен) к попытке перехвата данных между веб-сервером и браузером, но полностью анонимная сессия по своей сути уязвима к такой атаке. Анонимный сервер не может аутентифицировать клиента. Главная цель процесса обмена ключами — это создание секрета клиента (pre_master_secret), известного только клиенту и серверу. Секрет (pre_master_secret) используется для создания общего секрета (master_secret). Общий секрет необходим для того, чтобы создать сообщение для проверки сертификата, ключей шифрования, секрета MAC (message authentication code) и сообщения «finished». Отсылая сообщение «finished», стороны указывают, что они знают верный секрет (pre_master_secret).

Анонимный обмен ключами

Полностью анонимная сессия может быть установлена при использовании алгоритма RSA или Диффи-Хеллмана для создания ключей обмена. В случае использования RSA клиент шифрует секрет (pre_master_secret) с помощью открытого ключа несертифицированного сервера. Открытый ключ клиент узнает из сообщения обмена ключами от сервера. Результат посылается в сообщении обмена ключами от клиента. Поскольку перехватчик не знает закрытого ключа сервера, то ему будет невозможно расшифровать секрет (pre_master_secret). При использовании алгоритма Диффи-Хеллмана открытые параметры сервера содержатся в сообщении обмена ключами от сервера, и клиенту посылают в сообщении обмена ключами. Перехватчик, который не знает приватных значений, не сможет найти секрет (pre_master_secret).

Аутентификация и обмен ключами при использовании RSA

В этом случае обмен ключами и аутентификация сервера может быть скомбинирована. Открытый ключ также может содержаться в сертификате сервера или может быть использован временный ключ RSA, который посылается в сообщении обмена ключами от сервера. Когда используется временный ключ RSA, сообщения обмена подписываются server’s RSA или сертификат DSS (???). Сигнатура содержит текущее значение сообщения Client_Hello.random, таким образом, старые сигнатуры и старые временные ключи не могут повторяться. Сервер может использовать временный ключ RSA только однажды для создания сессии. После проверки сертификата сервера клиент шифрует секрет (pre_master_secret) при помощи открытого ключа сервера. После успешного декодирования секрета (pre_master_secret) создается сообщение «finished», тем самым сервер демонстрирует, что он знает частный ключ, соответствующий сертификату сервера.

Когда RSA используется для обмена ключами, для аутентификации клиента используется сообщение проверки сертификата клиента. Клиент подписывается значением, вычисленным из master_secret и всех предшествующих сообщений протокола рукопожатия. Эти сообщения рукопожатия содержат сертификат сервера, который ставит в соответствие сигнатуре сервера сообщение Server_Hello.random, которому ставит в соответствие сигнатуру текущему сообщению рукопожатия (???).

Аутентификация и обмен ключами при использовании Diffie-Hellman

В этом случае сервер может также поддерживать содержащий конкретные параметры алгоритм Диффи-Хеллмана или может использовать сообщения обмена ключами от сервера для посылки набора временных параметров, подписанных сертификатами DSS или RSA. Временные параметры хэшируются с сообщением hello.random перед подписанием для того, чтобы злоумышленник не смог совершить повтор старых параметров. В любом случае клиент может проверить сертификат или сигнатуру для уверенности, что параметры принадлежат серверу.

Если клиент имеет сертификат, содержащий параметры алгоритма Diffie-Hellman, то сертификат также содержит информацию, требующуюся для того, чтобы завершить обмен ключами. В этом случае клиент и сервер должны будут сгенерировать одинаковые Diffie-Hellman результаты (pre_master_secret) каждый раз, когда они устанавливают соединение. Для того, чтобы предотвратить хранение секрета (pre_master_secret) в памяти компьютера на время дольше, чем необходимо, секрет должен быть переведен в общий секрет (master_secret) настолько быстро, насколько это возможно. Параметры клиента должны быть совместимы с теми, которые поддерживает сервер для того, чтобы работал обмен ключами.

Протокол записи

Протокол записи (Record Layer) — это уровневый протокол. На каждом уровне сообщения включают поля для длины, описания и проверки. Протокол записи принимает сообщения, которые нужно передать, фрагментирует данные в управляемые блоки, разумно сжимает данные, применяя MAC (message authentication code), шифрует и передаёт результат. Полученные данные он расшифровывает, проверяет, распаковывает, собирает и доставляет к более верхним уровням клиента.

Существует четыре протокола записи:

  1. Протокол рукопожатия (handshake protocol);
  2. Протокол тревоги (alert protocol);
  3. Протокол изменения шифра (the change cipher spec protocol);
  4. Протокол приложения (application data protocol);

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

Протокол рукопожатия

SSL клиент и сервер договариваются об установлении связи с помощью процедуры рукопожатия. Во время рукопожатия клиент и сервер договариваются о различных параметрах, которые будут использованы, чтобы обеспечить безопасность соединения:

  1. Клиент посылает серверу номер версии SSL клиента, поддерживаемые алгоритмы шифрования и сжатия, специфичные данные для сеанса и другую информацию, которая нужна серверу, чтобы общаться с клиентом, используя SSL.
  2. Сервер посылает клиенту номер версии SSL сервера, алгоритм сжатия и шифрования (выбранные из посланных ранее клиентом), специфичные данные для сеанса и другую информацию, которая нужна серверу, чтобы общаться с клиентом по протоколу SSL. Сервер также посылает свой сертификат, который требует проверки подлинности клиента. После идентификации сервер запрашивает сертификат клиента.
  3. Клиент использует информацию, переданную сервером для проверки подлинности. Если сервер не может быть проверен, пользователь получает предупреждение о проблеме и о том, что шифрование и аутентификация соединения не может быть установлена. Если сервер успешно прошел проверку, то клиент переходит к следующему шагу.
  4. Используя все данные, полученные до сих пор от процедуры рукопожатие, клиент (в сотрудничестве с сервером) создает предварительный секрет сессии, в зависимости от используемого шифра от сервера, шифрует его с помощью открытого ключа сервера (полученного из сертификата сервера, отправленного на 2-м шаге), а затем отправляет его на сервер.
  5. Если сервер запросил аутентификацию клиента (необязательный шаг рукопожатия), клиент также подписывает ещё один кусок данных, который является уникальным для этого рукопожатия и известным как для клиента, так и сервера. В этом случае, клиент отправляет все подписанные данные и собственный сертификат клиента на сервер вместе с предварительно зашифрованным секретом.
  6. Сервер пытается аутентифицировать клиента. Если клиент не может пройти проверку подлинности, сеанс заканчивается. Если клиент может быть успешно аутентифицирован, сервер использует свой закрытый ключ для расшифровки предварительного секрета, а затем выполняет ряд шагов (которые клиент также выполняет), чтобы создать главный секрет.
  7. И клиент, и сервер используют секрет для генерации ключей сеансов, которые являются симметричными ключами, использующиеся для шифрования и расшифрования информации, которой обмениваются во время SSL сессии. Происходит проверка целостности (то есть, для обнаружения любых изменений в данных между временем когда он был послан, и временем его получения на SSL-соединении).
  8. Клиент посылает сообщение серверу, информируя его, что будущие сообщения от клиента будут зашифрованы с помощью ключа сеанса. Затем он отправляет отдельное, зашифрованное сообщение о том, что часть рукопожатие закончена.
  9. И в заключение, сервер посылает сообщение клиенту, информируя его, что будущие сообщения от сервера будут зашифрованы с помощью ключа сеанса. Затем он отправляет отдельное, зашифрованное сообщение о том, что часть рукопожатие закончена.

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

Протокол изменения параметров шифрования

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

struct {
enum { change_cipher_spec(1), (255) } type;
} ChangeCipherSpec;

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

Протокол тревоги

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

Протокол приложения

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

Безопасность

SSL 2.0

Существует ряд атак, которые могут быть предприняты против протокола SSL. Однако SSL устойчив к этим атакам при условии, что пользователь использует только доверенные сервера для обработки информации. SSL 2.0 уязвима в некоторых ситуациях[20]:

  1. Идентичные криптографические ключи используются для аутентификации и шифрования сообщений;
  2. SSL 2.0 имеет слабую MAC конструкцию, которая использует MD5 хэш-функцию с секретом префикса, что делает его уязвимым для атак;
  3. SSL 2.0 не имеет никакой защиты для протокола рукопожатия, то есть атаки типа злоумышленник посередине (man-in-the-middle) могут остаться незамеченными;
  4. SSL 2.0 использует TCP закрытое соединенние, чтобы указать конец данных. Это означает, что возможна следующая атака: злоумышленник просто подделывает TCP FIN, оставив получателя без сообщения о конце передачи данных (в SSL 3.0 эту ошибку исправили);
  5. SSL 2.0 предполагает наличие единой службы поддержки и фиксированного домена, что идет вразрез со стандартной функцией виртуального хостинга на веб-серверах.

SSL 2.0 по умолчанию отключена в браузерах начиная с Internet Explorer 7[21], Mozilla Firefox 2[22], Opera 9.5[23] и Safari.

SSL 3.0

14 октября 2014 года была выявлена уязвимость CVE-2014-3566, названная POODLE (Padding Oracle On Downgraded Legacy Encryption). Данная уязвимость позволяет злоумышленнику осуществить атаку Man-in-the-Middle на соединение, зашифрованное с помощью SSL 3.0. Уязвимость POODLE — это уязвимость протокола, а не какой-либо его реализации, соответственно, ей подвержены все соединения зашифрованные SSL v3.

В SSL 3.0 есть и иные слабые моменты. К примеру, половина мастер-ключа (master key), которая устанавливается, полностью зависит от хэш-функции MD5, которая не является устойчивой к коллизиям и, следовательно, не считается безопасной[24].

Виды возможных атак

Атака по словарю

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

Вообще для SSL такие атаки возможны. Но SSL пытается противостоять этим атакам, используя большие ключи сессии — клиент генерирует ключ, который длиннее, чем допускается экспортными ограничениями, часть которого посылается серверу открытым текстом, а остальная часть объединяется с секретной частью, чтобы получить достаточно длинный ключ (например, 128 бит, как этого требует RC4). Способ блокирования атак открытого текста заключается в том, чтобы сделать объём необходимого текста неприемлемо большим. Каждый бит, добавляемый к длине ключа сессии, увеличивает размер словаря в 2 раза. Использование ключа сессии длиной 128 бит делает размер словаря далеко за пределами современных технических возможностей (решение потребует такого количества атомов, которого нет во всей вселенной). Другой способ, с помощью которого SSL может противостоять данной атаке, заключается в использовании максимально возможных длин ключей (в случае не экспортного варианта). Следствием этого является то, что самым простым и дешевым способом атаки становится лобовая атака ключа, но для 128-битного ключа стоимость его раскрытия можно считать бесконечной.

Атака отражением

Злоумышленник записывает коммуникационную сессию между сервером и клиентом. Позднее он пытается установить соединение с сервером, воспроизводя записанные сообщения клиента. Но SSL отбивает эту атаку при помощи особого уникального идентификатора соединения (ИС). Конечно, теоретически третья сторона не в силах предсказать ИС, потому что он основан на наборе случайных событий. Однако, злоумышленник с большими ресурсами может записать большое количество сессий и попытаться подобрать «верную» сессию, основываясь на коде nonce, который послал сервер в сообщение Server_Hello. Но коды nonce SSL имеют, по меньшей мере, длину 128 бит, а значит, злоумышленнику необходимо записать 264 кодов nonce, чтобы получить вероятность угадывания 50 %. Но 264 достаточно большое число, что делает эти атаки бессмысленными.

Атака протокола рукопожатия

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

Для такой атаки злоумышленнику необходимо быстро подменить одно или более сообщений рукопожатия. Если это происходит, то клиент и сервер вычислят различные значения хэшей сообщения рукопожатия. В результате чего стороны не примут друг от друга сообщения «finished». Без знания секрета злоумышленник не сможет исправить сообщение «finished», поэтому атака может быть обнаружена.

Взлом SSL-соединений внутри ЦОД

Наиболее известный инцидент по массовому взлому информации, защищенной протоколами SSL, был произведен агентами ФБР с помощью систем Carnivore и NarusInsight, что привело к судебному процессу от лица правозащитной организации Electronic Frontier Foundation против AT&T, который установил данные комплексы для взлома криптографически защищенной информации.

Несмотря на высокий общественный резонанс в США данного дела и расследование на уровне конституционного комитета Палаты представителей, технологически взлом протокола SSL агентами ФБР не производился. Carnivore и NarusInsight были установлены в самом ЦОД, где находились сервера, ведущие SSL-соединенения с удаленными клиентами. NarusInsight полностью восстановил зашифрованную информацию путём прослушивания не SSL-соединения, а внутреннего траффика между серверами приложений внутри самого ЦОД, уже после того как данные, поступившие по SSL, были расшифрованы самим сервером, принявшим их от внешних пользователей.

Тем не менее, указанный инцидент показал, что SSL не может являться надёжным средством криптозащиты данных серверов в Интернете, так как спецслужбы могут установить системы прослушивания, такие как NarusInsight или СОРМ-2, в ЦОД. Любой вид криптографии, подразумевающий, что ключи от шифров находятся у сервера-получателя в ЦОД, взламываются снифферами спецслужб в автоматическом режиме за счет внедрения их в самого получателя. Далее данные полностью реконструируются по процедурам, которые на данный момент регулируются и законодательными актами, такими как «Патриотический акт». Причем указанные законодательные акты запрещают вплоть до судебного преследования владельцев ЦОД удаление снифферов спецслужб из внутренней части серверов-получателей. С учетом наличия данных систем, протокол SSL может защищать только соединение двух пользователей в Интернете, но не SSL-соединение с внешним Web-сайтом.

BEAST атака

23 сентября 2011 года тайские исследователи Дуонг и Джулиано Риццо, используя Java апплет, продемонстрировали «доказательство концепции» под названием Beast («Browser Exploit Against SSL/TLS»), указывающей уязвимость в TLS 1.0[25][26]. Ранее эту уязвимость, которая первоначально была обнаружена Phillip Rogaway[27] в 2002 году, практически никто не мог продемонстрировать. Уязвимость TLS 1.1 была зафиксирована в 2006 году.
Атака строится на нескольких допущениях, но, как оказалось, их вполне реально реализовать. Во-первых, криптоаналитик должен иметь возможность перехватывать трафик, передаваемый браузером. Во-вторых, необходимо как-то заставить пользователя передавать данные по тому же самому безопасному каналу связи. Пусть между компьютерами Боба (B) и Алисы (А) установлено безопасное соединение. Предположим, что i-ый блок попавшего к нам сообщения содержит секретную информацию (например, пароль).

Ci = E(Key, Mi xor Ci-1), где Ci -зашифрованный блок, Mi — секретный текст

Предположим что пароль А — P. Мы можем проверить правильность нашего предположения:

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

M1 = Ci-1 xor IV xor P

Если криптоаналитик сможет передать сообщение по тому же защищенному каналу, то первый блок нового сообщения примет вид:

C1 = E(Key, M1 xor IV) = E(Key, (Ci-1 xor IV xor P) xor P) xor IV) = E(Key, (Ci-1 xor P)) = Ci

Получается, если P = M, то первый зашифрованный блок нового сообщения С1 будет равен ранее перехваченному Сi.

На практике возникает проблема: блок М — 16 байтов в длину, даже если мы знаем все байты кроме двух нам потребуется 215 попыток чтобы угадать оставшееся. А если мы не знаем ничего?
Отсюда вывод что данная практика может сработать в том случае, если криптоаналитик имеет ограниченное количество предположений относительно значения М, а точнее большую часть содержимого данного блока. Следующее допущение: криптоаналитик может контролировать расположение данных в блоке, например знать что пароль — n символов в длину. Зная это, криптоаналитик располагает пароль таким образом чтобы в первый блок попал только 1 символ, а оставшиеся (n-1) в следующий — то есть в первых 15 байтах лежат заведомо известные данные. А для угадывания 1 символа злоумышленнику потребуется в худшем 256 попыток.

На самом деле, об уязвимости знали гораздо раньше, просто разработчики утилиты — первые, кому удалось реализовать все условия для данной атаки. А именно:

  1. Криптоаналитик имеет возможность прослушивать сетевые соединения, инициированные браузером атакуемого компьютера
  2. У криптоаналитика есть возможность внедрить агент в браузер жертвы
  3. Агент имеет возможность отправлять произвольные HTTPS-запросы

Вот список различных технологий и браузерных плагинов, которые могут выполнить внедрение агента в браузер жертвы: Javascript XMLHttpRequest API, HTML5 WebSocket API, Flash URLRequest API, Java Applet URLConnection API, и Silverlight WebClient API.

RC4 атака

В 2013 году в Сингапуре прошла конференция, на которой профессор Дэн Бернстейн представил новую технику для взлома протоколов SSL/TLS, если в таковых используется шифр RC4, который в 2011 году был предложен как средство защиты от BEAST. Уязвимость обнаруженная в RC4 связана с недостаточной случайностью потока битов, которым скремблируется сообщение. Прогнав через него одно и то же сообщение много раз было выявлено достаточное количество повторяющихся паттернов для восстановления исходного текста. Для атаки придется прогнать через шифр гигантский объём данных. В представленной реализации взлом занимал до 32 часов, однако не исключалась возможность оптимизации процесса. Но данная атака трудно реализуема на практике. Создатели утверждают, что для восстановления 80 байт из 256 необходимо 256 шифротекстов.

Раскрытие шифров

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

Атака «злоумышленник посередине»

Также известна как MitM (Man-in-the-Middle) атака. Предполагает участие трех сторон: сервера, клиента и злоумышленника, находящегося между ними. В данной ситуации злоумышленник может перехватывать все сообщения, которые следуют в обоих направлениях, и подменять их. Злоумышленник представляется сервером для клиента и клиентом для сервера. В случае обмена ключами по алгоритму Диффи-Хелмана данная атака является эффективной, так как целостность принимаемой информации и её источник проверить невозможно. Однако такая атака невозможна при использовании протокола SSL[28], так как для проверки подлинности источника (обычно сервера) используются сертификаты, заверенные центром сертификации[29].

Атака будет успешной, если:

  • Сервер не имеет подписанного сертификата.
  • Клиент не проверяет сертификат сервера.
  • Пользователь игнорирует сообщение об отсутствии подписи сертификата центром сертификации или сообщение о несовпадении сертификата с кэшированным[30].

Данный вид атаки можно встретить в крупных организациях, использующих межсетевой экран Forefront TMG компании Microsoft или прокси-сервер Blue Coat Proxy SG. В данном случае «злоумышленник» находится на границе сети организации и производит подмену оригинального сертификата своим. Данная атака становится возможной благодаря возможности указать в качестве доверенного центра сертификации сам прокси-сервер (либо как корневого, либо как дочернего по отношению к корпоративному корневому). Обычно подобная процедура внедрения проходит прозрачно для пользователя за счет работы корпоративных пользователей в среде Active Directory. Данное средство может использоваться как для контроля за передаваемой информацией, так и в целях похищения личных данных, передаваемых с помощью защищенного соединения HTTPS.

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

Кроме того, при использовании Forefront TMG в качестве SSL-прокси возникает возможность проведения второй MitM-атаки на стороне интернета, так как оригинальный сертификат не будет передан пользователю, а Forefront TMG может быть настроен на прием и последующую подмену самоподписанных или отозванных сертификатов. Для защиты от подобной атаки необходимо полностью запретить работу с веб-серверами, чьи сертификаты содержат какие-либо ошибки, что безусловно приведет к невозможности работы по протоколу HTTPS со множеством сайтов.

Blue Coat Proxy SG от второй MitM-атаки защищен: система позволяет настроить политику таким образом, что в случае недоверенного сертификата веб-сервера система также выпускает сертификат, подписанный не доверенной цепочкой, а временной самоподписанной.

THC-SSL-DOS

24 октября 2011 года организация The Hacker’s Choice (THC) выпустила утилиту THC-SSL-DOS, которую можно использовать для проведения DoS-атак на SSL серверы. Данная утилита использует уязвимость в функции повторного подтверждения SSL — SSL Renegotiation, которая изначально была предназначена для обеспечения большей безопасности SSL. Повторное подтверждение позволяет серверу создавать новый секретный ключ поверх уже имеющегося SSL-соединения. Эта функция по умолчанию включена в большинство серверов. Установка безопасного соединения, а также выполнение повторного подтверждения SSL, требуют в несколько раз больше ресурсов на стороне сервера, чем на стороне клиента, то есть если клиент отправляет множество запросов на повторное подтверждение SSL, это истощает системные ресурсы сервера.

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

SSLstrip

В 2009 году на конференции Black Hat в Вашингтоне Мокси Марлинспайк — независимый хакер — продемонстрировал новую утилиту SSLstrip, при помощи которой можно достать важную информацию, заставив пользователей поверить, что они находятся на защищенной странице, хотя на самом деле это не так. Этого можно достичь конвертируя страницы, обычно защищенные протоколом SSL в их незащищенные аналоги, причем обманывается как сервер, так и клиент. Утилита работает потому, что многие сайты использующие защиту SSL имеют незащищенную главную страницу. Они шифруют только те разделы, где передается важная информация. И когда пользователь кликает по странице авторизации утилита подменяет ответ сайта меняя https на http. В SSLstrip используются следующие приемы: во-первых, в локальной сети разворачивается прокси-сервер, имеющий действительный сертификат — отсюда в адресной строке пользователь продолжает видеть https, во вторых используется техника для создания длинных URL содержащих в адресной строке фальшивые ‘/‘ — это нужно, чтобы избежать преобразования символов браузерами. Для доказательства работы системы Мокси запустил SSLstrip на сервере, обслуживающем сеть Tor и за 24 часа выловил 254 пароля пользователей Yahoo, Gmail, Ticketmaster, PayPal и Linkedln.

Обработка ошибок в протоколе SSL

В протоколе SSL обработка ошибок очень проста. Когда ошибка обнаружена, тот, кто её обнаружил, посылает об этом сообщение своему партнёру. Неустранимые ошибки требуют от сервера и клиента разрыва соединения[31]. Протокол SSL определяет следующие ошибки:

  1. Unsupported_Certificate_Type_Error: такая ошибка возникает, когда клиент/сервер получает тип сертификата, который не поддерживается. Ошибка устранима (только для аутентификации клиента).
  2. No_Cipher_Error: ошибка возникает, когда сервер не может найти размер ключа или шифр, который поддерживается также и клиентом. Ошибка неустранима.
  3. Bad_Certificate_Error: такая ошибка возникает, когда сертификат считается принимающей стороной плохим. Это означает, что или некорректна подпись сертификата, или его значение некорректно. Ошибка устранима (только для аутентификации клиента).
  4. No_Certificate_Error: если послано сообщение Request_Certificate, то эта ошибка может быть прислана по причине того, что клиент не имеет сертификата. Ошибка устранима.

Алгоритмы, использующиеся в SSL

См. также

Напишите отзыв о статье "SSL"

Примечания

  1. US-CERT. [www.us-cert.gov/ncas/alerts/TA14-290A TA14-290A: SSL 3.0 Protocol Vulnerability and POODLE Attack] (англ.) (October 2014).
  2. [home.netscape.com/newsref/std/SSL.html THE SSL PROTOCOL] (англ.). Netscape Corporation. Проверено 20 мая 2013. [web.archive.org/web/19970614020952/home.netscape.com/newsref/std/SSL.html Архивировано из первоисточника 14 июня 1997].
  3. Dierks, T. and E. Rescorla. [tools.ietf.org/html/rfc5246#ref-TLS1.1 The Transport Layer Security (TLS) Protocol Version 1.1, RFC 4346(англ.). Проверено 9 мая 2013. [www.webcitation.org/65JSRyvms Архивировано из первоисточника 9 февраля 2012].
  4. 1 2 [sites.google.com/site/tlsssloverview/ssl-v-tls/tls-versions-and-browser-compatability SSSL/TLS Overview] (англ.) (6 August 2008). Проверено 9 мая 2013.
  5. [code.google.com/p/chromium/issues/detail?id=90392#c28 Issue 90392: No TLS 1.2 (SHA-2) Support] (англ.) (27 June 2013). Проверено 15 июля 2015.
  6. [developer.mozilla.org/en/Security_in_Firefox_2 Security in Firefox 2] (англ.) (6 August 2008). Проверено 9 мая 2013.
  7. [bugzilla.mozilla.org/show_bug.cgi?id=733647 Bug 733647 - Implement TLS 1.1 (RFC 4346) in Gecko (Firefox, Thunderbird), on by default] (англ.) (6 March 2012). Проверено 9 мая 2013.
  8. [bugzilla.mozilla.org/show_bug.cgi?id=480514 Bug 480514 - Implement support for TLS 1.2 (RFC 5246)] (англ.) (17 March 2010). Проверено 9 мая 2013.
  9. [www.opera.com/docs/changelogs/windows/500-512/ «Changelog for Opera 5.x for Windows»] at Opera.com
  10. [www.opera.com/docs/changelogs/windows/800b2/ «Changelog for Opera [8] Beta 2 for Windows»] at Opera.com
  11. Microsoft. [msdn.microsoft.com/en-us/library/windows/desktop/aa380123(v=vs.85).aspx Secure Channel] (англ.) (5 September 2012). Проверено 9 мая 2013. [www.webcitation.org/6FwKuv3Yc Архивировано из первоисточника 17 апреля 2013].
  12. Microsoft. [msdn.microsoft.com/en-us/library/dd208005%28PROT.13%29.aspx MS-TLSP Appendix A] (англ.) (27 February 2009). Проверено 9 мая 2013. [www.webcitation.org/6FwKvTdPe Архивировано из первоисточника 17 апреля 2013].
  13. Yngve Nysæter Pettersen. [my.opera.com/core/blog/2009/02/25/new-in-opera-presto-2-2-tls-1-2-support New in Opera Presto 2.2: TLS 1.2 Support] (англ.) (25 February 2009). Проверено 9 мая 2013. [www.webcitation.org/6FwKvyUfK Архивировано из первоисточника 17 апреля 2013].
  14. [www.opera.com/docs/changelogs/windows/900/ «Changelog for Opera 9.0 for Windows»] at Opera.com
  15. Adrian, Dimcev. [www.carbonwind.net/TLS_Cipher_Suites_Project/tls_ssl_cipher_suites_annex_a1_main.docx Common browsers/libraries/servers and the associated cipher suites implemented] (англ.). TLS Cipher Suites Project. Проверено 9 мая 2013. [www.webcitation.org/6FwL0CvUM Архивировано из первоисточника 17 апреля 2013].
  16. Apple. [www.apple.com/safari/features.html Features] (англ.) (10 June 2009). Проверено 9 мая 2013. [www.webcitation.org/6FwL0oLMO Архивировано из первоисточника 17 апреля 2013].
  17. Apple. [developer.apple.com/library/ios/#technotes/tn2287/_index.html Technical Note TN2287 - iOS 5 and TLS 1.2 Interoperability Issues] (англ.) (14 October 2011). Проверено 9 мая 2013.
  18. Liebowitz, Matt. [www.msnbc.msn.com/id/44896639/ns/technology_and_science-security/t/apple-issues-huge-software-security-patches/ Apple issues huge software security patches] (англ.). NBCNews.com (13 October 2011). Проверено 9 мая 2013. [www.webcitation.org/6FwL1hq2b Архивировано из первоисточника 17 апреля 2013].
  19. MWR Info Security. [labs.mwrinfosecurity.com/blog/2012/04/16/adventures-with-ios-uiwebviews/ Adventures with iOS UIWebviews] (англ.) (16 April 2012). Проверено 9 мая 2013. [www.webcitation.org/6FwL2M2Mc Архивировано из первоисточника 17 апреля 2013]., section «HTTPS (SSL/TLS)»
  20. Joris Claessens, Valentin Dem, Danny De Cock, Bart Preneel, Joos Vandewalle. [www.sciencedirect.com/science/article/pii/S0167404802003127 On the Security of Today's Online Electronic Banking Systems] (англ.) 253–265 (2002). Проверено 11 мая 2013.
  21. Lawrence Eric. [blogs.msdn.com/ie/archive/2005/10/22/483795.aspx IEBlog: Upcoming HTTPS Improvements in Internet Explorer 7 Beta 2] (англ.). MSDN Blogs (25 November 2007). Проверено 11 мая 2013. [www.webcitation.org/6FwL2ooJz Архивировано из первоисточника 17 апреля 2013].
  22. Mozilla Corporation. [bugzilla.mozilla.org/show_bug.cgi?id=236933 Bugzilla@Mozilla — Bug 236933 - Disable SSL2 and other weak ciphers] (англ.). Проверено 11 мая 2013.
  23. [www.opera.com/docs/changelogs/windows/950/ «Opera 9.5 for Windows Changelog»] at Opera.com: «Disabled SSL v2 and weak ciphers.»
  24. National Institute of Standards and Technology. [csrc.nist.gov/groups/STM/cmvp/documents/fips140-2/FIPS1402IG.pdf Implementation Guidance for FIPS PUB 140-2 and the Cryptographic Module Validation Program] (англ.) (December 2010). Проверено 11 мая 2013. [www.webcitation.org/6FwL3pLmU Архивировано из первоисточника 17 апреля 2013].
  25. Dan Goodin. [www.theregister.co.uk/2011/09/19/beast_exploits_paypal_ssl/ Hackers break SSL encryption used by millions of sites] (англ.) (19 September 2011). Проверено 11 мая 2013. [www.webcitation.org/6FwL4nkNx Архивировано из первоисточника 17 апреля 2013].
  26. [news.ycombinator.com/item?id=3015498 Y Combinator comments on the issue] (англ.) (20 September 2011). Проверено 11 мая 2013. [www.webcitation.org/6FwL5WZ8b Архивировано из первоисточника 17 апреля 2013].
  27. [web.archive.org/web/20120630143111/www.openssl.org/~bodo/tls-cbc.txt Security of CBC Ciphersuites in SSL/TLS: Problems and Countermeasures] (англ.) (20 May 2004). Проверено 11 мая 2013.
  28. Eric Rescorla. [www.educatedguesswork.org/2009/11/understanding_the_tls_renegoti.html Understanding the TLS Renegotiation Attack] (англ.). Educated Guesswork (5 November 2009). Проверено 11 мая 2013. [www.webcitation.org/6GCxmjeUd Архивировано из первоисточника 28 апреля 2013].
  29. Simon Josefsson. [article.gmane.org/gmane.network.gnutls.general/2046 GnuTLS 2.10.0 released] (англ.). GnuTLS release notes (25 June 2010). Проверено 11 мая 2013. [www.webcitation.org/6GCxnGkJm Архивировано из первоисточника 28 апреля 2013].
  30. Adrian Dimcev. [www.carbonwind.net/blog/post/Random-SSLTLS-101–SSLTLS-version-rollbacks-and-browsers.aspx SSL/TLS version rollbacks and browsers] (англ.). Random SSL/TLS 101. Проверено 11 мая 2013. [www.webcitation.org/6GCxnzM4f Архивировано из первоисточника 9 марта 2011].
  31. Kaspar Brand. [www.switch.ch/pki/meetings/2007-01/namebased_ssl_virtualhosts.pdf Named-based SSL virtual hosts: how to tackle the problem] (англ.) (18 April 2007). Проверено 20 мая 2013.
  32. Christopher Allen, Tim Dierks. [rfc2.ru/2246.rfc Протокол SSL – Перевод – версия 1.0] (рус.). Certicom. Семенов Ю. А.. Проверено 20 мая 2013.
  33. David Wagner. [citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.64.660&rep=rep1&type=pdf Analysis of the SSL 3.0 Protocol] (англ.). University of California. Проверено 24 мая 2013.

Литература

Книги
  • Pouyan Sepehrdad. Discovery and Exploitation of New Biases in RC4. — 1-st. — Springer Berlin Heidelberg, 2011. — Т. 1. — С. 24. — 91 с. — ISBN 978-3-642-19573-0.
  • Joris Claessens. COmputer Security and Industrial Cryptography. — 3-t. — Leuven—Heverlee, Belgium, 2002. — Т. 1. — С. 253–265. — 287 с. — ISBN 0167-4048.
  • John Viega. Network Security with OpenSSL. — 1-st. — O'Reilly Media, USA, June 15, 2002. — Т. 1. — 386 pages с. — ISBN 978-0596002701.
  • Eric Rescorla. SSL and TLS: Designing and Building Secure Systems. — 1-st. — Addison-Wesley Professional, October 27, 2000. — Т. 1. — 528 pages с. — ISBN 978-0201615982.
  • Stephen Thomas. SSL & TLS Essentials: Securing the Web. — 1-st. — Wiley, February 11, 2000. — Т. 1. — 224 pages с. — ISBN 978-0471383543.
Статьи
  • Описание протоколов SSL/TLS // 3. — ООО "КРИПТО-ПРО"., 2002. — P. 49.
  • Семенов Ю.А. Протокол SSL. Безопасный уровень соединителей. — 2000. — № 1.
  • E. Rescorla The Transport Layer Security (TLS) Protocol Version 1.2 // 1-st. — RTFM, Inc., August 2008. — № 1. — P. 101.
  • P. Karlton The Secure Sockets Layer (SSL) Protocol Version 3.0 // 1-st. — RTFM, Inc., August 2011. — № 1. — P. 67.
  • T. Dierks The Secure Sockets Layer (SSL) // 1-st. — RTFM, Inc., August 2008. — № 1. — P. 207.

Ссылки

  • [developer.mozilla.org/en/Introduction_to_SSL Mozilla.org] — введение в SSL протокол


Отрывок, характеризующий SSL

– То то мы с горы видели, как ты стречка задавал через лужи то, – сказал эсаул, суживая свои блестящие глаза.
Пете очень хотелось смеяться, но он видел, что все удерживались от смеха. Он быстро переводил глаза с лица Тихона на лицо эсаула и Денисова, не понимая того, что все это значило.
– Ты дуг'ака то не представляй, – сказал Денисов, сердито покашливая. – Зачем пег'вого не пг'ивел?
Тихон стал чесать одной рукой спину, другой голову, и вдруг вся рожа его растянулась в сияющую глупую улыбку, открывшую недостаток зуба (за что он и прозван Щербатый). Денисов улыбнулся, и Петя залился веселым смехом, к которому присоединился и сам Тихон.
– Да что, совсем несправный, – сказал Тихон. – Одежонка плохенькая на нем, куда же его водить то. Да и грубиян, ваше благородие. Как же, говорит, я сам анаральский сын, не пойду, говорит.
– Экая скотина! – сказал Денисов. – Мне расспросить надо…
– Да я его спрашивал, – сказал Тихон. – Он говорит: плохо зн аком. Наших, говорит, и много, да всё плохие; только, говорит, одна названия. Ахнете, говорит, хорошенько, всех заберете, – заключил Тихон, весело и решительно взглянув в глаза Денисова.
– Вот я те всыплю сотню гог'ячих, ты и будешь дуг'ака то ког'чить, – сказал Денисов строго.
– Да что же серчать то, – сказал Тихон, – что ж, я не видал французов ваших? Вот дай позатемняет, я табе каких хошь, хоть троих приведу.
– Ну, поедем, – сказал Денисов, и до самой караулки он ехал, сердито нахмурившись и молча.
Тихон зашел сзади, и Петя слышал, как смеялись с ним и над ним казаки о каких то сапогах, которые он бросил в куст.
Когда прошел тот овладевший им смех при словах и улыбке Тихона, и Петя понял на мгновенье, что Тихон этот убил человека, ему сделалось неловко. Он оглянулся на пленного барабанщика, и что то кольнуло его в сердце. Но эта неловкость продолжалась только одно мгновенье. Он почувствовал необходимость повыше поднять голову, подбодриться и расспросить эсаула с значительным видом о завтрашнем предприятии, с тем чтобы не быть недостойным того общества, в котором он находился.
Посланный офицер встретил Денисова на дороге с известием, что Долохов сам сейчас приедет и что с его стороны все благополучно.
Денисов вдруг повеселел и подозвал к себе Петю.
– Ну, г'асскажи ты мне пг'о себя, – сказал он.


Петя при выезде из Москвы, оставив своих родных, присоединился к своему полку и скоро после этого был взят ординарцем к генералу, командовавшему большим отрядом. Со времени своего производства в офицеры, и в особенности с поступления в действующую армию, где он участвовал в Вяземском сражении, Петя находился в постоянно счастливо возбужденном состоянии радости на то, что он большой, и в постоянно восторженной поспешности не пропустить какого нибудь случая настоящего геройства. Он был очень счастлив тем, что он видел и испытал в армии, но вместе с тем ему все казалось, что там, где его нет, там то теперь и совершается самое настоящее, геройское. И он торопился поспеть туда, где его не было.
Когда 21 го октября его генерал выразил желание послать кого нибудь в отряд Денисова, Петя так жалостно просил, чтобы послать его, что генерал не мог отказать. Но, отправляя его, генерал, поминая безумный поступок Пети в Вяземском сражении, где Петя, вместо того чтобы ехать дорогой туда, куда он был послан, поскакал в цепь под огонь французов и выстрелил там два раза из своего пистолета, – отправляя его, генерал именно запретил Пете участвовать в каких бы то ни было действиях Денисова. От этого то Петя покраснел и смешался, когда Денисов спросил, можно ли ему остаться. До выезда на опушку леса Петя считал, что ему надобно, строго исполняя свой долг, сейчас же вернуться. Но когда он увидал французов, увидал Тихона, узнал, что в ночь непременно атакуют, он, с быстротою переходов молодых людей от одного взгляда к другому, решил сам с собою, что генерал его, которого он до сих пор очень уважал, – дрянь, немец, что Денисов герой, и эсаул герой, и что Тихон герой, и что ему было бы стыдно уехать от них в трудную минуту.
Уже смеркалось, когда Денисов с Петей и эсаулом подъехали к караулке. В полутьме виднелись лошади в седлах, казаки, гусары, прилаживавшие шалашики на поляне и (чтобы не видели дыма французы) разводившие красневший огонь в лесном овраге. В сенях маленькой избушки казак, засучив рукава, рубил баранину. В самой избе были три офицера из партии Денисова, устроивавшие стол из двери. Петя снял, отдав сушить, свое мокрое платье и тотчас принялся содействовать офицерам в устройстве обеденного стола.
Через десять минут был готов стол, покрытый салфеткой. На столе была водка, ром в фляжке, белый хлеб и жареная баранина с солью.
Сидя вместе с офицерами за столом и разрывая руками, по которым текло сало, жирную душистую баранину, Петя находился в восторженном детском состоянии нежной любви ко всем людям и вследствие того уверенности в такой же любви к себе других людей.
– Так что же вы думаете, Василий Федорович, – обратился он к Денисову, – ничего, что я с вами останусь на денек? – И, не дожидаясь ответа, он сам отвечал себе: – Ведь мне велено узнать, ну вот я и узнаю… Только вы меня пустите в самую… в главную. Мне не нужно наград… А мне хочется… – Петя стиснул зубы и оглянулся, подергивая кверху поднятой головой и размахивая рукой.
– В самую главную… – повторил Денисов, улыбаясь.
– Только уж, пожалуйста, мне дайте команду совсем, чтобы я командовал, – продолжал Петя, – ну что вам стоит? Ах, вам ножик? – обратился он к офицеру, хотевшему отрезать баранины. И он подал свой складной ножик.
Офицер похвалил ножик.
– Возьмите, пожалуйста, себе. У меня много таких… – покраснев, сказал Петя. – Батюшки! Я и забыл совсем, – вдруг вскрикнул он. – У меня изюм чудесный, знаете, такой, без косточек. У нас маркитант новый – и такие прекрасные вещи. Я купил десять фунтов. Я привык что нибудь сладкое. Хотите?.. – И Петя побежал в сени к своему казаку, принес торбы, в которых было фунтов пять изюму. – Кушайте, господа, кушайте.
– А то не нужно ли вам кофейник? – обратился он к эсаулу. – Я у нашего маркитанта купил, чудесный! У него прекрасные вещи. И он честный очень. Это главное. Я вам пришлю непременно. А может быть еще, у вас вышли, обились кремни, – ведь это бывает. Я взял с собою, у меня вот тут… – он показал на торбы, – сто кремней. Я очень дешево купил. Возьмите, пожалуйста, сколько нужно, а то и все… – И вдруг, испугавшись, не заврался ли он, Петя остановился и покраснел.
Он стал вспоминать, не сделал ли он еще каких нибудь глупостей. И, перебирая воспоминания нынешнего дня, воспоминание о французе барабанщике представилось ему. «Нам то отлично, а ему каково? Куда его дели? Покормили ли его? Не обидели ли?» – подумал он. Но заметив, что он заврался о кремнях, он теперь боялся.
«Спросить бы можно, – думал он, – да скажут: сам мальчик и мальчика пожалел. Я им покажу завтра, какой я мальчик! Стыдно будет, если я спрошу? – думал Петя. – Ну, да все равно!» – и тотчас же, покраснев и испуганно глядя на офицеров, не будет ли в их лицах насмешки, он сказал:
– А можно позвать этого мальчика, что взяли в плен? дать ему чего нибудь поесть… может…
– Да, жалкий мальчишка, – сказал Денисов, видимо, не найдя ничего стыдного в этом напоминании. – Позвать его сюда. Vincent Bosse его зовут. Позвать.
– Я позову, – сказал Петя.
– Позови, позови. Жалкий мальчишка, – повторил Денисов.
Петя стоял у двери, когда Денисов сказал это. Петя пролез между офицерами и близко подошел к Денисову.
– Позвольте вас поцеловать, голубчик, – сказал он. – Ах, как отлично! как хорошо! – И, поцеловав Денисова, он побежал на двор.
– Bosse! Vincent! – прокричал Петя, остановясь у двери.
– Вам кого, сударь, надо? – сказал голос из темноты. Петя отвечал, что того мальчика француза, которого взяли нынче.
– А! Весеннего? – сказал казак.
Имя его Vincent уже переделали: казаки – в Весеннего, а мужики и солдаты – в Висеню. В обеих переделках это напоминание о весне сходилось с представлением о молоденьком мальчике.
– Он там у костра грелся. Эй, Висеня! Висеня! Весенний! – послышались в темноте передающиеся голоса и смех.
– А мальчонок шустрый, – сказал гусар, стоявший подле Пети. – Мы его покормили давеча. Страсть голодный был!
В темноте послышались шаги и, шлепая босыми ногами по грязи, барабанщик подошел к двери.
– Ah, c'est vous! – сказал Петя. – Voulez vous manger? N'ayez pas peur, on ne vous fera pas de mal, – прибавил он, робко и ласково дотрогиваясь до его руки. – Entrez, entrez. [Ах, это вы! Хотите есть? Не бойтесь, вам ничего не сделают. Войдите, войдите.]
– Merci, monsieur, [Благодарю, господин.] – отвечал барабанщик дрожащим, почти детским голосом и стал обтирать о порог свои грязные ноги. Пете многое хотелось сказать барабанщику, но он не смел. Он, переминаясь, стоял подле него в сенях. Потом в темноте взял его за руку и пожал ее.
– Entrez, entrez, – повторил он только нежным шепотом.
«Ах, что бы мне ему сделать!» – проговорил сам с собою Петя и, отворив дверь, пропустил мимо себя мальчика.
Когда барабанщик вошел в избушку, Петя сел подальше от него, считая для себя унизительным обращать на него внимание. Он только ощупывал в кармане деньги и был в сомненье, не стыдно ли будет дать их барабанщику.


От барабанщика, которому по приказанию Денисова дали водки, баранины и которого Денисов велел одеть в русский кафтан, с тем, чтобы, не отсылая с пленными, оставить его при партии, внимание Пети было отвлечено приездом Долохова. Петя в армии слышал много рассказов про необычайные храбрость и жестокость Долохова с французами, и потому с тех пор, как Долохов вошел в избу, Петя, не спуская глаз, смотрел на него и все больше подбадривался, подергивая поднятой головой, с тем чтобы не быть недостойным даже и такого общества, как Долохов.
Наружность Долохова странно поразила Петю своей простотой.
Денисов одевался в чекмень, носил бороду и на груди образ Николая чудотворца и в манере говорить, во всех приемах выказывал особенность своего положения. Долохов же, напротив, прежде, в Москве, носивший персидский костюм, теперь имел вид самого чопорного гвардейского офицера. Лицо его было чисто выбрито, одет он был в гвардейский ваточный сюртук с Георгием в петлице и в прямо надетой простой фуражке. Он снял в углу мокрую бурку и, подойдя к Денисову, не здороваясь ни с кем, тотчас же стал расспрашивать о деле. Денисов рассказывал ему про замыслы, которые имели на их транспорт большие отряды, и про присылку Пети, и про то, как он отвечал обоим генералам. Потом Денисов рассказал все, что он знал про положение французского отряда.
– Это так, но надо знать, какие и сколько войск, – сказал Долохов, – надо будет съездить. Не зная верно, сколько их, пускаться в дело нельзя. Я люблю аккуратно дело делать. Вот, не хочет ли кто из господ съездить со мной в их лагерь. У меня мундиры с собою.
– Я, я… я поеду с вами! – вскрикнул Петя.
– Совсем и тебе не нужно ездить, – сказал Денисов, обращаясь к Долохову, – а уж его я ни за что не пущу.
– Вот прекрасно! – вскрикнул Петя, – отчего же мне не ехать?..
– Да оттого, что незачем.
– Ну, уж вы меня извините, потому что… потому что… я поеду, вот и все. Вы возьмете меня? – обратился он к Долохову.
– Отчего ж… – рассеянно отвечал Долохов, вглядываясь в лицо французского барабанщика.
– Давно у тебя молодчик этот? – спросил он у Денисова.
– Нынче взяли, да ничего не знает. Я оставил его пг'и себе.
– Ну, а остальных ты куда деваешь? – сказал Долохов.
– Как куда? Отсылаю под г'асписки! – вдруг покраснев, вскрикнул Денисов. – И смело скажу, что на моей совести нет ни одного человека. Разве тебе тг'удно отослать тг'идцать ли, тг'иста ли человек под конвоем в гог'од, чем маг'ать, я пг'ямо скажу, честь солдата.
– Вот молоденькому графчику в шестнадцать лет говорить эти любезности прилично, – с холодной усмешкой сказал Долохов, – а тебе то уж это оставить пора.
– Что ж, я ничего не говорю, я только говорю, что я непременно поеду с вами, – робко сказал Петя.
– А нам с тобой пора, брат, бросить эти любезности, – продолжал Долохов, как будто он находил особенное удовольствие говорить об этом предмете, раздражавшем Денисова. – Ну этого ты зачем взял к себе? – сказал он, покачивая головой. – Затем, что тебе его жалко? Ведь мы знаем эти твои расписки. Ты пошлешь их сто человек, а придут тридцать. Помрут с голоду или побьют. Так не все ли равно их и не брать?
Эсаул, щуря светлые глаза, одобрительно кивал головой.
– Это все г'авно, тут Рассуждать нечего. Я на свою душу взять не хочу. Ты говог'ишь – помг'ут. Ну, хог'ошо. Только бы не от меня.
Долохов засмеялся.
– Кто же им не велел меня двадцать раз поймать? А ведь поймают – меня и тебя, с твоим рыцарством, все равно на осинку. – Он помолчал. – Однако надо дело делать. Послать моего казака с вьюком! У меня два французских мундира. Что ж, едем со мной? – спросил он у Пети.
– Я? Да, да, непременно, – покраснев почти до слез, вскрикнул Петя, взглядывая на Денисова.
Опять в то время, как Долохов заспорил с Денисовым о том, что надо делать с пленными, Петя почувствовал неловкость и торопливость; но опять не успел понять хорошенько того, о чем они говорили. «Ежели так думают большие, известные, стало быть, так надо, стало быть, это хорошо, – думал он. – А главное, надо, чтобы Денисов не смел думать, что я послушаюсь его, что он может мной командовать. Непременно поеду с Долоховым во французский лагерь. Он может, и я могу».
На все убеждения Денисова не ездить Петя отвечал, что он тоже привык все делать аккуратно, а не наобум Лазаря, и что он об опасности себе никогда не думает.
– Потому что, – согласитесь сами, – если не знать верно, сколько там, от этого зависит жизнь, может быть, сотен, а тут мы одни, и потом мне очень этого хочется, и непременно, непременно поеду, вы уж меня не удержите, – говорил он, – только хуже будет…


Одевшись в французские шинели и кивера, Петя с Долоховым поехали на ту просеку, с которой Денисов смотрел на лагерь, и, выехав из леса в совершенной темноте, спустились в лощину. Съехав вниз, Долохов велел сопровождавшим его казакам дожидаться тут и поехал крупной рысью по дороге к мосту. Петя, замирая от волнения, ехал с ним рядом.
– Если попадемся, я живым не отдамся, у меня пистолет, – прошептал Петя.
– Не говори по русски, – быстрым шепотом сказал Долохов, и в ту же минуту в темноте послышался оклик: «Qui vive?» [Кто идет?] и звон ружья.
Кровь бросилась в лицо Пети, и он схватился за пистолет.
– Lanciers du sixieme, [Уланы шестого полка.] – проговорил Долохов, не укорачивая и не прибавляя хода лошади. Черная фигура часового стояла на мосту.
– Mot d'ordre? [Отзыв?] – Долохов придержал лошадь и поехал шагом.
– Dites donc, le colonel Gerard est ici? [Скажи, здесь ли полковник Жерар?] – сказал он.
– Mot d'ordre! – не отвечая, сказал часовой, загораживая дорогу.
– Quand un officier fait sa ronde, les sentinelles ne demandent pas le mot d'ordre… – крикнул Долохов, вдруг вспыхнув, наезжая лошадью на часового. – Je vous demande si le colonel est ici? [Когда офицер объезжает цепь, часовые не спрашивают отзыва… Я спрашиваю, тут ли полковник?]
И, не дожидаясь ответа от посторонившегося часового, Долохов шагом поехал в гору.
Заметив черную тень человека, переходящего через дорогу, Долохов остановил этого человека и спросил, где командир и офицеры? Человек этот, с мешком на плече, солдат, остановился, близко подошел к лошади Долохова, дотрогиваясь до нее рукою, и просто и дружелюбно рассказал, что командир и офицеры были выше на горе, с правой стороны, на дворе фермы (так он называл господскую усадьбу).
Проехав по дороге, с обеих сторон которой звучал от костров французский говор, Долохов повернул во двор господского дома. Проехав в ворота, он слез с лошади и подошел к большому пылавшему костру, вокруг которого, громко разговаривая, сидело несколько человек. В котелке с краю варилось что то, и солдат в колпаке и синей шинели, стоя на коленях, ярко освещенный огнем, мешал в нем шомполом.
– Oh, c'est un dur a cuire, [С этим чертом не сладишь.] – говорил один из офицеров, сидевших в тени с противоположной стороны костра.
– Il les fera marcher les lapins… [Он их проберет…] – со смехом сказал другой. Оба замолкли, вглядываясь в темноту на звук шагов Долохова и Пети, подходивших к костру с своими лошадьми.
– Bonjour, messieurs! [Здравствуйте, господа!] – громко, отчетливо выговорил Долохов.
Офицеры зашевелились в тени костра, и один, высокий офицер с длинной шеей, обойдя огонь, подошел к Долохову.
– C'est vous, Clement? – сказал он. – D'ou, diable… [Это вы, Клеман? Откуда, черт…] – но он не докончил, узнав свою ошибку, и, слегка нахмурившись, как с незнакомым, поздоровался с Долоховым, спрашивая его, чем он может служить. Долохов рассказал, что он с товарищем догонял свой полк, и спросил, обращаясь ко всем вообще, не знали ли офицеры чего нибудь о шестом полку. Никто ничего не знал; и Пете показалось, что офицеры враждебно и подозрительно стали осматривать его и Долохова. Несколько секунд все молчали.
– Si vous comptez sur la soupe du soir, vous venez trop tard, [Если вы рассчитываете на ужин, то вы опоздали.] – сказал с сдержанным смехом голос из за костра.
Долохов отвечал, что они сыты и что им надо в ночь же ехать дальше.
Он отдал лошадей солдату, мешавшему в котелке, и на корточках присел у костра рядом с офицером с длинной шеей. Офицер этот, не спуская глаз, смотрел на Долохова и переспросил его еще раз: какого он был полка? Долохов не отвечал, как будто не слыхал вопроса, и, закуривая коротенькую французскую трубку, которую он достал из кармана, спрашивал офицеров о том, в какой степени безопасна дорога от казаков впереди их.
– Les brigands sont partout, [Эти разбойники везде.] – отвечал офицер из за костра.
Долохов сказал, что казаки страшны только для таких отсталых, как он с товарищем, но что на большие отряды казаки, вероятно, не смеют нападать, прибавил он вопросительно. Никто ничего не ответил.
«Ну, теперь он уедет», – всякую минуту думал Петя, стоя перед костром и слушая его разговор.
Но Долохов начал опять прекратившийся разговор и прямо стал расспрашивать, сколько у них людей в батальоне, сколько батальонов, сколько пленных. Спрашивая про пленных русских, которые были при их отряде, Долохов сказал:
– La vilaine affaire de trainer ces cadavres apres soi. Vaudrait mieux fusiller cette canaille, [Скверное дело таскать за собой эти трупы. Лучше бы расстрелять эту сволочь.] – и громко засмеялся таким странным смехом, что Пете показалось, французы сейчас узнают обман, и он невольно отступил на шаг от костра. Никто не ответил на слова и смех Долохова, и французский офицер, которого не видно было (он лежал, укутавшись шинелью), приподнялся и прошептал что то товарищу. Долохов встал и кликнул солдата с лошадьми.
«Подадут или нет лошадей?» – думал Петя, невольно приближаясь к Долохову.
Лошадей подали.
– Bonjour, messieurs, [Здесь: прощайте, господа.] – сказал Долохов.
Петя хотел сказать bonsoir [добрый вечер] и не мог договорить слова. Офицеры что то шепотом говорили между собою. Долохов долго садился на лошадь, которая не стояла; потом шагом поехал из ворот. Петя ехал подле него, желая и не смея оглянуться, чтоб увидать, бегут или не бегут за ними французы.
Выехав на дорогу, Долохов поехал не назад в поле, а вдоль по деревне. В одном месте он остановился, прислушиваясь.
– Слышишь? – сказал он.
Петя узнал звуки русских голосов, увидал у костров темные фигуры русских пленных. Спустившись вниз к мосту, Петя с Долоховым проехали часового, который, ни слова не сказав, мрачно ходил по мосту, и выехали в лощину, где дожидались казаки.
– Ну, теперь прощай. Скажи Денисову, что на заре, по первому выстрелу, – сказал Долохов и хотел ехать, но Петя схватился за него рукою.
– Нет! – вскрикнул он, – вы такой герой. Ах, как хорошо! Как отлично! Как я вас люблю.
– Хорошо, хорошо, – сказал Долохов, но Петя не отпускал его, и в темноте Долохов рассмотрел, что Петя нагибался к нему. Он хотел поцеловаться. Долохов поцеловал его, засмеялся и, повернув лошадь, скрылся в темноте.

Х
Вернувшись к караулке, Петя застал Денисова в сенях. Денисов в волнении, беспокойстве и досаде на себя, что отпустил Петю, ожидал его.
– Слава богу! – крикнул он. – Ну, слава богу! – повторял он, слушая восторженный рассказ Пети. – И чег'т тебя возьми, из за тебя не спал! – проговорил Денисов. – Ну, слава богу, тепег'ь ложись спать. Еще вздг'емнем до утг'а.
– Да… Нет, – сказал Петя. – Мне еще не хочется спать. Да я и себя знаю, ежели засну, так уж кончено. И потом я привык не спать перед сражением.
Петя посидел несколько времени в избе, радостно вспоминая подробности своей поездки и живо представляя себе то, что будет завтра. Потом, заметив, что Денисов заснул, он встал и пошел на двор.
На дворе еще было совсем темно. Дождик прошел, но капли еще падали с деревьев. Вблизи от караулки виднелись черные фигуры казачьих шалашей и связанных вместе лошадей. За избушкой чернелись две фуры, у которых стояли лошади, и в овраге краснелся догоравший огонь. Казаки и гусары не все спали: кое где слышались, вместе с звуком падающих капель и близкого звука жевания лошадей, негромкие, как бы шепчущиеся голоса.
Петя вышел из сеней, огляделся в темноте и подошел к фурам. Под фурами храпел кто то, и вокруг них стояли, жуя овес, оседланные лошади. В темноте Петя узнал свою лошадь, которую он называл Карабахом, хотя она была малороссийская лошадь, и подошел к ней.
– Ну, Карабах, завтра послужим, – сказал он, нюхая ее ноздри и целуя ее.
– Что, барин, не спите? – сказал казак, сидевший под фурой.
– Нет; а… Лихачев, кажется, тебя звать? Ведь я сейчас только приехал. Мы ездили к французам. – И Петя подробно рассказал казаку не только свою поездку, но и то, почему он ездил и почему он считает, что лучше рисковать своей жизнью, чем делать наобум Лазаря.
– Что же, соснули бы, – сказал казак.
– Нет, я привык, – отвечал Петя. – А что, у вас кремни в пистолетах не обились? Я привез с собою. Не нужно ли? Ты возьми.
Казак высунулся из под фуры, чтобы поближе рассмотреть Петю.
– Оттого, что я привык все делать аккуратно, – сказал Петя. – Иные так, кое как, не приготовятся, потом и жалеют. Я так не люблю.
– Это точно, – сказал казак.
– Да еще вот что, пожалуйста, голубчик, наточи мне саблю; затупи… (но Петя боялся солгать) она никогда отточена не была. Можно это сделать?
– Отчего ж, можно.
Лихачев встал, порылся в вьюках, и Петя скоро услыхал воинственный звук стали о брусок. Он влез на фуру и сел на край ее. Казак под фурой точил саблю.
– А что же, спят молодцы? – сказал Петя.
– Кто спит, а кто так вот.
– Ну, а мальчик что?
– Весенний то? Он там, в сенцах, завалился. Со страху спится. Уж рад то был.
Долго после этого Петя молчал, прислушиваясь к звукам. В темноте послышались шаги и показалась черная фигура.
– Что точишь? – спросил человек, подходя к фуре.
– А вот барину наточить саблю.
– Хорошее дело, – сказал человек, который показался Пете гусаром. – У вас, что ли, чашка осталась?
– А вон у колеса.
Гусар взял чашку.
– Небось скоро свет, – проговорил он, зевая, и прошел куда то.
Петя должен бы был знать, что он в лесу, в партии Денисова, в версте от дороги, что он сидит на фуре, отбитой у французов, около которой привязаны лошади, что под ним сидит казак Лихачев и натачивает ему саблю, что большое черное пятно направо – караулка, и красное яркое пятно внизу налево – догоравший костер, что человек, приходивший за чашкой, – гусар, который хотел пить; но он ничего не знал и не хотел знать этого. Он был в волшебном царстве, в котором ничего не было похожего на действительность. Большое черное пятно, может быть, точно была караулка, а может быть, была пещера, которая вела в самую глубь земли. Красное пятно, может быть, был огонь, а может быть – глаз огромного чудовища. Может быть, он точно сидит теперь на фуре, а очень может быть, что он сидит не на фуре, а на страшно высокой башне, с которой ежели упасть, то лететь бы до земли целый день, целый месяц – все лететь и никогда не долетишь. Может быть, что под фурой сидит просто казак Лихачев, а очень может быть, что это – самый добрый, храбрый, самый чудесный, самый превосходный человек на свете, которого никто не знает. Может быть, это точно проходил гусар за водой и пошел в лощину, а может быть, он только что исчез из виду и совсем исчез, и его не было.
Что бы ни увидал теперь Петя, ничто бы не удивило его. Он был в волшебном царстве, в котором все было возможно.
Он поглядел на небо. И небо было такое же волшебное, как и земля. На небе расчищало, и над вершинами дерев быстро бежали облака, как будто открывая звезды. Иногда казалось, что на небе расчищало и показывалось черное, чистое небо. Иногда казалось, что эти черные пятна были тучки. Иногда казалось, что небо высоко, высоко поднимается над головой; иногда небо спускалось совсем, так что рукой можно было достать его.
Петя стал закрывать глаза и покачиваться.
Капли капали. Шел тихий говор. Лошади заржали и подрались. Храпел кто то.
– Ожиг, жиг, ожиг, жиг… – свистела натачиваемая сабля. И вдруг Петя услыхал стройный хор музыки, игравшей какой то неизвестный, торжественно сладкий гимн. Петя был музыкален, так же как Наташа, и больше Николая, но он никогда не учился музыке, не думал о музыке, и потому мотивы, неожиданно приходившие ему в голову, были для него особенно новы и привлекательны. Музыка играла все слышнее и слышнее. Напев разрастался, переходил из одного инструмента в другой. Происходило то, что называется фугой, хотя Петя не имел ни малейшего понятия о том, что такое фуга. Каждый инструмент, то похожий на скрипку, то на трубы – но лучше и чище, чем скрипки и трубы, – каждый инструмент играл свое и, не доиграв еще мотива, сливался с другим, начинавшим почти то же, и с третьим, и с четвертым, и все они сливались в одно и опять разбегались, и опять сливались то в торжественно церковное, то в ярко блестящее и победное.
«Ах, да, ведь это я во сне, – качнувшись наперед, сказал себе Петя. – Это у меня в ушах. А может быть, это моя музыка. Ну, опять. Валяй моя музыка! Ну!..»
Он закрыл глаза. И с разных сторон, как будто издалека, затрепетали звуки, стали слаживаться, разбегаться, сливаться, и опять все соединилось в тот же сладкий и торжественный гимн. «Ах, это прелесть что такое! Сколько хочу и как хочу», – сказал себе Петя. Он попробовал руководить этим огромным хором инструментов.
«Ну, тише, тише, замирайте теперь. – И звуки слушались его. – Ну, теперь полнее, веселее. Еще, еще радостнее. – И из неизвестной глубины поднимались усиливающиеся, торжественные звуки. – Ну, голоса, приставайте!» – приказал Петя. И сначала издалека послышались голоса мужские, потом женские. Голоса росли, росли в равномерном торжественном усилии. Пете страшно и радостно было внимать их необычайной красоте.
С торжественным победным маршем сливалась песня, и капли капали, и вжиг, жиг, жиг… свистела сабля, и опять подрались и заржали лошади, не нарушая хора, а входя в него.
Петя не знал, как долго это продолжалось: он наслаждался, все время удивлялся своему наслаждению и жалел, что некому сообщить его. Его разбудил ласковый голос Лихачева.
– Готово, ваше благородие, надвое хранцуза распластаете.
Петя очнулся.
– Уж светает, право, светает! – вскрикнул он.
Невидные прежде лошади стали видны до хвостов, и сквозь оголенные ветки виднелся водянистый свет. Петя встряхнулся, вскочил, достал из кармана целковый и дал Лихачеву, махнув, попробовал шашку и положил ее в ножны. Казаки отвязывали лошадей и подтягивали подпруги.
– Вот и командир, – сказал Лихачев. Из караулки вышел Денисов и, окликнув Петю, приказал собираться.


Быстро в полутьме разобрали лошадей, подтянули подпруги и разобрались по командам. Денисов стоял у караулки, отдавая последние приказания. Пехота партии, шлепая сотней ног, прошла вперед по дороге и быстро скрылась между деревьев в предрассветном тумане. Эсаул что то приказывал казакам. Петя держал свою лошадь в поводу, с нетерпением ожидая приказания садиться. Обмытое холодной водой, лицо его, в особенности глаза горели огнем, озноб пробегал по спине, и во всем теле что то быстро и равномерно дрожало.
– Ну, готово у вас все? – сказал Денисов. – Давай лошадей.
Лошадей подали. Денисов рассердился на казака за то, что подпруги были слабы, и, разбранив его, сел. Петя взялся за стремя. Лошадь, по привычке, хотела куснуть его за ногу, но Петя, не чувствуя своей тяжести, быстро вскочил в седло и, оглядываясь на тронувшихся сзади в темноте гусар, подъехал к Денисову.
– Василий Федорович, вы мне поручите что нибудь? Пожалуйста… ради бога… – сказал он. Денисов, казалось, забыл про существование Пети. Он оглянулся на него.
– Об одном тебя пг'ошу, – сказал он строго, – слушаться меня и никуда не соваться.
Во все время переезда Денисов ни слова не говорил больше с Петей и ехал молча. Когда подъехали к опушке леса, в поле заметно уже стало светлеть. Денисов поговорил что то шепотом с эсаулом, и казаки стали проезжать мимо Пети и Денисова. Когда они все проехали, Денисов тронул свою лошадь и поехал под гору. Садясь на зады и скользя, лошади спускались с своими седоками в лощину. Петя ехал рядом с Денисовым. Дрожь во всем его теле все усиливалась. Становилось все светлее и светлее, только туман скрывал отдаленные предметы. Съехав вниз и оглянувшись назад, Денисов кивнул головой казаку, стоявшему подле него.
– Сигнал! – проговорил он.
Казак поднял руку, раздался выстрел. И в то же мгновение послышался топот впереди поскакавших лошадей, крики с разных сторон и еще выстрелы.
В то же мгновение, как раздались первые звуки топота и крика, Петя, ударив свою лошадь и выпустив поводья, не слушая Денисова, кричавшего на него, поскакал вперед. Пете показалось, что вдруг совершенно, как середь дня, ярко рассвело в ту минуту, как послышался выстрел. Он подскакал к мосту. Впереди по дороге скакали казаки. На мосту он столкнулся с отставшим казаком и поскакал дальше. Впереди какие то люди, – должно быть, это были французы, – бежали с правой стороны дороги на левую. Один упал в грязь под ногами Петиной лошади.
У одной избы столпились казаки, что то делая. Из середины толпы послышался страшный крик. Петя подскакал к этой толпе, и первое, что он увидал, было бледное, с трясущейся нижней челюстью лицо француза, державшегося за древко направленной на него пики.
– Ура!.. Ребята… наши… – прокричал Петя и, дав поводья разгорячившейся лошади, поскакал вперед по улице.
Впереди слышны были выстрелы. Казаки, гусары и русские оборванные пленные, бежавшие с обеих сторон дороги, все громко и нескладно кричали что то. Молодцеватый, без шапки, с красным нахмуренным лицом, француз в синей шинели отбивался штыком от гусаров. Когда Петя подскакал, француз уже упал. Опять опоздал, мелькнуло в голове Пети, и он поскакал туда, откуда слышались частые выстрелы. Выстрелы раздавались на дворе того барского дома, на котором он был вчера ночью с Долоховым. Французы засели там за плетнем в густом, заросшем кустами саду и стреляли по казакам, столпившимся у ворот. Подъезжая к воротам, Петя в пороховом дыму увидал Долохова с бледным, зеленоватым лицом, кричавшего что то людям. «В объезд! Пехоту подождать!» – кричал он, в то время как Петя подъехал к нему.
– Подождать?.. Ураааа!.. – закричал Петя и, не медля ни одной минуты, поскакал к тому месту, откуда слышались выстрелы и где гуще был пороховой дым. Послышался залп, провизжали пустые и во что то шлепнувшие пули. Казаки и Долохов вскакали вслед за Петей в ворота дома. Французы в колеблющемся густом дыме одни бросали оружие и выбегали из кустов навстречу казакам, другие бежали под гору к пруду. Петя скакал на своей лошади вдоль по барскому двору и, вместо того чтобы держать поводья, странно и быстро махал обеими руками и все дальше и дальше сбивался с седла на одну сторону. Лошадь, набежав на тлевший в утреннем свето костер, уперлась, и Петя тяжело упал на мокрую землю. Казаки видели, как быстро задергались его руки и ноги, несмотря на то, что голова его не шевелилась. Пуля пробила ему голову.
Переговоривши с старшим французским офицером, который вышел к нему из за дома с платком на шпаге и объявил, что они сдаются, Долохов слез с лошади и подошел к неподвижно, с раскинутыми руками, лежавшему Пете.
– Готов, – сказал он, нахмурившись, и пошел в ворота навстречу ехавшему к нему Денисову.
– Убит?! – вскрикнул Денисов, увидав еще издалека то знакомое ему, несомненно безжизненное положение, в котором лежало тело Пети.
– Готов, – повторил Долохов, как будто выговаривание этого слова доставляло ему удовольствие, и быстро пошел к пленным, которых окружили спешившиеся казаки. – Брать не будем! – крикнул он Денисову.
Денисов не отвечал; он подъехал к Пете, слез с лошади и дрожащими руками повернул к себе запачканное кровью и грязью, уже побледневшее лицо Пети.
«Я привык что нибудь сладкое. Отличный изюм, берите весь», – вспомнилось ему. И казаки с удивлением оглянулись на звуки, похожие на собачий лай, с которыми Денисов быстро отвернулся, подошел к плетню и схватился за него.
В числе отбитых Денисовым и Долоховым русских пленных был Пьер Безухов.


О той партии пленных, в которой был Пьер, во время всего своего движения от Москвы, не было от французского начальства никакого нового распоряжения. Партия эта 22 го октября находилась уже не с теми войсками и обозами, с которыми она вышла из Москвы. Половина обоза с сухарями, который шел за ними первые переходы, была отбита казаками, другая половина уехала вперед; пеших кавалеристов, которые шли впереди, не было ни одного больше; они все исчезли. Артиллерия, которая первые переходы виднелась впереди, заменилась теперь огромным обозом маршала Жюно, конвоируемого вестфальцами. Сзади пленных ехал обоз кавалерийских вещей.
От Вязьмы французские войска, прежде шедшие тремя колоннами, шли теперь одной кучей. Те признаки беспорядка, которые заметил Пьер на первом привале из Москвы, теперь дошли до последней степени.
Дорога, по которой они шли, с обеих сторон была уложена мертвыми лошадьми; оборванные люди, отсталые от разных команд, беспрестанно переменяясь, то присоединялись, то опять отставали от шедшей колонны.
Несколько раз во время похода бывали фальшивые тревоги, и солдаты конвоя поднимали ружья, стреляли и бежали стремглав, давя друг друга, но потом опять собирались и бранили друг друга за напрасный страх.
Эти три сборища, шедшие вместе, – кавалерийское депо, депо пленных и обоз Жюно, – все еще составляли что то отдельное и цельное, хотя и то, и другое, и третье быстро таяло.
В депо, в котором было сто двадцать повозок сначала, теперь оставалось не больше шестидесяти; остальные были отбиты или брошены. Из обоза Жюно тоже было оставлено и отбито несколько повозок. Три повозки были разграблены набежавшими отсталыми солдатами из корпуса Даву. Из разговоров немцев Пьер слышал, что к этому обозу ставили караул больше, чем к пленным, и что один из их товарищей, солдат немец, был расстрелян по приказанию самого маршала за то, что у солдата нашли серебряную ложку, принадлежавшую маршалу.
Больше же всего из этих трех сборищ растаяло депо пленных. Из трехсот тридцати человек, вышедших из Москвы, теперь оставалось меньше ста. Пленные еще более, чем седла кавалерийского депо и чем обоз Жюно, тяготили конвоирующих солдат. Седла и ложки Жюно, они понимали, что могли для чего нибудь пригодиться, но для чего было голодным и холодным солдатам конвоя стоять на карауле и стеречь таких же холодных и голодных русских, которые мерли и отставали дорогой, которых было велено пристреливать, – это было не только непонятно, но и противно. И конвойные, как бы боясь в том горестном положении, в котором они сами находились, не отдаться бывшему в них чувству жалости к пленным и тем ухудшить свое положение, особенно мрачно и строго обращались с ними.
В Дорогобуже, в то время как, заперев пленных в конюшню, конвойные солдаты ушли грабить свои же магазины, несколько человек пленных солдат подкопались под стену и убежали, но были захвачены французами и расстреляны.
Прежний, введенный при выходе из Москвы, порядок, чтобы пленные офицеры шли отдельно от солдат, уже давно был уничтожен; все те, которые могли идти, шли вместе, и Пьер с третьего перехода уже соединился опять с Каратаевым и лиловой кривоногой собакой, которая избрала себе хозяином Каратаева.
С Каратаевым, на третий день выхода из Москвы, сделалась та лихорадка, от которой он лежал в московском гошпитале, и по мере того как Каратаев ослабевал, Пьер отдалялся от него. Пьер не знал отчего, но, с тех пор как Каратаев стал слабеть, Пьер должен был делать усилие над собой, чтобы подойти к нему. И подходя к нему и слушая те тихие стоны, с которыми Каратаев обыкновенно на привалах ложился, и чувствуя усилившийся теперь запах, который издавал от себя Каратаев, Пьер отходил от него подальше и не думал о нем.
В плену, в балагане, Пьер узнал не умом, а всем существом своим, жизнью, что человек сотворен для счастья, что счастье в нем самом, в удовлетворении естественных человеческих потребностей, и что все несчастье происходит не от недостатка, а от излишка; но теперь, в эти последние три недели похода, он узнал еще новую, утешительную истину – он узнал, что на свете нет ничего страшного. Он узнал, что так как нет положения, в котором бы человек был счастлив и вполне свободен, так и нет положения, в котором бы он был бы несчастлив и несвободен. Он узнал, что есть граница страданий и граница свободы и что эта граница очень близка; что тот человек, который страдал оттого, что в розовой постели его завернулся один листок, точно так же страдал, как страдал он теперь, засыпая на голой, сырой земле, остужая одну сторону и пригревая другую; что, когда он, бывало, надевал свои бальные узкие башмаки, он точно так же страдал, как теперь, когда он шел уже босой совсем (обувь его давно растрепалась), ногами, покрытыми болячками. Он узнал, что, когда он, как ему казалось, по собственной своей воле женился на своей жене, он был не более свободен, чем теперь, когда его запирали на ночь в конюшню. Из всего того, что потом и он называл страданием, но которое он тогда почти не чувствовал, главное были босые, стертые, заструпелые ноги. (Лошадиное мясо было вкусно и питательно, селитренный букет пороха, употребляемого вместо соли, был даже приятен, холода большого не было, и днем на ходу всегда бывало жарко, а ночью были костры; вши, евшие тело, приятно согревали.) Одно было тяжело в первое время – это ноги.
Во второй день перехода, осмотрев у костра свои болячки, Пьер думал невозможным ступить на них; но когда все поднялись, он пошел, прихрамывая, и потом, когда разогрелся, пошел без боли, хотя к вечеру страшнее еще было смотреть на ноги. Но он не смотрел на них и думал о другом.
Теперь только Пьер понял всю силу жизненности человека и спасительную силу перемещения внимания, вложенную в человека, подобную тому спасительному клапану в паровиках, который выпускает лишний пар, как только плотность его превышает известную норму.
Он не видал и не слыхал, как пристреливали отсталых пленных, хотя более сотни из них уже погибли таким образом. Он не думал о Каратаеве, который слабел с каждым днем и, очевидно, скоро должен был подвергнуться той же участи. Еще менее Пьер думал о себе. Чем труднее становилось его положение, чем страшнее была будущность, тем независимее от того положения, в котором он находился, приходили ему радостные и успокоительные мысли, воспоминания и представления.


22 го числа, в полдень, Пьер шел в гору по грязной, скользкой дороге, глядя на свои ноги и на неровности пути. Изредка он взглядывал на знакомую толпу, окружающую его, и опять на свои ноги. И то и другое было одинаково свое и знакомое ему. Лиловый кривоногий Серый весело бежал стороной дороги, изредка, в доказательство своей ловкости и довольства, поджимая заднюю лапу и прыгая на трех и потом опять на всех четырех бросаясь с лаем на вороньев, которые сидели на падали. Серый был веселее и глаже, чем в Москве. Со всех сторон лежало мясо различных животных – от человеческого до лошадиного, в различных степенях разложения; и волков не подпускали шедшие люди, так что Серый мог наедаться сколько угодно.
Дождик шел с утра, и казалось, что вот вот он пройдет и на небе расчистит, как вслед за непродолжительной остановкой припускал дождик еще сильнее. Напитанная дождем дорога уже не принимала в себя воды, и ручьи текли по колеям.
Пьер шел, оглядываясь по сторонам, считая шаги по три, и загибал на пальцах. Обращаясь к дождю, он внутренне приговаривал: ну ка, ну ка, еще, еще наддай.
Ему казалось, что он ни о чем не думает; но далеко и глубоко где то что то важное и утешительное думала его душа. Это что то было тончайшее духовное извлечение из вчерашнего его разговора с Каратаевым.
Вчера, на ночном привале, озябнув у потухшего огня, Пьер встал и перешел к ближайшему, лучше горящему костру. У костра, к которому он подошел, сидел Платон, укрывшись, как ризой, с головой шинелью, и рассказывал солдатам своим спорым, приятным, но слабым, болезненным голосом знакомую Пьеру историю. Было уже за полночь. Это было то время, в которое Каратаев обыкновенно оживал от лихорадочного припадка и бывал особенно оживлен. Подойдя к костру и услыхав слабый, болезненный голос Платона и увидав его ярко освещенное огнем жалкое лицо, Пьера что то неприятно кольнуло в сердце. Он испугался своей жалости к этому человеку и хотел уйти, но другого костра не было, и Пьер, стараясь не глядеть на Платона, подсел к костру.
– Что, как твое здоровье? – спросил он.
– Что здоровье? На болезнь плакаться – бог смерти не даст, – сказал Каратаев и тотчас же возвратился к начатому рассказу.
– …И вот, братец ты мой, – продолжал Платон с улыбкой на худом, бледном лице и с особенным, радостным блеском в глазах, – вот, братец ты мой…
Пьер знал эту историю давно, Каратаев раз шесть ему одному рассказывал эту историю, и всегда с особенным, радостным чувством. Но как ни хорошо знал Пьер эту историю, он теперь прислушался к ней, как к чему то новому, и тот тихий восторг, который, рассказывая, видимо, испытывал Каратаев, сообщился и Пьеру. История эта была о старом купце, благообразно и богобоязненно жившем с семьей и поехавшем однажды с товарищем, богатым купцом, к Макарью.
Остановившись на постоялом дворе, оба купца заснули, и на другой день товарищ купца был найден зарезанным и ограбленным. Окровавленный нож найден был под подушкой старого купца. Купца судили, наказали кнутом и, выдернув ноздри, – как следует по порядку, говорил Каратаев, – сослали в каторгу.
– И вот, братец ты мой (на этом месте Пьер застал рассказ Каратаева), проходит тому делу годов десять или больше того. Живет старичок на каторге. Как следовает, покоряется, худого не делает. Только у бога смерти просит. – Хорошо. И соберись они, ночным делом, каторжные то, так же вот как мы с тобой, и старичок с ними. И зашел разговор, кто за что страдает, в чем богу виноват. Стали сказывать, тот душу загубил, тот две, тот поджег, тот беглый, так ни за что. Стали старичка спрашивать: ты за что, мол, дедушка, страдаешь? Я, братцы мои миленькие, говорит, за свои да за людские грехи страдаю. А я ни душ не губил, ни чужого не брал, акромя что нищую братию оделял. Я, братцы мои миленькие, купец; и богатство большое имел. Так и так, говорит. И рассказал им, значит, как все дело было, по порядку. Я, говорит, о себе не тужу. Меня, значит, бог сыскал. Одно, говорит, мне свою старуху и деток жаль. И так то заплакал старичок. Случись в их компании тот самый человек, значит, что купца убил. Где, говорит, дедушка, было? Когда, в каком месяце? все расспросил. Заболело у него сердце. Подходит таким манером к старичку – хлоп в ноги. За меня ты, говорит, старичок, пропадаешь. Правда истинная; безвинно напрасно, говорит, ребятушки, человек этот мучится. Я, говорит, то самое дело сделал и нож тебе под голова сонному подложил. Прости, говорит, дедушка, меня ты ради Христа.
Каратаев замолчал, радостно улыбаясь, глядя на огонь, и поправил поленья.
– Старичок и говорит: бог, мол, тебя простит, а мы все, говорит, богу грешны, я за свои грехи страдаю. Сам заплакал горючьми слезьми. Что же думаешь, соколик, – все светлее и светлее сияя восторженной улыбкой, говорил Каратаев, как будто в том, что он имел теперь рассказать, заключалась главная прелесть и все значение рассказа, – что же думаешь, соколик, объявился этот убийца самый по начальству. Я, говорит, шесть душ загубил (большой злодей был), но всего мне жальче старичка этого. Пускай же он на меня не плачется. Объявился: списали, послали бумагу, как следовает. Место дальнее, пока суд да дело, пока все бумаги списали как должно, по начальствам, значит. До царя доходило. Пока что, пришел царский указ: выпустить купца, дать ему награждения, сколько там присудили. Пришла бумага, стали старичка разыскивать. Где такой старичок безвинно напрасно страдал? От царя бумага вышла. Стали искать. – Нижняя челюсть Каратаева дрогнула. – А его уж бог простил – помер. Так то, соколик, – закончил Каратаев и долго, молча улыбаясь, смотрел перед собой.
Не самый рассказ этот, но таинственный смысл его, та восторженная радость, которая сияла в лице Каратаева при этом рассказе, таинственное значение этой радости, это то смутно и радостно наполняло теперь душу Пьера.


– A vos places! [По местам!] – вдруг закричал голос.
Между пленными и конвойными произошло радостное смятение и ожидание чего то счастливого и торжественного. Со всех сторон послышались крики команды, и с левой стороны, рысью объезжая пленных, показались кавалеристы, хорошо одетые, на хороших лошадях. На всех лицах было выражение напряженности, которая бывает у людей при близости высших властей. Пленные сбились в кучу, их столкнули с дороги; конвойные построились.
– L'Empereur! L'Empereur! Le marechal! Le duc! [Император! Император! Маршал! Герцог!] – и только что проехали сытые конвойные, как прогремела карета цугом, на серых лошадях. Пьер мельком увидал спокойное, красивое, толстое и белое лицо человека в треугольной шляпе. Это был один из маршалов. Взгляд маршала обратился на крупную, заметную фигуру Пьера, и в том выражении, с которым маршал этот нахмурился и отвернул лицо, Пьеру показалось сострадание и желание скрыть его.
Генерал, который вел депо, с красным испуганным лицом, погоняя свою худую лошадь, скакал за каретой. Несколько офицеров сошлось вместе, солдаты окружили их. У всех были взволнованно напряженные лица.
– Qu'est ce qu'il a dit? Qu'est ce qu'il a dit?.. [Что он сказал? Что? Что?..] – слышал Пьер.
Во время проезда маршала пленные сбились в кучу, и Пьер увидал Каратаева, которого он не видал еще в нынешнее утро. Каратаев в своей шинельке сидел, прислонившись к березе. В лице его, кроме выражения вчерашнего радостного умиления при рассказе о безвинном страдании купца, светилось еще выражение тихой торжественности.
Каратаев смотрел на Пьера своими добрыми, круглыми глазами, подернутыми теперь слезою, и, видимо, подзывал его к себе, хотел сказать что то. Но Пьеру слишком страшно было за себя. Он сделал так, как будто не видал его взгляда, и поспешно отошел.
Когда пленные опять тронулись, Пьер оглянулся назад. Каратаев сидел на краю дороги, у березы; и два француза что то говорили над ним. Пьер не оглядывался больше. Он шел, прихрамывая, в гору.
Сзади, с того места, где сидел Каратаев, послышался выстрел. Пьер слышал явственно этот выстрел, но в то же мгновение, как он услыхал его, Пьер вспомнил, что он не кончил еще начатое перед проездом маршала вычисление о том, сколько переходов оставалось до Смоленска. И он стал считать. Два французские солдата, из которых один держал в руке снятое, дымящееся ружье, пробежали мимо Пьера. Они оба были бледны, и в выражении их лиц – один из них робко взглянул на Пьера – было что то похожее на то, что он видел в молодом солдате на казни. Пьер посмотрел на солдата и вспомнил о том, как этот солдат третьего дня сжег, высушивая на костре, свою рубаху и как смеялись над ним.
Собака завыла сзади, с того места, где сидел Каратаев. «Экая дура, о чем она воет?» – подумал Пьер.
Солдаты товарищи, шедшие рядом с Пьером, не оглядывались, так же как и он, на то место, с которого послышался выстрел и потом вой собаки; но строгое выражение лежало на всех лицах.


Депо, и пленные, и обоз маршала остановились в деревне Шамшеве. Все сбилось в кучу у костров. Пьер подошел к костру, поел жареного лошадиного мяса, лег спиной к огню и тотчас же заснул. Он спал опять тем же сном, каким он спал в Можайске после Бородина.
Опять события действительности соединялись с сновидениями, и опять кто то, сам ли он или кто другой, говорил ему мысли, и даже те же мысли, которые ему говорились в Можайске.
«Жизнь есть всё. Жизнь есть бог. Все перемещается и движется, и это движение есть бог. И пока есть жизнь, есть наслаждение самосознания божества. Любить жизнь, любить бога. Труднее и блаженнее всего любить эту жизнь в своих страданиях, в безвинности страданий».
«Каратаев» – вспомнилось Пьеру.
И вдруг Пьеру представился, как живой, давно забытый, кроткий старичок учитель, который в Швейцарии преподавал Пьеру географию. «Постой», – сказал старичок. И он показал Пьеру глобус. Глобус этот был живой, колеблющийся шар, не имеющий размеров. Вся поверхность шара состояла из капель, плотно сжатых между собой. И капли эти все двигались, перемещались и то сливались из нескольких в одну, то из одной разделялись на многие. Каждая капля стремилась разлиться, захватить наибольшее пространство, но другие, стремясь к тому же, сжимали ее, иногда уничтожали, иногда сливались с нею.
– Вот жизнь, – сказал старичок учитель.
«Как это просто и ясно, – подумал Пьер. – Как я мог не знать этого прежде».
– В середине бог, и каждая капля стремится расшириться, чтобы в наибольших размерах отражать его. И растет, сливается, и сжимается, и уничтожается на поверхности, уходит в глубину и опять всплывает. Вот он, Каратаев, вот разлился и исчез. – Vous avez compris, mon enfant, [Понимаешь ты.] – сказал учитель.
– Vous avez compris, sacre nom, [Понимаешь ты, черт тебя дери.] – закричал голос, и Пьер проснулся.
Он приподнялся и сел. У костра, присев на корточках, сидел француз, только что оттолкнувший русского солдата, и жарил надетое на шомпол мясо. Жилистые, засученные, обросшие волосами, красные руки с короткими пальцами ловко поворачивали шомпол. Коричневое мрачное лицо с насупленными бровями ясно виднелось в свете угольев.
– Ca lui est bien egal, – проворчал он, быстро обращаясь к солдату, стоявшему за ним. – …brigand. Va! [Ему все равно… разбойник, право!]
И солдат, вертя шомпол, мрачно взглянул на Пьера. Пьер отвернулся, вглядываясь в тени. Один русский солдат пленный, тот, которого оттолкнул француз, сидел у костра и трепал по чем то рукой. Вглядевшись ближе, Пьер узнал лиловую собачонку, которая, виляя хвостом, сидела подле солдата.
– А, пришла? – сказал Пьер. – А, Пла… – начал он и не договорил. В его воображении вдруг, одновременно, связываясь между собой, возникло воспоминание о взгляде, которым смотрел на него Платон, сидя под деревом, о выстреле, слышанном на том месте, о вое собаки, о преступных лицах двух французов, пробежавших мимо его, о снятом дымящемся ружье, об отсутствии Каратаева на этом привале, и он готов уже был понять, что Каратаев убит, но в то же самое мгновенье в его душе, взявшись бог знает откуда, возникло воспоминание о вечере, проведенном им с красавицей полькой, летом, на балконе своего киевского дома. И все таки не связав воспоминаний нынешнего дня и не сделав о них вывода, Пьер закрыл глаза, и картина летней природы смешалась с воспоминанием о купанье, о жидком колеблющемся шаре, и он опустился куда то в воду, так что вода сошлась над его головой.
Перед восходом солнца его разбудили громкие частые выстрелы и крики. Мимо Пьера пробежали французы.
– Les cosaques! [Казаки!] – прокричал один из них, и через минуту толпа русских лиц окружила Пьера.
Долго не мог понять Пьер того, что с ним было. Со всех сторон он слышал вопли радости товарищей.
– Братцы! Родимые мои, голубчики! – плача, кричали старые солдаты, обнимая казаков и гусар. Гусары и казаки окружали пленных и торопливо предлагали кто платья, кто сапоги, кто хлеба. Пьер рыдал, сидя посреди их, и не мог выговорить ни слова; он обнял первого подошедшего к нему солдата и, плача, целовал его.
Долохов стоял у ворот разваленного дома, пропуская мимо себя толпу обезоруженных французов. Французы, взволнованные всем происшедшим, громко говорили между собой; но когда они проходили мимо Долохова, который слегка хлестал себя по сапогам нагайкой и глядел на них своим холодным, стеклянным, ничего доброго не обещающим взглядом, говор их замолкал. С другой стороны стоял казак Долохова и считал пленных, отмечая сотни чертой мела на воротах.
– Сколько? – спросил Долохов у казака, считавшего пленных.
– На вторую сотню, – отвечал казак.
– Filez, filez, [Проходи, проходи.] – приговаривал Долохов, выучившись этому выражению у французов, и, встречаясь глазами с проходившими пленными, взгляд его вспыхивал жестоким блеском.
Денисов, с мрачным лицом, сняв папаху, шел позади казаков, несших к вырытой в саду яме тело Пети Ростова.


С 28 го октября, когда начались морозы, бегство французов получило только более трагический характер замерзающих и изжаривающихся насмерть у костров людей и продолжающих в шубах и колясках ехать с награбленным добром императора, королей и герцогов; но в сущности своей процесс бегства и разложения французской армии со времени выступления из Москвы нисколько не изменился.
От Москвы до Вязьмы из семидесятитрехтысячной французской армии, не считая гвардии (которая во всю войну ничего не делала, кроме грабежа), из семидесяти трех тысяч осталось тридцать шесть тысяч (из этого числа не более пяти тысяч выбыло в сражениях). Вот первый член прогрессии, которым математически верно определяются последующие.
Французская армия в той же пропорции таяла и уничтожалась от Москвы до Вязьмы, от Вязьмы до Смоленска, от Смоленска до Березины, от Березины до Вильны, независимо от большей или меньшей степени холода, преследования, заграждения пути и всех других условий, взятых отдельно. После Вязьмы войска французские вместо трех колонн сбились в одну кучу и так шли до конца. Бертье писал своему государю (известно, как отдаленно от истины позволяют себе начальники описывать положение армии). Он писал:
«Je crois devoir faire connaitre a Votre Majeste l'etat de ses troupes dans les differents corps d'annee que j'ai ete a meme d'observer depuis deux ou trois jours dans differents passages. Elles sont presque debandees. Le nombre des soldats qui suivent les drapeaux est en proportion du quart au plus dans presque tous les regiments, les autres marchent isolement dans differentes directions et pour leur compte, dans l'esperance de trouver des subsistances et pour se debarrasser de la discipline. En general ils regardent Smolensk comme le point ou ils doivent se refaire. Ces derniers jours on a remarque que beaucoup de soldats jettent leurs cartouches et leurs armes. Dans cet etat de choses, l'interet du service de Votre Majeste exige, quelles que soient ses vues ulterieures qu'on rallie l'armee a Smolensk en commencant a la debarrasser des non combattans, tels que hommes demontes et des bagages inutiles et du materiel de l'artillerie qui n'est plus en proportion avec les forces actuelles. En outre les jours de repos, des subsistances sont necessaires aux soldats qui sont extenues par la faim et la fatigue; beaucoup sont morts ces derniers jours sur la route et dans les bivacs. Cet etat de choses va toujours en augmentant et donne lieu de craindre que si l'on n'y prete un prompt remede, on ne soit plus maitre des troupes dans un combat. Le 9 November, a 30 verstes de Smolensk».
[Долгом поставляю донести вашему величеству о состоянии корпусов, осмотренных мною на марше в последние три дня. Они почти в совершенном разброде. Только четвертая часть солдат остается при знаменах, прочие идут сами по себе разными направлениями, стараясь сыскать пропитание и избавиться от службы. Все думают только о Смоленске, где надеются отдохнуть. В последние дни много солдат побросали патроны и ружья. Какие бы ни были ваши дальнейшие намерения, но польза службы вашего величества требует собрать корпуса в Смоленске и отделить от них спешенных кавалеристов, безоружных, лишние обозы и часть артиллерии, ибо она теперь не в соразмерности с числом войск. Необходимо продовольствие и несколько дней покоя; солдаты изнурены голодом и усталостью; в последние дни многие умерли на дороге и на биваках. Такое бедственное положение беспрестанно усиливается и заставляет опасаться, что, если не будут приняты быстрые меры для предотвращения зла, мы скоро не будем иметь войска в своей власти в случае сражения. 9 ноября, в 30 верстах от Смоленка.]