Search
moon
sun
🛡️

(TLS, X.509, mTLS)

참고
🛡️
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 토큰 또는 다른 보안 메커니즘을 추가할 수 있습니다. 이렇게 다중 계층의 보안을 적용하여 전체적인 시스템의 안전성을 높일 수 있습니다.