[보안] MTLS 란? (Mutual TLS Authentication)
TLS란?
- Transport Layer Security (전송계층보안)
SSL 및 TLS는 네트워크를 통해 작동하는 서버, 시스템 및 응용프로그램간에 인증 및 데이터 암호화를 제공하는 암호화 프로토콜입니다.
(예시. 웹 브라우저가 웹 서버에 대한 보안 연결을 생성하는 프로토콜)
여기서, 갑자기 SSL이 등장한 이유는 SSL이 TLS의 이전 프로토콜이기 때문입니다. (SSL -> TLS)
TLS는 SSL 3.0 기반으로 만들어졌으나, 서로 호환되지 않습니다.
SSL은 현재 프로토콜 사용이 폐기되었고, TLS를 사용해야 합니다.
en.wikipedia.org/wiki/Transport_Layer_Security
- wikipedia
X.509 인증서?
TLS의 핵심은 PKI (공개 키 인프라)와 특히 X.509 인증서입니다. — wikipedia — X.509
암호화에서 X.509는 공개 키 인증서의 형식을 정의하는 표준이고, HTTPS의 기반이되는 TLS / SSL 포함 많은 인터넷 프로토콜에서 사용됩니다.
X.509 인증서는 공개 키와 ID (호스트 이름, 조직 또는 개인)를 포함하며 인증 기관에서 서명하거나 자체 서명합니다.
CA(Certificate Authority 인증기관)에서 인증서에 서명하거나 다른 방법으로 유효성을 확인하면,
해당 인증서 보유자가 포함 된 공개 키를 사용하여 다른 당사자와의 보안 통신을 설정하거나
해당 개인 키로 디지털 서명 된 문서의 유효성을 검사 할 수 있습니다.
* ID ( 도메인? )
MTLS란?
- Mutual TLS
TLS 프로토콜은 X.509 인증서를 사용하여 클라이언트에 대한 서버의 ID 만 증명하며, 서버에 대한 클라이언트의 인증은 애플리케이션 계층에 맡깁니다. TLS는 또한 클라이언트 측 X.509 인증을 사용하여 클라이언트-서버 인증을 제공합니다.
클라이언트에 대한 인증서 프로비저닝이 필요하고 사용자 친화적이지 않은 경험을 포함하므로 최종 사용자 애플리케이션에서는 거의 사용되지 않습니다.
상호 TLS 인증 (mTLS)은 제한된 수의 프로그래밍 방식 및 동종 클라이언트가 특정 웹 서비스에 연결되고 운영 부담이 제한되며 보안 요구 사항이 일반적으로 훨씬 더 높은 B2B (비즈니스 간) 애플리케이션에서 훨씬 더 널리 퍼져 있습니다.
일반적으로 B2C 보다, 보안 요구사항이 훨씬 높은 B2B 어플리케이션에서 널리 사용됩니다. — wikipedia — 상호 인증
예시. Mutual TLS 를 이용하여 일치하는 Client Certificate가 제출되었을 때만 특정 엔드포인트에 접속이 가능하도록 강제 할 수 있다.
Client Certificate를 제출하는 대상은 사용하시는 디바이스, 브라우저이며 Client Certificate을 검증할 Certificate Chain이 Cloudflare mTLS에 업로드될 것 출처: blog.jeann.net/cloudflare/access/2020/06/07/mtls-implementation-ko.html
참고하면 좋을 글 : m.blog.naver.com/freepsw/221974847879 (마이크로서비스 간 통신 보안)