1. HTTPS

HTTP/2는 HTTPS 위에서 동작한다

 

HTTPS는 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS 계층을 넣은

신뢰할 수 있는 HTTP 요청을 말한다

 

이를 통해 통신을 암호화 한다

 

2. SSL/TLS

SSL(Secure Socket Layer)은 SSL 1.0부터 시작해서 SSL 2.0, SSL 3.0

TLS(Transport Layer Security Protocol) 1.0, TLS 1.3까지 버전이 올라가며

마지막으로 TLS로 명칭이 변경되었으나, 보통 이를 합쳐 SSL/TLS로 많이 부른다

 

SSL/TLS은 전송 계층에서 보안을 제공하는 프로토콜이다

 

클라이언트와 서버가 통신할 때 SSL/TLS를 통해

제3자가 메시지를 도청하거나 변조하지 못하도록 한다

 

아래 그림처럼 SSL/TLS를 통해 공격자가 서버인 척하며 사용자 정보를 가로채는

네트워크상의 ‘인터셉터’를 방지할 수 있다

 

SSL/TLS는 보안 세션을 기반으로 데이터를 암호화하며 보안 세션이 만들어질 때

인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용한다

 

 

보안 세션

보안 세션이란 보안이 시작되고 끝나는 동안 유지되는 세션을 말한다

 

SSL/TLS는 핸드셰이크를 통해 보안 세션을 생성하고 이를 기반으로 상태 정보 등을 공유한다

 

 

세션

운영체제가 어떠한 사용자로부터 자신의 자산 이용을 허락하는 일정한 기간을 뜻한다

 

즉, 사용자는 일정 시간 동안 응용 프로그램, 자원 등을 사용할 수 있다

 

클라이언트와 서버와 키를 공유하고 이를 기반으로 인증, 인증 확인 등의 작업이 일어나는

단 한 번의 1-RTT가 생긴 후 데이터를 송수신하는 것을 볼 수 있다

 

클라이언트에서 사이퍼 슈트(cypher suites)를 서버에 전달하면

서버는 받은 사이퍼 슈트의 암호화 알고리즘 리스트를 제공할 수 있는지 확인한다

 

제공할 수 있다면 서버에서 클라이언트로 인증서를 보내는 인증 메커니즘이 시작되고

이후 해싱 알고리즘 등으로 암호화된 데이터의 송수신이 시작된다

 

HTTPS 구축방법

HTTPS 구축 방법은 크게 세 가지이다

직접 CA에서 구매한 인증키를 기반으로 HTTPS 서비스를 구축하거나

서버 앞단의 HTTPS를 제공하는 로드밸런서를 두거나

서버 앞단에 HTTPS를 제공하는 CDN을 둬서 구축한다

 

3. HTTP / 3

HTTP/3은 HTTP/1.1 및 HTTP/2와 함께 World Wide Web에서 정보를 교환하는 데 사용되는 HTTP의 세 번째 버전이다

 

TCP 위에서 돌아가는 HTTP/2와는 달리 HTTP/3은 QUIC이라는 계층 위에서 돌아가며

TCP 기반이 아닌 UDP 기반으로 돌아간다

 

HTTP/2에서 장점이었던 멀티플렉싱을 가지고 있으며 초기 연결 설정 시 지연 시간 감소라는 장점이 있다

 

 

초기 연결 설정 시 지연 시간 감소

QUIC은 TCP를 사용하지 않기 때문에 통신을 시작할 때 번거로운 3-웨이 핸드셰이크 과정을

거치지 않아도 된다

 

QUIC은 첫 연결 설정에 1-RTT만 소요된다

 

클라이언트가 서버에 어떤 신호를 한 번 주고

서버도 거기에 응답하기만 하면 바로 본 통신을 시작할 수 있다는 것이다

 

참고로 QUIC은 순방향 오류 수정 메커니즘(FEC, Forword Error Correction)이 적용되었다

 

이는 전송한 패킷이 손실되었다면 수신 측에서 에러를 검출하고 수정하는 방식이며

열악한 네트워크 환경에서도 낮은 패킷 손실률을 자랑한다

 

'CS' 카테고리의 다른 글

[CS] 페이지 교체 알고리즘  (0) 2022.12.10
[CS] 메모리 관리  (0) 2022.12.09
[CS] HTTP 1, HTTP 2  (0) 2022.12.05
[CS] 네트워크 IP 주소  (0) 2022.12.04
[CS] 네트워크 기기  (0) 2022.12.03