본문 바로가기

정보보호/일반

TLS(Transport Layer Security)란?

TLS(Transport Layer Security)란?


넷스케이프사에서 개발한 SSL의 진화버전이다.

인터넷 통신을 하는 두 사용자가 서로의 신원정보를 인증하는 절차를 갖는 프로토콜이다.

이 방법을 사용하면 제 3자가 정보를 감청, 조작할 수 없다.


TLS 절차

  1. 먼저 클라이언트에서 서버에 ClientHello 메시지를 보낸다. 여기에는 클라이언트에서 가능한 TLS 버전, 서버 도메인, 세션 식별자, 암호 설정 등의 정보가 포함된다.
  2. 클라이언트의 메시지를 받은 서버는 ServerHello 메시지를 클라이언트에게 보낸다. 여기에는 ClientHello 메시지의 정보 중 서버에서 사용하기로 선택한 TLS 버전, 세션 식별자, 암호 설정 등의 정보가 포함된다.
  3. 서버가 클라이언트에 Certificate 메시지를 보낸다. 여기에는 서버의 인증서가 들어간다. 이 인증서는 별도의 인증 기관에서 발급받은 것이며, 서버가 신뢰할 수 있는 자임을 인증한다. 전송이 끝나면 ServerHelloDone 메시지를 보내 끝났음을 알린다.
  4. 클라이언트는 서버에서 받은 인증서를 검증한다. 인증서의 유효 기간이 만료되지 않았는지, 그 인증서가 해당 서버에게 발급된 인증서가 맞는지 등을 확인한다. 인증서를 신뢰할 수 있다고 판단하였다면 다음 단계로 넘어간다.
  5. 클라이언트는 임의의 pre-master secret을 생성한 뒤, 서버가 보낸 인증서에 포함된 공개 키를 사용해 암호화한다. 이렇게 암호화된 pre-master secret을 ClientKeyExchange 메시지에 포함시켜 서버에 전송한다.
  6. 서버는 전송받은 정보를 복호화하여 pre-master secret을 알아낸 뒤, 이 정보를 사용해 master secret을 생성한다. 그 뒤 master secret에서 세션 키를 생성해내며, 이 세션 키는 앞으로 서버와 클라이언트 간의 통신을 암호화하는데 사용할 것이다. 물론 클라이언트 역시 자신이 만들어낸 pre-master secret을 알고 있으므로, 같은 과정을 거쳐 세션 키를 스스로 만들 수 있다.
  7. 이제 서버와 클라이언트는 각자 동일한 세션 키를 가지고 있으며, 이를 사용해 대칭 키 암호를 사용하는 통신을 할 수 있다. 따라서 우선 서로에게 ChangeCipherSpec 메시지를 보내 앞으로의 모든 통신 내용은 세션 키를 사용해 암호화해 보낼 것을 알려준 뒤, Finished 메시지를 보내 각자의 핸드셰이킹 과정이 끝났음을 알린다.
  8. 이제 서버와 클라이언트 간에 보안 통신이 구성된다.


TLS는 OSI 7계층 중 Application Layer이다.

HTTPS는 TLS프로토콜을 응용한 HTTP 이다.


신뢰성을 잃어버린 인증서 업체가 많아 인증서 업체에 따라 신뢰성이 각기 다르다.

암호화 과정때문에 성능상의 문제가 있다.


자세한 설명 : https://namu.wiki/w/TLS

참고 : https://www.cloudflare.com/learning/security/glossary/transport-layer-security-tls/

'정보보호 > 일반' 카테고리의 다른 글

SIEM(Security Information and Event Management)이란?  (0) 2019.03.03
다크웹(dark web)이란? + tor  (1) 2019.03.03
windows XP 해킹 - MS08_067 이용  (0) 2019.03.02
APT 공격에 대한 이해  (0) 2019.03.02
DNS 스푸핑 공격  (0) 2019.03.02