HTTPSSSL/TLSSSL/TLS의 역사TLS 핸드셰이크사이퍼 슈트AEAD 사이퍼 모드인증 메커니즘키 교환 암호화 알고리즘Diffie-Hellman 키 교환 알고리즘SHA-256 알고리즘SEO에도 도움이 되는 HTTPS
HTTPS
- SSL/TLS를 사용해서 암호화된 연결하는 하는 HTTP이다.
- 애플리케이션 계층과 전송 계층 사이에 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP이다.
SSL/TLS
- 전송 계층에서 보안을 제공하는 프로토콜이다.
- 클라이언트와 서버가 통신할 때 제3자가 메시지를 도청하거나 변조하지 못하도록 한다.

- 위 그림처럼 SSL/TLS를 통해 공격자가 사용자 정보를 가로채는 네트워크상의 인터셉터(스푸핑)를 방지할 수 있다.
- SSL/TLS는 보안 세션을 기반으로 데이터를 암호화하며 보안 세션이 만들어질 때 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용된다.
SSL/TLS의 역사
- 원래는 Secure Socket Layer로 SSL 1.0부터 시작하여 3.0을 거쳤다.
- Transport Layer Security Protocol로 명칭이 변경되고 1.0 버전을 거쳐 1.3까지 업데이트 되었다.
- 보통 위 2개의 명칭을 합쳐 SSL/TLS로 많이 부른다.
- TLS 1.3은 사용자가 이전에 방문한 사이트에 다시 방문하는 경우 보안 세션을 만들 때 걸리는 통신을 하지 않아도 된다. (0-RTT)
TLS 핸드셰이크
- 앞에서 언급한 보안 세션을 만들때 TLS 핸드셰이크를 이용한다.

- 위 그림을 살펴보면, 클라이언트와 서버가 키를 공유하고 이를 기반으로 인증, 인증 확인 등의 작업이 일어나는 한 번의 RTT가 생긴 후 데이터를 송수신 하는 것을 볼 수 있다.
- ClinetHello 단계에서 사이퍼 슈트를 서버에 전달하면 서버는 받은 사이퍼 슈트의 암호화 알고리즘 리스트를 제공할 수 있는지 확인한다.
- 제공할 수 있다면 클라이언트로 인증서를 보내는 인증 메커니즘이 시작되고 이후 암호화된 데이터의 송수신이 시작된다.
사이퍼 슈트
- 프로토콜, AEAD 사이퍼 모드, 해싱 알고리즘이 나열된 규악으로 다섯 개가 있다.
목록
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- TLS_AES_128_CCM_SHA256
- TLS_AES_128_GCM_8_SHA256
AEAD 사이퍼 모드
AEAD(Authenticated Encryption with Associated Data)는 데이터 암호화 알고리즘이며 AES_128_GCM 등이 있습니다. 예를 들어 AES_128_GCM이라는 것은 128비트의 키를 사용하는 표준 블록 암호화 기술과 병렬 계산에 용이한 암호화 알고리즘 GCM이 결합된 알고리즘을 뜻합니다.
- TLS 1.3 부터 추가되었다.
인증 메커니즘
- 인증 기관에서 발급한 인증서를 기반으로 이루어진다.
- 발급한 인증서는 안전한 연결할 시작하는데 있어 필요한 ‘공개키’를 클라이언트에 제공하고 사용자가 접속한 서버가 신뢰할 수 있는 서버임을 보장한다.
- 인증서는 서비스 정보, 공개키, 지문, 디지털 서명 등으로 이루어져 있다.
키 교환 암호화 알고리즘
- ECDHE(Elliptic Curve Diffie-Hellman Ephermeral) 또는,
- 모듈식 기반의 DHE(Diffie-Hellman Ephermeral)를 사용한다.
- 둘 다 Diffie-Hellman 방식을 근간으로 만들어졌다.
Diffie-Hellman 키 교환 알고리즘
- 위 식에서 g와 x와 p를 안다면 y는 구하기 쉽지만 g와 y와 p만 안다면 x를 구하기 어렵다는 원리에 기반한 알고리즘이다.

- 클라어인트와 서버 모두 개인키와 공개키를 생성하고 서로에게 공개키를 보내고 공개키와 개인키를 결합하여 사전 합의된 비밀키가 생성된다.
- 공격자가 개인키, 공개키를 가지고있어도 합의된 비밀키가 없기 때문에 공격을 할 수 없다.
SHA-256 알고리즘
- 해싱 알고리즘의 한 종류이다.
- 해시 함수의 결과값이 256비트인 알고리즘으로 해싱을 해야할 메시지에 1을 추가하는 등의 전처리를 하고 이를 기반으로 해시를 반환한다.
SEO에도 도움이 되는 HTTPS
- 구글은 사이트 내 모든 요소가 동일하다면 HTTPS 서비스를 하는 사이트의 SEO 순위를 높게 매긴다.