Детали MTLS (взаимные TLS)

У меня есть вопрос относительно взаимного TLS (MTLS)

Я знаю, что для MTLS, обе стороны, сертификаты обмена клиентом и сервером. Эти сертификаты должны быть подписаны ЦС, которые обе стороны могут доверять, чтобы проверить сертификат.

Мой вопрос заключается в том, означает ли MTLS помимо проверки сертификата (если CA доверен, сертификат листа доверен), любая сторона (сервер или клиент) также может выполнять некоторые дополнительные проверки, такие как проверка имени хоста или клиент, подключающийся к серверу входит в список одобренных доверенных лиц?

Может ли кто-нибудь указать мне спецификацию MTLS и что такое над головой в MTLS?

Благодарю!

3 ответа

Помимо того, что EJP сказал о термине "MTLS", спецификация TLS 1.2 не имеет строгих требований относительно того, какая информация должна быть проверена и каким образом.

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

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


"MTLS Specification" не существует, по очень хорошей причине, что нет такой вещи, как "MTLS". Ты только что закончил. Спецификация TLS, включая взаимную аутентификацию, содержится в RFC 2246 с внесенными в нее поправками.

API TLS должны сделать цепочку сертификатов peer доступной для приложения, поэтому она может делать любую дополнительную проверку.

"MTLS", поскольку он существует вообще, относится к Интернет-проекту для мультиплексированных TLS.


Наиболее актуальный RFC по этому вопросу:

https://datatracker.ietf.org/doc/draft-ietf-oauth-mtls/ это расширение для OAuth 2.0

Целью этого документа является определение механизма использования сертификата TLS в контексте замены идентификатора клиента и секретности (aka, Client Credentials)

Стандарт устанавливает два механизма использования сертификата TLS в качестве учетных данных клиента и связанных потоков токенов и атрибутов.

Общее изложение этого:

(a) Сервер авторизации: проверяет сертификат либо в соответствии с PKI (подписанным допустимым корнем). RFC не определяет параметры, но они довольно понятны и зависят от варианта использования. Но может быть (1) сертификат подписан доверенным корнем и не отменяется, (2) индивидуально распознавать каждый сертификат на основе некоторой логики.

(b) Сервер ресурсов проверяет сертификат маркера и клиента (учетные данные клиента или CC) и используется в базовом сеансе TLS. Обратите внимание, что проверки сертификатов относительно сертификата или его происхождения на уровне TLS не проверяются, все проверки выполняются на уровне приложения. Поэтому сервер ресурсов должен настроить стек TLS таким образом, чтобы он не проверял, подписан ли сертификат, представленный клиентом во время рукопожатия, доверенным сертификатом ЦС.

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

В целом отличная функция для обеспечения конфиденциальности и улучшения безопасности.

licensed under cc by-sa 3.0 with attribution.