제
11
장
TLS를 이용한 구성 요소 간 보안 연결
206
서버의 인증서를 확인한 클라이언트는 서버를 신뢰할 수 있다. 그런데 통신을 진행하려면
서버 역시 클라이언트를 신뢰할 수 있어야 한다.
예를 들어 한 사용자가 은행 사이트에 접속해서 계좌의 잔액을 조회하는 경우, 서버는 잔
액 정보를 제공하기 전에 사용자가 정말로 그 계좌의 소유자인지부터 확인해야 한다. 은행 사
이트에 로그인하는 것 같은 진정한 클라이언트-서버 관계에서 이러한 사용자 확인은 일반적
으로 계층
7
인증 (
authentication
)을 통해서 처리된다. 이때 사용자는 자신의 사용자 이름
(
username
)과 패스워드를 제공하며, 경우에 따라서는 문자 메시지로 전달된 비밀 코드나 일
회용 패스워드 (물리적
OTP
카드 또는
Authy
나
1Password
,
Google
Auth
같은 모바일 앱
으로 생성한 ) 같은 다요소 인증 (
multi
-
factor
authentication
) 정보를 제공하기도 한다.
아니면
X
.
509
인증서를 이용해서 클라이언트의 신원을 확인할 수도 있다. [그림
11
-
5
]
에 나온 메시지 흐름을 보면 클라이언트도 서버에게 인증서를 전달한다. 이런 클라이언트 인
증서 요구는 서버 쪽에서 설정할 수 있는 하나의 옵션이다. 서버가 인증서를 이용해서 자신
의 신원을 클라이언트에게 확인시키듯이, 클라이언트도 인증서를 이용해서 자신의 신원을 서
버에게 확인시킬 수 있다. 이처럼 인증서를 교환해서 서로를 확인하는 방식의
TLS
를 상호
TLS
(
mTLS
)