MTLS - технологии защиты сетей и данных
MTLS (Mutual TLS) - это метод безопасной аутентификации и обеспечения конфиденциальности и целостности трафика между клиентом и сервером.
MTLS использует протокол TLS (Transport Layer Security) для обеспечения безопасности трафика. Однако, в отличие от односторонней аутентификации, при которой только сервер подтверждает свою подлинность кленту, MTLS требует обратной аутентификации - как клиент, так и сервер должны обменяться и проверить цифровые сертификаты X.509, подтверждающие их подлинность.
Помимо этого, MTLS обеспечивает целостность и конфиденциальность данных, шифруя их на уровне транспорта с помощью TLS-шифрования.
Пример использования MTLS в Python:
import requests
import ssl
# загрузка клиентского сертификата
client_cert = ('client.crt', 'client.key')
# загрузка корневого сертификата сервера
server_ca = 'ca.crt'
# инициализация SSL-контекста с clienсt_cert и server_ca
ssl_context = ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH, cafile=server_ca)
ssl_context.load_cert_chain(*client_cert)
# отправка HTTPS запроса с MTLS
response = requests.get('https://example.com', cert=client_cert, verify=server_ca)
# проверка статус-кода ответа
if response.status_code == 200:
print('MTLS connection successfully established')
else:
print('MTLS connection failed with status code: ', response.status_code)
Этот пример демонстрирует, как можно установить MTLS-соединение с сервером, используя библиотеку requests и стандартную библиотеку Python SSL. Загрузка клиентского сертификата и корневого сертификата сервера происходит из файлов (client.crt, client.key и ca.crt соответственно), а SSL-контекст инициализируется с помощью этих файлов.
Затем происходит отправка HTTPS запроса с MTLS с использованием метода requests.get и передача клиентского сертификата и корневого сертификата сервера. В случае успешного установления MTLS-соединения, ответ будет иметь статус-код 200, а если произойдет ошибка, то будет возвращен соответствующий код ошибки.