AWS ALB에서 mTLS를 지원하는군요!
이제 클라이언트, 서버 양쪽에서 모두 TLS가 되네요.
금융권이나 보안이 중요한 연동에서는 필수로 사용이 필요하겠네요!!
1
TLS(Transport Layer Security, 전송계층 보안)
인터넷 통신에서 데이터의 기밀성, 무결성을 보호하기 위한 보안 프로토콜
웹브라우저와 서버 사이의 통신에서 주로 사용된다.
2
TLS 작동 방식?
클라이언트가 서버에 연결
서버가 TLS 인증서 제시
클라이언트가 서버 인증서 확인
클라이언트와 서버가 암호화된 TLS연결을 통해 정보 교환
서버의 TLS인증서를 사용하여 신원을 인증하는 방식이다.
클라이언트에는 인증서가 없다.
취약 부분?
공격자가 통신을 가로채서 중간자 역할을 하는 취약 부분이 있다.
3
mTLS란? 상호 인증 기능
mTLS (mutual authentication Transport Layer Security, 상호인증)
모든 과정에서 인증하는 상호 인증.
TLS 작동 과정에서 생략되던 클라이언트 인증 절차를 수행한다.
서버와 클라이언트 모두 인증서로 본인을 증명하여 상호 인증을 위한 프로토콜
클라이언트가 서버에 연결
서버가 TLS 인증서 제시
클라이언트가 서버 인증서 확인
클라이언트가 서버 인증서 제시
서버가 클라이언트의 인증서 확인
서버가 액세스 권한 부여
클라이언트와 서버가 암호화된 TLS연결을 통해 정보 교환
새 기능 mTLS
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/mutual-authentication.html
1
HTTPS 지원
클라이언트와 로드밸런서 간 HTTPS 터미네이션 지원
2
TLS Offloading
로드밸런서와 SSL/TLS세션을 시작하는 클라이언트 간의 트래픽을 암호화
로드 밸런서에서 SSL인증서를 관리하고 TLS 핸드셰이크를 수행
3
Server Name Indication (SNI)
단인 로드밸런서 뒤에서 각각 자체 TLS인증서를 갖는 다수의 TLS보안 애플리케이션 호스팅 가능.
서울리전에서도 가능하다.
1
ALB 생성 시 설정한다.
https 포트 추가하면 나온다.
2
모드 2가지
Passthrough mode = http해더를 사용하여 모든 것을 백엔드로 보낸다. 별도 구성없이 사용가능.
Verify with trust store = ALB가 서로의 신호를 확인하는 방식이다. 별도의 사전 구성과 설정이 필요하다.
3
Verify with trust store = ALB가 서로의 신호를 확인하는 방식이다. 별도의 사전 구성과 설정이 필요하다.
트러스터 스토어 설정이 필요하다.
1
인증서 지원 : X.509 v3 지원
2
쿼터 제한이 있다.
Trust Sore 쿼터, CA 인증서 쿼터등 확인 필수
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html
1
클라이언트 인증에 실패할 때마다 전송된 요청에 대한 자세한 정보 Log 제공한다.
2
클라이언트 IP주소, 핸드세이크 시간, 사용된 TLS 암호, 클라이언트 인증서 세부 정보 등 제공한다.
3
설정 방법
1
사용자가 트래픽을 암호화하여 양방향 트래픽을 보호할 때
서버가 특정 사용자나 장치와 신뢰성이 보장되어야 할 때
2
서비스 간 통신 시 상호 인증이 필요할 때
다양한 API를 통해 민감정보 데이터를 교환할 때
3
금융권
마이데이터 서비스
PCI-DSS 인증 사용 서비스 시
오픈 뱅킹 서비스 사용 시
4
IoT서비스에서 디지털 인증서를 사용하여 장치를 인증할 때
https://brunch.co.kr/@topasvga/3624
감사합니다.