Какие имена для сертификатов 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", или мне нужны оба?

2 ответа

Решение

Сертификат должен соответствовать имени хоста, т.е. 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) гласит:

3,6. Проверка подлинности сервера

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

Сопоставление проводится по следующим правилам:

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

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

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

Другие вопросы по тегам