Дайджест-аутентификация

Поделись знанием:
Перейти к: навигация, поиск
HTTP
Постоянное соединение · Сжатие · HTTPS
Методы
OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH
Заголовки
Cookie · ETag · Location · Referer
DNT · X-Forwarded-For
Коды состояния
301 Moved permanently
302 Found
303 See Other
403 Forbidden
404 Not Found
451 Unavailable for Legal Reasons

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

Технически дайджест-аутентификация представляет собой применение MD5-криптографического хеширования с использованием случайных значений для затруднения криптоанализа. В ней используется HTTP-протокол.





Обзор

Дайджест-аутентификация доступа была первоначально определена RFC 2069 (An Extension to HTTP : Digest Access Authentication). RFC 2069 задает почти классическую схему дайджест-аутентификации, в которой безопасность поддерживается с помощью генерируемых сервером случайных значений. Ответ на запрос аутентификации формируется следующим образом (где HA1, HA2, A1, A2 — имена строковых переменных):

<math>\mathrm{HA1} = \mathrm{MD5}\Big(\mathrm{A1}\Big) = \mathrm{MD5}\Big( \mathrm{username} : \mathrm{realm} : \mathrm{password} \Big)</math>
<math>\mathrm{HA2} = \mathrm{MD5}\Big(\mathrm{A2}\Big) = \mathrm{MD5}\Big( \mathrm{method} : \mathrm{digestURI} \Big)</math>
<math>\mathrm{response} = \mathrm{MD5}\Big( \mathrm{HA1} : \mathrm{nonce} : \mathrm{HA2} \Big) </math>

RFC 2069 был позже заменен RFC 2617 (HTTP Authentication: Basic and Digest Access Authentication). В RFC 2617 был введен ряд дополнительных мер по усилению безопасности при дайджест-аутентификации; «качество защиты» (QOP), счетчик случайных значений, увеличиваемый клиентом и случайные значения, генерируемые клиентом. Эти улучшения предназначены для защиты от, например, атаки криптоаналитика с заранее выбранным открытым текстом [chosen-plaintext attack].

<math>\mathrm{HA1} = \mathrm{MD5}\Big(\mathrm{A1}\Big) = \mathrm{MD5}\Big( \mathrm{username} : \mathrm{realm} : \mathrm{password} \Big)</math>

Если значение директивы QOP равно «auth» или не определено, то HA2 равняется:

<math>\mathrm{HA2} = \mathrm{MD5}\Big(\mathrm{A2}\Big) = \mathrm{MD5}\Big( \mathrm{method} : \mathrm{digestURI} \Big)</math>

Если значение директивы QOP равно «auth-int», то HA2 равняется:

<math>\mathrm{HA2} = \mathrm{MD5}\Big(\mathrm{A2}\Big) = \mathrm{MD5}\Big( \mathrm{method} : \mathrm{digestURI} : \mathrm {MD5}(entityBody)\Big)</math>

Если значение директивы QOP равно «auth» или «auth-int», то ответ на запрос вычисляется следующим образом:

<math>\mathrm{response} = \mathrm{MD5}\Big( \mathrm{HA1} : \mathrm{nonce} : \mathrm{nonceCount} : \mathrm{clientNonce} : \mathrm{qop} : \mathrm{HA2} \Big)</math>

Если директива QOP не определена, то ответ вычисляется так:

<math>\mathrm{response} = \mathrm{MD5}\Big( \mathrm{HA1} : \mathrm{nonce} : \mathrm{HA2} \Big) </math>

Вышеизложенное показывает, что, когда QOP не определено, применяется более простой стандарт RFC 2069.

Влияние MD5 защиты на дайджест-аутентификацию

Вычисления MD5, используемые при дайджест-аутентификации HTTP должны быть «односторонними», что означает большую сложность определения первоначальных входных данных, когда известны только выходные. Однако, если пароль слишком простой, то можно выполнить перебор всех возможных входных данных и найти соответствующие выходные (атака методом прямого перебора) — например, с помощью словаря или подходящего look-up списка.

Схема HTTP была разработана в CERN в 1993 году и не включает в себя последующие улучшения систем аутентификации, такие как кодирование проверки подлинности сообщения с помощью хэш-ключа (HMAC). Хотя используемая криптографическая конструкция основывается на использовании MD5 хэш-функции, по общему мнению 2004 года атаки с коллизиями (collision attacks) не влияют на приложения, где открытый текст (например, пароль), не известен.[1]К:Википедия:Статьи без источников (тип: не указан)[источник не указан 5047 дней] Тем не менее, в 2006 году (Kim, Biryukov2, Preneel, Hong, [eprint.iacr.org/2006/187.pdf «On the Security of HMAC and NMAC Based on HAVAL MD4 MD5 SHA-0 and SHA-1»]) было поставлено под сомнение, что другие применения MD5 настолько же удачны. Однако до сих пор не было доказано, что атаки с коллизиями (collision attacks) на MD5 представляет угрозу для дайджест-проверки подлинности, и RFC 2617 позволяет серверам внедрять механизмы, позволяющие выявить некоторые атаки с коллизиями (collision attacks) и повторами (replay attacks).

Характеристики HTTP-дайджест-аутентификации

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

HTTP-дайджест-аутентификация создана для усиления защиты по сравнению с традиционными схемами дайджест-аутентификации, например, она "значительно более безопасна, чем CRAM-MD5 … " ([www.ietf.org/rfc/rfc2617.txt RFC2617]).

Некоторые сильные стороны дайджест-аутентификации HTTP :

  • Пароль не используется непосредственно в дайджесте, вместо этого HA1 = MD5 (username: realm: password). Это позволяет в некоторых реализациях (например, JBoss [wiki.jboss.org/wiki/Wiki.jsp?page=DIGESTAuth DIGESTAuth]) хранить HA1, а не пароль открытым текстом.
  • В RFC2617 было введено случайное значение клиента, которое позволяет клиенту предотвратить атаку с заранее выбранным открытым текстом [chosen-plaintext attack] (в противном случае, например, радужная таблица [ rainbow table ] представляет угрозу схеме дайджест-аутентификации).
  • Серверное случайное значение может содержать временные метки. Поэтому сервер может проверить случайные значения, предоставленные клиентами, для предотвращения атак повторного воспроизведения [replay attacks].
  • Сервер также может содержать таблицу недавно созданных или использованных случайных значений для предотвращения повторного использования.

Недостатки

Дайджест-аутентификации доступа представляет собой компромиссное решение. Она призвана заменить незашифрованные HTTP базовой аутентификации доступа. Однако она не предназначена для замены более безопасных протоколов аутентификации, например, с открытым ключом или Kerberos-аутентификации.

С точки зрения безопасности у дайджест-аутентификации доступа есть несколько недостатков:

  • Многие из опций безопасности в RFC 2617 являются необязательными. Если качество защиты (QOP) не определено сервером, клиент будет работать в режиме пониженной защищенности RFC 2069.
  • Дайджест-аутентификация уязвима к атакам человека посередине (MitM). Например, MitM-злоумышленник может сказать клиентам использовать базовую аутентификацию доступа или режим дайджест-аутентификации RFC 2069. В более широком смысле, дайджест-аутентификация доступа не предоставляет клиентам механизма проверки подлинности сервера.
  • Некоторые серверы требуют хранить пароли с использованием обратимого шифрования. Тем не менее, возможно вместо этого сохранять дайджест имени пользователя, области, и пароля.[2]

Альтернативные протоколы аутентификации

Некоторые усиленные протоколы аутентификации для веб-приложений:

  • Аутентификация с открытым ключом (как правило, осуществляется с помощью HTTPS / SSL-сертификатов клиента).
  • Аутентификация Kerberos или [en.wikipedia.org/wiki/SPNEGO SPNEGO], в первую очередь, используемых Microsoft IIS для работы встроенной проверки подлинности Windows (IWA).
  • Протокол защищенного удаленного пароля (желательно посредством HTTPS / TLS).

Слабо защищенные протоколы открытого типа часто используются в:

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

Пример с объяснением

Следующий пример был изначально продемонстрирован в RFC 2617 и расширен здесь, чтобы показать полный текст, ожидаемый для каждого запроса и ответа. Отметим, что освещено только качество защиты кода аутентификации — на момент написания только браузеры Opera и Konqueror поддерживали «AUTH-INT» (аутентификация с целостностью защиты). Хотя спецификация упоминает HTTP версии 1.1, схема может быть успешно добавлена к версии сервера 1.0, как показано здесь.

Эта типичная схема обмена сообщениями состоит из следующих шагов.

  • Клиент запрашивает страницу, которая требует аутентифицироваться, но не предоставляет имя пользователя и пароль. Как правило, это происходит потому, что пользователь просто ввел адрес или проследовал по ссылке на страницу.
  • Сервер отвечает 401 «клиент-ошибка», предоставляя область аутентификации и случайно сгенерированное, одноразовое значение.
  • На данном шаге клиент будет предоставлять область аутентификации (как правило, описание компьютера или системы, осуществляющей доступ) пользователю и запросит имя пользователя и пароль. Пользователь может принять решение об отмене в этот момент.
  • Как только имя пользователя и пароль были предоставлены, клиент повторно посылает тот же самый запрос, но добавляет заголовок аутентификации, который включает код ответа.
  • В этом примере сервер принимает аутентификацию и страница возвращается. Если имя пользователя является недействительным и / или пароль неверный, сервер может вернуть код ответа «401» и клиент будет запрашивать их у пользователя еще раз.

Примечание: клиент может уже содержать имя пользователя и пароль, без необходимости запрашивать у пользователя, например, если они ранее были сохранены веб-браузером.

Запрос клиента (без аутентификации)
GET /dir/index.html HTTP/1.0
Host: localhost
Ответ сервера
HTTP/1.0 401 Unauthorized
Server: HTTPd/0.9
Date: Sun, 10 Apr 2005 20:26:47 GMT
WWW-Authenticate: Digest realm="testrealm@host.com",
                        qop="auth,auth-int",
                        nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
                        opaque="5ccc069c403ebaf9f0171e9517f40e41"
Content-Type: text/html
Content-Length: 311

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML>
  <HEAD>
    <TITLE>Error</TITLE>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
  </HEAD>
  <BODY><H1>401 Unauthorized.</H1></BODY>
</HTML>
Запрос клиента (имя пользователя «Mufasa», пароль «Circle Of Life»)
GET /dir/index.html HTTP/1.0
Host: localhost
Authorization: Digest username="Mufasa",
                     realm="testrealm@host.com",
                     nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
                     uri="/dir/index.html",
                     qop=auth,
                     nc=00000001,
                     cnonce="0a4f113b",
                     response="6629fae49393a05397450978507c4ef1",
                     opaque="5ccc069c403ebaf9f0171e9517f40e41"
Ответ сервера
HTTP/1.0 200 OK
Server: HTTPd/0.9
Date: Sun, 10 Apr 2005 20:27:03 GMT
Content-Type: text/html
Content-Length: 7984

Значение ответа рассчитывается в три этапа, следующим образом. Где значения объединяются, они разделяются символом двоеточия.

  1. Вычисляется комбинированный MD5-хэш имени пользователя, области аутентификации и пароля. Результатом является HA1.
  2. Рассчитывается MD5-хэш комбинированного метода и дайджест URI, например "GET" и "/dir/index.html". Результат называется HA2.
  3. Вычисляется MD5-хэш комбинированного результата HA1, серверного случайного значения, счётчика запросов, клиентского случайного значения, кода качества защиты (QOP) и HA2. Результат — значение «ответа», предоставленное клиентом.

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

Завершая пример, приведенный в RFC 2617, продемонстрируем результаты для каждого шага.

HA1 = MD5( "Mufasa:testrealm@host.com:Circle Of Life" )
       = 939e7578ed9e3c518a452acee763bce9

   HA2 = MD5( "GET:/dir/index.html" )
       = 39aff3a2bab6126f332b942af96d3366

   Response = MD5( "939e7578ed9e3c518a452acee763bce9:\
                    dcd98b7102dd2f0e8b11d0f600bfb0c093:\
                    00000001:0a4f113b:auth:\
                    39aff3a2bab6126f332b942af96d3366" )
            = 6629fae49393a05397450978507c4ef1

В этот момент клиент может сделать новый запрос, повторно использовав случайное значение сервера (сервер выдает новое случайное значение для каждого ответа «401»), но предоставив новое случайное значение клиента. Для последующих запросов значение шестнадцатеричного счетчика запросов должно быть больше чем предыдущее использованное значение — в противном случае злоумышленник может просто «повторить» старую заявку с теми же данными. Это задача сервера — контролировать, чтобы счетчик увеличивался для каждого случайного значения, которое было выдано, и игнорировать любые несоответствующие запросы. Очевидно, что изменение метода, URI и/или значения счетчика может привести к другим значениям ответа.

Сервер должен помнить случайные значения, которые были сгенерированы недавно. Он также может помнить, когда было выдано каждое случайное значение, и выводить их из использования по истечении определенного количества времени. Если используется устаревшее значение, то сервер должен переслать код состояния «401» и добавить stale=TRUE к заголовку аутентификации, указывая, что клиент должен повторно отправить запрос с новым случайным значением, не заставляя пользователя отправлять другие имя пользователя и пароль.

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

SIP-дайджест-аутентификация

SIP использует в основном тот же алгоритм дайджест-аутентификации. Он определяется RFC 3261.

Браузерная реализация

В большинстве браузеров реализованы существенные спецификации, за исключением некоторых определенных функций, таких как проверка AUTH-INT или алгоритм MD5-сессии. Если сервер требует, чтобы эти дополнительные особенности были обработаны, клиенты могут не иметь возможности проверки подлинности (хотя следует отметить, что mod_auth_digest для Apache тоже не в полной мере реализует RFC 2617).

См. также

Напишите отзыв о статье "Дайджест-аутентификация"

Литература

  1. [www.cryptography.com/cnews/hash.html Hash Collision Q&A]. Cryptography Research (date unidentified). Проверено 2 июля 2010. [web.archive.org/web/20040901184053/www.cryptography.com/cnews/hash.html Архивировано из первоисточника 1 сентября 2004]. NOTE: Specific information not given; needs quote from exact version of this page originally cited.
  2. [tools.ietf.org/html/rfc2617#section-4.13 RFC 2617 — HTTP Authentication: Basic and Digest Access Authentication]
  3. [httpd.apache.org/docs/2.2/mod/mod_auth_digest.html#msie mod_auth_digest — Apache HTTP Server]

Ссылки

Отрывок, характеризующий Дайджест-аутентификация

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

Пьер сидел в гостиной, где Шиншин, как с приезжим из за границы, завел с ним скучный для Пьера политический разговор, к которому присоединились и другие. Когда заиграла музыка, Наташа вошла в гостиную и, подойдя прямо к Пьеру, смеясь и краснея, сказала:
– Мама велела вас просить танцовать.
– Я боюсь спутать фигуры, – сказал Пьер, – но ежели вы хотите быть моим учителем…
И он подал свою толстую руку, низко опуская ее, тоненькой девочке.
Пока расстанавливались пары и строили музыканты, Пьер сел с своей маленькой дамой. Наташа была совершенно счастлива; она танцовала с большим , с приехавшим из за границы . Она сидела на виду у всех и разговаривала с ним, как большая. У нее в руке был веер, который ей дала подержать одна барышня. И, приняв самую светскую позу (Бог знает, где и когда она этому научилась), она, обмахиваясь веером и улыбаясь через веер, говорила с своим кавалером.
– Какова, какова? Смотрите, смотрите, – сказала старая графиня, проходя через залу и указывая на Наташу.
Наташа покраснела и засмеялась.
– Ну, что вы, мама? Ну, что вам за охота? Что ж тут удивительного?

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


В то время как у Ростовых танцовали в зале шестой англез под звуки от усталости фальшививших музыкантов, и усталые официанты и повара готовили ужин, с графом Безухим сделался шестой удар. Доктора объявили, что надежды к выздоровлению нет; больному дана была глухая исповедь и причастие; делали приготовления для соборования, и в доме была суетня и тревога ожидания, обыкновенные в такие минуты. Вне дома, за воротами толпились, скрываясь от подъезжавших экипажей, гробовщики, ожидая богатого заказа на похороны графа. Главнокомандующий Москвы, который беспрестанно присылал адъютантов узнавать о положении графа, в этот вечер сам приезжал проститься с знаменитым Екатерининским вельможей, графом Безухим.
Великолепная приемная комната была полна. Все почтительно встали, когда главнокомандующий, пробыв около получаса наедине с больным, вышел оттуда, слегка отвечая на поклоны и стараясь как можно скорее пройти мимо устремленных на него взглядов докторов, духовных лиц и родственников. Князь Василий, похудевший и побледневший за эти дни, провожал главнокомандующего и что то несколько раз тихо повторил ему.
Проводив главнокомандующего, князь Василий сел в зале один на стул, закинув высоко ногу на ногу, на коленку упирая локоть и рукою закрыв глаза. Посидев так несколько времени, он встал и непривычно поспешными шагами, оглядываясь кругом испуганными глазами, пошел чрез длинный коридор на заднюю половину дома, к старшей княжне.
Находившиеся в слабо освещенной комнате неровным шопотом говорили между собой и замолкали каждый раз и полными вопроса и ожидания глазами оглядывались на дверь, которая вела в покои умирающего и издавала слабый звук, когда кто нибудь выходил из нее или входил в нее.
– Предел человеческий, – говорил старичок, духовное лицо, даме, подсевшей к нему и наивно слушавшей его, – предел положен, его же не прейдеши.
– Я думаю, не поздно ли соборовать? – прибавляя духовный титул, спрашивала дама, как будто не имея на этот счет никакого своего мнения.
– Таинство, матушка, великое, – отвечало духовное лицо, проводя рукою по лысине, по которой пролегало несколько прядей зачесанных полуседых волос.
– Это кто же? сам главнокомандующий был? – спрашивали в другом конце комнаты. – Какой моложавый!…
– А седьмой десяток! Что, говорят, граф то не узнает уж? Хотели соборовать?
– Я одного знал: семь раз соборовался.
Вторая княжна только вышла из комнаты больного с заплаканными глазами и села подле доктора Лоррена, который в грациозной позе сидел под портретом Екатерины, облокотившись на стол.
– Tres beau, – говорил доктор, отвечая на вопрос о погоде, – tres beau, princesse, et puis, a Moscou on se croit a la campagne. [прекрасная погода, княжна, и потом Москва так похожа на деревню.]
– N'est ce pas? [Не правда ли?] – сказала княжна, вздыхая. – Так можно ему пить?
Лоррен задумался.
– Он принял лекарство?
– Да.
Доктор посмотрел на брегет.
– Возьмите стакан отварной воды и положите une pincee (он своими тонкими пальцами показал, что значит une pincee) de cremortartari… [щепотку кремортартара…]
– Не пило слушай , – говорил немец доктор адъютанту, – чтопи с третий удар шивь оставался .
– А какой свежий был мужчина! – говорил адъютант. – И кому пойдет это богатство? – прибавил он шопотом.
– Окотник найдутся , – улыбаясь, отвечал немец.
Все опять оглянулись на дверь: она скрипнула, и вторая княжна, сделав питье, показанное Лорреном, понесла его больному. Немец доктор подошел к Лоррену.
– Еще, может, дотянется до завтрашнего утра? – спросил немец, дурно выговаривая по французски.
Лоррен, поджав губы, строго и отрицательно помахал пальцем перед своим носом.
– Сегодня ночью, не позже, – сказал он тихо, с приличною улыбкой самодовольства в том, что ясно умеет понимать и выражать положение больного, и отошел.

Между тем князь Василий отворил дверь в комнату княжны.
В комнате было полутемно; только две лампадки горели перед образами, и хорошо пахло куреньем и цветами. Вся комната была установлена мелкою мебелью шифоньерок, шкапчиков, столиков. Из за ширм виднелись белые покрывала высокой пуховой кровати. Собачка залаяла.
– Ах, это вы, mon cousin?
Она встала и оправила волосы, которые у нее всегда, даже и теперь, были так необыкновенно гладки, как будто они были сделаны из одного куска с головой и покрыты лаком.
– Что, случилось что нибудь? – спросила она. – Я уже так напугалась.
– Ничего, всё то же; я только пришел поговорить с тобой, Катишь, о деле, – проговорил князь, устало садясь на кресло, с которого она встала. – Как ты нагрела, однако, – сказал он, – ну, садись сюда, causons. [поговорим.]
– Я думала, не случилось ли что? – сказала княжна и с своим неизменным, каменно строгим выражением лица села против князя, готовясь слушать.
– Хотела уснуть, mon cousin, и не могу.
– Ну, что, моя милая? – сказал князь Василий, взяв руку княжны и пригибая ее по своей привычке книзу.
Видно было, что это «ну, что» относилось ко многому такому, что, не называя, они понимали оба.
Княжна, с своею несообразно длинною по ногам, сухою и прямою талией, прямо и бесстрастно смотрела на князя выпуклыми серыми глазами. Она покачала головой и, вздохнув, посмотрела на образа. Жест ее можно было объяснить и как выражение печали и преданности, и как выражение усталости и надежды на скорый отдых. Князь Василий объяснил этот жест как выражение усталости.
– А мне то, – сказал он, – ты думаешь, легче? Je suis ereinte, comme un cheval de poste; [Я заморен, как почтовая лошадь;] а всё таки мне надо с тобой поговорить, Катишь, и очень серьезно.
Князь Василий замолчал, и щеки его начинали нервически подергиваться то на одну, то на другую сторону, придавая его лицу неприятное выражение, какое никогда не показывалось на лице князя Василия, когда он бывал в гостиных. Глаза его тоже были не такие, как всегда: то они смотрели нагло шутливо, то испуганно оглядывались.
Княжна, своими сухими, худыми руками придерживая на коленях собачку, внимательно смотрела в глаза князю Василию; но видно было, что она не прервет молчания вопросом, хотя бы ей пришлось молчать до утра.
– Вот видите ли, моя милая княжна и кузина, Катерина Семеновна, – продолжал князь Василий, видимо, не без внутренней борьбы приступая к продолжению своей речи, – в такие минуты, как теперь, обо всём надо подумать. Надо подумать о будущем, о вас… Я вас всех люблю, как своих детей, ты это знаешь.
Княжна так же тускло и неподвижно смотрела на него.
– Наконец, надо подумать и о моем семействе, – сердито отталкивая от себя столик и не глядя на нее, продолжал князь Василий, – ты знаешь, Катишь, что вы, три сестры Мамонтовы, да еще моя жена, мы одни прямые наследники графа. Знаю, знаю, как тебе тяжело говорить и думать о таких вещах. И мне не легче; но, друг мой, мне шестой десяток, надо быть ко всему готовым. Ты знаешь ли, что я послал за Пьером, и что граф, прямо указывая на его портрет, требовал его к себе?
Князь Василий вопросительно посмотрел на княжну, но не мог понять, соображала ли она то, что он ей сказал, или просто смотрела на него…
– Я об одном не перестаю молить Бога, mon cousin, – отвечала она, – чтоб он помиловал его и дал бы его прекрасной душе спокойно покинуть эту…
– Да, это так, – нетерпеливо продолжал князь Василий, потирая лысину и опять с злобой придвигая к себе отодвинутый столик, – но, наконец…наконец дело в том, ты сама знаешь, что прошлою зимой граф написал завещание, по которому он всё имение, помимо прямых наследников и нас, отдавал Пьеру.
– Мало ли он писал завещаний! – спокойно сказала княжна. – Но Пьеру он не мог завещать. Пьер незаконный.
– Ma chere, – сказал вдруг князь Василий, прижав к себе столик, оживившись и начав говорить скорей, – но что, ежели письмо написано государю, и граф просит усыновить Пьера? Понимаешь, по заслугам графа его просьба будет уважена…
Княжна улыбнулась, как улыбаются люди, которые думают что знают дело больше, чем те, с кем разговаривают.
– Я тебе скажу больше, – продолжал князь Василий, хватая ее за руку, – письмо было написано, хотя и не отослано, и государь знал о нем. Вопрос только в том, уничтожено ли оно, или нет. Ежели нет, то как скоро всё кончится , – князь Василий вздохнул, давая этим понять, что он разумел под словами всё кончится , – и вскроют бумаги графа, завещание с письмом будет передано государю, и просьба его, наверно, будет уважена. Пьер, как законный сын, получит всё.
– А наша часть? – спросила княжна, иронически улыбаясь так, как будто всё, но только не это, могло случиться.
– Mais, ma pauvre Catiche, c'est clair, comme le jour. [Но, моя дорогая Катишь, это ясно, как день.] Он один тогда законный наследник всего, а вы не получите ни вот этого. Ты должна знать, моя милая, были ли написаны завещание и письмо, и уничтожены ли они. И ежели почему нибудь они забыты, то ты должна знать, где они, и найти их, потому что…