протокол, основанный на TLS с усиленной безопасностью. Он включает дополнительную аутентификацию клиента с помощью сертификата. Таким образом, при обмене данными, клиент проверяет сервер, а сервер — клиента. Полное название Mutual TLS, а в переводе, Взаимный TLS.
Принцип работы у mTLS следующий: есть две пары сертификатов и, соответственно, два закрытых ключа. Один закрытый ключ находится на сервере и позволяет расшифровывать данные, которые шифруются открытым ключом, как при обычной работе TLS. Второй закрытый ключ устанавливается на клиенте, а сервер при ответах клиенту также шифрует данные его открытым ключом. Таким образом, к серверу могут обращаться только те клиенты, у которых есть закрытый ключ для расшифровки данных. В этом заключается основной смысл mTLS.
Для mTLS, как и для TLS используются сертификаты стандарта x509. Их можно сгенерировать самому, например, с помощью утилиты openssl, купить или получить бесплатно от центра сертификации Let’s Encrypt.
mTLS может быть настроен для защиты внутреннего ресурса, к которому должны подключаться только сотрудники компании или доверенные сервисы. Примеры реализации:
- Защищенный https на NGINX или Apache.
- Защита Service Mesh с использованием istio.
- Конфиденциальность при общении в Skype for Business.
Основные недостатки mTLS:
- Повышенная нагрузка. Шифровка и дешифровка — операции, которые сильно нагружают систему.
- Несовместимость. Не все клиенты могут быть настроены для взаимного TLS шифрования.
Дополнительно про Mutual TLS можно почитать на Википедии (только на английском).