티스토리 뷰

Security/Architecture&Tech

Mutual TLS

Jacob_baek 2020. 10. 11. 16:58

Mutual TLS 란?

Mutual TLS 에 대하여 알아보자.
우선 Mutual 이란 뜻을 보면 상호간, 양방향 이라는 뜻으로 풀이될수 있다. 즉, 단순 서버의 인증서만을 검증하는 일반적인 과정에서 optional 하게 사용할수 있는 Client Certificate 도 검증을 같이 하는 것이다.

좀더 자세히 알아보기 위해 먼저 일반적인 TLS handshake 과정을 알아보자.

위와 같이 Server Certificate 에 대한 검증을 Client에서 수행한다. 하지만 Server측에서의 Client에 대한 검증과정은 별도로 존재하지 않는다. 이에 대한 검증과정이 추가된것이 Mutual TLS라 보면 된다.

즉, 위 그림의 과정중 3~4 사이에 Client의 Certificate(Certificate Request Message를 통해)를 Server측에서 검증하는 과정이 추가된것이라 보면 된다.

RFC 문서 상에 나온 내용이 있을거라 생각했지만 OAUTH 2.0에 언급된 내용외에는 찾지 못하였다.

https://tools.ietf.org/html/rfc8705
OAUTH에 언급된 내용과 관련 이유는 좀더 survey 해볼필요가 있을듯...

NGINX 를 이용한 Mutual TLS 예제

실제 NGINX의 설정을 통해 mTLS를 사용해 볼 수 있다.

ssl_client_certificate 설정을 추가하여 client 에서도 certificate 를 Server로 전송하도록 할수 있다.
잘 정리된 동영상과 예제들이 있어 이를 링크한다.

결과적으로 NGINX에서는 Server의 Certificate 를 전송하여 client에서 검증하게 하고 ssl_client_certificate 설정을 추가하여 Server에서 Client를 검증하기 위해 Client의 Certificate를 요청하도록 할수 있다.
또한 정상적으로 client에서 server의 자원(web page)를 이용하기 위해서는 client의 crt를 같이 전송해야만 한다.

 

아래는 nginx와 cURL을 이용한 예제를 보여주고 있다.

참고사이트

'Security > Architecture&Tech' 카테고리의 다른 글

Certificates  (0) 2021.03.26
cryptograph  (0) 2013.10.29
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함