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... )

Ссылки[править | править код]