Назад | Перейти на главную страницу

какие имена для сертификатов TLS при использовании записей SRV

Когда я использую DNS-запись SRV, какое имя (имена) я должен указать в сертификате TLS? Например, если я устанавливаю slapd на двух серверах (klas1 и klas2) и определяю эти записи DNS (используя нотацию стиля файла зоны привязки):

_ldap._tcp.example.com. IN  SRV 10 0 389 klas1.example.com.
_ldap._tcp.example.com. IN  SRV 20 0 389 klas2.example.com.
klas1.example.com.  A 192.168.0.1
klas2.example.com.  A 192.168.0.2

Я ожидал, что мои клиенты будут настроены для подключения к ldap: //example.com/. Однако, когда я генерирую сертификаты TLS на серверах, могу ли я генерировать их с именем «example.com» или сгенерировать их с именем «klas1.example.com», или мне нужно и то, и другое?

Сертификат должен соответствовать имени хоста, т.е. соответствующему A запись для сервера. Вы могли бы иметь индивидуальный klas1.example.com & klas2.example.com сертификаты или общий подстановочный знак *.example.com сертификат, но example.com не будет совпадать.

В SRV записи не нуждаются в сертификатах, поскольку они используются только на уровне DNS для обнаружения служб.

Общее имя сертификата или SubjectAltName.DNS должно совпадать с именем, которое было изначально указано в uri LDAP. RFC6125 в приложении B.3 (https://tools.ietf.org/html/rfc6125#appendix-B.3) говорит:

3.6. Проверка подлинности сервера

Клиент ДОЛЖЕН проверить свое понимание имени хоста сервера.
против идентичности сервера, представленной в серверной
Сообщение с сертификатом для предотвращения атак типа "злоумышленник посередине".

Сопоставление выполняется по таким правилам:

o Клиент ДОЛЖЕН использовать имя хоста сервера, которое он использовал для открытия соединения LDAP, в качестве значения для сравнения с именем сервера, выраженным в сертификате сервера. Клиент НЕ ДОЛЖЕН использовать каноническое DNS-имя сервера или любую другую производную форму имени.

Обратите внимание, что такая же логика применяется к другим протоколам, которые используют записи SRV, например SIP. Это в некоторой степени логично с точки зрения безопасности. Если бы проверялся только хост, было бы легко выполнить атаку «человек посередине», перенаправив соединение на узлы, чьи имена хостов не связаны с первоначально запрошенным доменным именем.

вам нужны только записи вашего хоста (записи A), записи служб используются для обнаружения, а не самого соединения.