SSL/TLS 통신이 동작하는 원리를 이해하기 위해 opensssl로 간단하게 서버-클라이언트 통신을 확인 해 보자.


먼저 서버와 클라이언트간 상호 인증을 위해 사용할 인증서 및 키를 준비해 줘야 한다. 

별도로 만드는게 귀찮아서 Mbedtls에서 제공하는 인증서 및 키 파일들을 가져와 사용하였다. 

mbedtls 코드를 git에서 받아서 보면 tests/data_files 폴더에 여러 종류의 인증서 및 키 파일들이 존재한다. 


서버는 다음과 같은 형식으로 실행해 준다.  

옵션으로 서버의 인증서 및 키 그리고 CA의 인증서 파일을 지정해 준다.

'Verify'옵션은 상호 인증을 위해 지정해 주며 인증서 체인의 depth를 숫자로 주면 된다.

예를 들어 서버 인증서를 CA가 직접 발급해 줬다면 depth는 1로 하면 된다. 


클라이언트는 다음과 같은 형식으로 실행해 준다. 


옵션은 서버와 동일하다. 


정상적으로 TLS 연결에 성공하였다면 터미널에서 입력한 메시지가 상대방 터미널에 표시된다. 

아래 접혀져 있는 로그를 펼쳐서 확인해 보면 맨 하단에 클라이언트가 전송한 'Hello' 메시지를 서버쪽 로그에서 확인 할 수 있다. 


TLS 서버 로그 


TLS 클라이언트 로그 




'IT 생활 > TLS & Mbedtls' 카테고리의 다른 글

TLS 핸드쉐이크 (Handshake) 프로토콜 분석  (0) 2018.11.23
Posted by KT한
,