DANE

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

DANE (англ. DNS-based Authentication of Named Entities) — набор спецификаций IETF, обеспечивающих аутентификацию объектов адресации (доменных имён) и предоставляемых сервисов с помощью DNS. Это новый стандарт, вводимый в действие в 2011—2012 годах.

Описание

Многие современные приложения используют аутентификацию на базе сертификатов в защищённых транспортных соединениях, позволяя пользователям удостоверяться в подключении именно к тому серверу, к которому они хотели, и который называется именно так, а не иначе. Обычно аутентификация такого рода происходит через инфраструктуру открытых ключей с использованием цепочки сертификатов, заканчивающейся известным клиенту сертификатом удостоверяющего центра. DANE предусматривает передачу доверенного сертификата, не известного ранее клиенту, средствами DNS с обязательной проверкой подлинности ответа DNS средствами DNSSEC.

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

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

Ресурсные записи

IANA стандартизировала одну новую запись TLSA (код 52). Формат записи:

                       1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  Cert. Usage  |   Selector    | Matching Type |               /
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               /
  /                                                               /
  /                 Certificate Association Data                  /
  /                                                               /
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Описание полей

  • Certificate Usage — тип передаваемого сертификата
  • Selector — размерность передаваемых данных
  • Matching Type — тип передаваемых данных
  • Certificate Association Data — данные сертификата

Пример DNS-запроса

Клиент при установлении защищённого соединения с сервером example.org по TCP-порту 443 выполняет дополнительный запрос вида

IN TLSA _443._tcp.example.org

DNS-ответ

Полный сертификат PKI:

  _443._tcp.example.com. IN TLSA (
     3 0 0 30820307308201efa003020102020... )

Ссылки