[TLS v1.3] 1. 들어가기 전, HTTPS 와 TLS은 무엇일까?

조용하게 TLS v1.3 이 자리 잡고 있다. 2018년 3월 21일 기준으로 RFC 표준 문서의 초안 작성이 마무리 되었고, 주요 브라우저 들도 TLS v1.3 지원을 수행하고 있다. 발빠른 몇몇 웹서비스 제공자들은 TLS v1.3 을 기본값으로 적용하기도 하였다.

사용자 입장에선 버전과 상관없이 웹 페이지에 연결만 수월하면 되겠지만, 서버 운영자나 보안 관계자의 입장에선 TLS v1.3 은 거부할 수 없는 흐름과도 같다. 이전의 SSL v2, SSL v3 이 Default 로 비활성화 되어가던 흐름과 마찬가지로 언젠가는 TLS v1.0 이 밀려나고 TLS v1.3 이 주요하게 사용될 날이 올 것이기 때문이다.

하지만 시대의 흐름이라고 몸을 맡기고 있기엔 고려해야 할 사항들이 만만치 않다. 과연 TLS v1.3 이 무엇이고 도입에 따른 서비스 영향도나 보안 관점의 변경 사항은 없는지 생각해야 한다. 그래서 TLS 1.3 버전을 차용하기 전에, TLS 1.3 버전의 주요 강점이 무엇이고 도입 시 고려되어야 할 사항들이 무엇인지 정리해보려 한다.

글은 1. HTTPS 와 2. SSL/TLS 의 개념을 먼저 확인하고, 2. TLS 1.3 버전의 장점을 정리하려 한다.

그 다음에는 3. 1.2 버전과 1.3 버전의 차이점을 확인함으로써 4. TLS 1.3 버전의 주요 기술을 학습한다.

마지막으로 5. TLS 1.3 버전의 적용 고려사항을 기술한다.

그 외 관련 용어에 대한 간략한 정리를 글의 마지막에 더할 예정이다.

 

1. HTTPS(Hypertext Transfer Protocol over Secure Socket Layer) 개념

개념을 알아야 할 때에는 위키피디아를 먼저 확인하는 편이다. HTTPS 도 마찬가지로 위키피디아를 통해 개념을 확인하면 아래와 같다.

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL,HTTP Secure)는 월드 와이드 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전이다.

HTTPS는 통신의 인증과 암호화를 위해 넷스케이프 커뮤니케이션즈 코퍼레이션이 개발했으며, 전자 상거래에서 널리 쓰인다.

HTTPS는 소켓 통신에서 일반 텍스트를 이용하는 대신에, SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다. 따라서 데이터의 적절한 보호를 보장한다. HTTPS의 기본 TCP/IP 포트는 443이다.

보호의 수준은 웹 브라우저에서의 구현 정확도와 서버 소프트웨어, 지원하는 암호화 알고리즘에 달려있다.

HTTPS를 사용하는 웹페이지의 URI은 ‘http://’대신 ‘https://’로 시작한다.

HTTPS – 위키피디아

정리해 보자면, HTTPS 는 웹 통신 프로토콜인 HTTP 에서 보안 강화를 위해 인증(Authentication)과 기밀성(Confidentiality) 기능을 추가한 프로토콜이다.

‘https://’ 로 시작하는 URI(웸페이지 주소)를 사용하고, 서버 측의 TCP/IP 포트 443번으로 통신을 연결한다.

HTTPS 의 보안성은 프로토콜의 여러 구현 요소에 따라 달라지는데, 아래 설명할 SSL/TLS 로 여러 프로토콜 버전이 나오는 이유기도 하며 금번 TLS v1.3 이 발표된 이유기도 하다.

한마디로, 보안성을 강화하기 위해 HTTPS 의 버전을 업데이트 시키는 것이다.

 

2. SSL/TLS(Secure Sockets Layer/Transport Layer Security) 개념

SSL/TLS 도 위키피디아를 통해 개념을 먼저 확인해 보면 아래와 같다.

전송 계층 보안 (Transport Layer Security, TLS, 과거 명칭: 보안 소켓 레이어/Secure Sockets Layer, SSL)는 암호 규약이다. 그리고 ‘트랜스포트 레이어 보안’이라는 이름은 ‘보안 소켓 레이어’가 표준화 되면서 바뀐 이름이다. 이 규약은 인터넷 같이 TCP/IP 네트워크를 사용하는 통신에 적용되며, 통신 과정에서 전송계층 종단간 보안과 데이터 무결성을 확보해준다.

이 규약은 웹 브라우징, 전자 메일, 인스턴트 메신저, voice-over-IP (VoIP) 같은 응용 부분에 적용되고 있다. TLS는 IETF 표준 규약이다.

최종 갱신은 RFC 5246이고, 최종 갱신 버전은 넷스케이프에서 만든 SSL 표준을 바탕으로 했다.

전송계층보안 – 위키피디아

SSL/TLS 는 HTTPS 를 통해 통신을 수행할 때 세부적인 과정이 정의된 규약이라고 볼 수 있다. SSL 이란 용어가 TLS 로 변경이 되었으나, 주요 버전별로 SSL v2, SSL v3, TLS v1.0, TLS v1.1, TLS v1.2, TLS v1.3  등으로 나누어져 있어 SSL/TLS 라는 통합된 용어로 많이 사용한다.

SSL/TLS 는 인터넷 상에서 client/server 어플리케이션이 통신 시 도청(eavesdropping), 조작(tampering) 그리고 메시지 변조(message forgery)를 방지한다. 이를 위해 여러 기능과 통신 과정을 정의하고 있는데, 영원히 안전한 보안이 없듯이 SSL/TLS 에서도 다양한 취약점들이 발견되고 있다.

특히 SSL v2, SSL v3 의 경우에는 위험성이 높은 취약점들이 발표되었기 때문에 보안을 위해서는 사용 해선 안된다.

 

3. SSL/TLS(Secure Sockets Layer/Transport Layer Security) 버전 역사

SSL 규약은 넷스케이프가 처음 만들었다.

SSL 1.0 버전은 공개된 적이 없고,

SSL 2.0 버전은 1995년 2월에 릴리스 되었다.

SSL 3.0 버전은 2.0 버전의 보안 결함때문에 1996년에 바로 릴리스 되었다. 해당 버전이 TLS 버전 1.0의 기초가 되었다.

TLS 1.0 버전은 1999년 1월에 RFC 2246 표준 규약으로 정의되었다. SSL 3.0 버전과 차이점이 크지 않다.

TLS 1.1 버전은 2006년 릴리스 되었다.

TLS 1.2 버전은 2008년 릴리스 되었고, RFC 5246 표준 규약으로 정의 되어 있다.

TLS 1.3 버전은 현재 초안 작성이 마무리 되었고, RFC 의 draft-ietf-tls13-28 을 통해서 최종 버전을 확인할 수 있다.

 

4. SSL/TLS 작동 방식

TLS 은 두가지 파트로 나누어져 있다. Handshake protocol 과 Record protocol 이다.

Handshake protocol은 Client/Server 사이의 인증을 수행하고, 암호화에 필요한 버전 및 정보를 협의한다. 최종적으로 동일한 암호화 키를 주고 받는 것으로 동작을 완료한다.

Record protocol은 Handshake 과정에서 공유된 정보를 이용하여 암호화를 수행한다. 한 번에 전송이 어려운 데이터를 여러 개로 나누어 암복호화를 수행하는 파트이다.

Handshake protocol에서 암호화 키를 주고 받기 위하여 사용하는 방식이 공개키/개인키 기반의 ‘비대칭 암호화’ 방식이다. Record protocol 에서 사용하는 속도가 빠른 ‘대칭 암호화’ 방식은 Server/Client 가 동일한 암호화 키 값을 보유해야만 사용할 수 있다. 그런데 동일한 암호화 키 값을 보유 하기 위해선 교환 과정을 거쳐야 하는데, 평문으로 전달 될 경우 네트워크 스니핑(Sniffing) 등을 통해 키 값이 노출될 수 있기 때문에 Handshake protocol 에서 ‘비대칭 암호화’ 방식을 이용해 암호화 키 값 전달을 수행한다.

 

HTTPS 와 SSL/TLS 의 개요에 대하여 살펴보았다. 다음에는 TLS v1.3 의 주요 장점인 속도 향상과 보안성 강화에 대해 확인해보려 한다.

 

TLS v1.3 포스팅 시리즈

[TLS v1.3] 1. 들어가기 전, HTTPS 와 TLS 는 무엇인가?

[TLS v1.3] 2. TLS v1.3 의 장점은 무엇일까? – 1) 연결속도향상

[TLS v1.3] 2. TLS v1.3 의 장점은 무엇일까? – 2) 보안성향상

Leave a Reply

avatar
  Subscribe  
Notify of