참고
TLS
Transfer Layer Security
•
데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜
•
SSL을 표준화하여 만든 것이 TLS
•
TLS는 SSL 3.0 기반으로 만들어졌으나, 서로 호환되지 않는다.
•
SSL은 현재 사용하지 않고, TLS만 사용한다.
•
SSL → TLS
X.509 인증서
TLS의 핵심은 PKI (공개 키 인프라)와 특히 X.509 인증서이다.
•
PKI에서 공개 키를 발급받는 게 아니라, 공개 키가 포함된 인증서를 발급받아 PKI 환경에서 신뢰할 수 있는 통신을 수행하게 되는 것이다.
•
정확한 흐름은 아래와 같다.
1.
사용자는 공개 키와 개인 키 쌍을 생성합니다.
2.
사용자는 자신의 공개 키를 포함한 **인증서 서명 요청(CSR)**을 인증 기관(CA)에 보냅니다.
3.
CA는 사용자의 공개 키와 신원 정보를 확인하고, 이를 포함한 X.509 형식의 인증서를 발급합니다.
•
이 인증서에는 사용자의 공개 키, 신원 정보, CA의 서명이 포함되어 있어 신뢰성을 보장합니다.
4.
그 결과, 사용자는 X.509 인증서 형태로 자신의 공개 키와 관련된 신뢰 가능한 인증서를 받게 되는 것입니다.
MTLS
Mutual Transport Layer Security
•
mTLS (Mutual Transport Layer Security)는 양방향 TLS(Transport Layer Security)를 의미합니다.
•
TLS는 일반적으로 서버와 클라이언트 간의 통신을 암호화하여 보호하는 데 사용되지만, mTLS는 양쪽 모두가 상호적으로 인증되는 보안 계층을 제공합니다.
•
한마디로 TLS가 클라이언트만 인증서를 확인했다면 mTLS는 서버 및 클라이언트 둘다 인증한다고 보면 됩니다.
특징
서버 간의 상호 인증
mTLS를 사용하면 클라이언트와 서버 간의 양방향 인증이 이루어지므로 서버 간의 통신에도 상호 인증이 가능합니다. 이는 서버끼리 안전한 통신을 수행하고 각 서버의 신원을 확인할 수 있도록 합니다. TLS에서는 클라이언트와 서버 간의 상호 인증만이 주로 이루어집니다.
세분화된 권한 관리
mTLS를 사용하면 클라이언트와 서버 각각이 자체 인증서를 가지게 되므로, 각각에게 특정 권한을 부여하거나 특정 서버에 대한 접근을 제한할 수 있습니다. 이는 클라이언트가 특정 서버에만 접근할 수 있도록 하거나, 각 클라이언트에게 서로 다른 권한을 부여하는 데 유용합니다.
중앙 집중식 키 및 인증서 관리
mTLS에서는 각 클라이언트 및 서버가 자체 인증서를 가지며, 중앙 집중식으로 키 및 인증서를 관리할 수 있습니다. TLS에서는 주로 서버 측에서의 중앙 집중식 관리가 이루어지지만, 클라이언트에 대한 관리가 더 어렵습니다.
다중 계층 보안
mTLS를 사용하면 보안 계층을 여러 겹으로 쌓아 올릴 수 있습니다. 예를 들어, TLS로 암호화된 통신이 먼저 이루어진 후, 그 위에 API 토큰 또는 다른 보안 메커니즘을 추가할 수 있습니다. 이렇게 다중 계층의 보안을 적용하여 전체적인 시스템의 안전성을 높일 수 있습니다.
