본문 바로가기

공부/Computer Science

다시 정리해보는 http와 https의 차이 +ssl/tsl 핸드쉐이크(handshake)

http & https 차이

http (HyperText Transfer Protocol)

port: 80

클라이언트와 서버간의 통신규약

데이터를 주고 받는 기본 프로토콜

암호화되지 않은 평문 데이터를 전송하기 때문에 제 3자가 가로채 읽을 수 있으므로

보안에 취약

https (HyperText Transfer Protocol Secure)

port: 443

http에서 ssl/tls을 추가하여 암호화된 프로토콜

클라이언트와 서버간의 데이터 통신을 암호화하여 도청되거나 변조되지 않도록 보호

url 앞에 https:// 로 시작

 

TLS (Transport Layer Security)

tls는 인증, 데이터 암호화, 데이터 무결성 3가지의 주요 보안기능을 제공하며

데이터 암호화시 대칭키과 비대칭키 암호화를 사용하여 데이터를 보호한다.

초기 통신에는 비대칭키 암호화를 사용하여 대칭키를 안전하게 교환한 뒤,

실제 통신에서는 대칭키 암호화를 사용하여 효율성을 높인다.

 

SSL/TLS handshake

클라이언트와 서버간 안전한 연결을 설정하는 과정, 통신규칙

이 과정은 http 연결이 시작될 때 수행되며 암호화된 통신을 위한 준비를 함

 

핸드쉐이크 과정

1. Client Hello

  • 클라이언트가 서버에 연결 요청 메세지를 보냄 (웹 서버 진위여부 위해)

2. Server Hello

  • 웹 서버는 공개키가 포함된 ssl/tsl 인증서를 보내 응답함

3. 인증서 검증

  • 클라이언트는 서버가 제공한 인증서를 검증함
  • (유효기간, 도메인 이름 일치여부, 검증받은 기관(CA)에서의 발급 확인)

4. Pre-Master Secret 생성 및 공유

  • 클라이언트는 임시키(Pre-Master Secret)를 생성하고 서버에서 받은 공개키로 암호화하여 서버에 전송함
  • 서버는 자신의 비공개키를 이용해 복호화 함

5. 세션키 생성

  • 클라이언트와 서버는 서로 공유한 난수와 임시키를 사용해 대칭키(세션키)를 생성함

6. Finished 메세지 교환

  • 클라이언트와 서버는 서로 'Finished' 메세지를 교환하며 이 과정을 완료함
  • 세션키 생성 이후 모든 데이터 통신은 암호화 됨

핸드쉐이크 역할

  1. 데이터 암호화
  2. 인증
  3. 데이터 무결성

SSL/TLS 인증서 유효기간이 짧아지는 이유

  1. 보안 강화
    • 키 교체주기 짧아져 노출(해킹)된 키의 악용 가능성을 최소화
  2. 암호화 기술 적응력 향상
    • 새로운 암호화 표준으로 빠르게 전환가능
    • (암호화 알고리즘이 빠르게 발전하여 기존 알고리즘이 약화될 가능성이 있기 때문)
  3. 잘못된 발급 문제 완화
    • 실수 등으로 인해 잘못 발급된 인증서가 오래 사용되지 않도록 방지
  4. 자동화 촉진
    • 자동 갱신 시스템으로 갱신 누락이나 인적 오류를 줄여 운영 효율성 증대
  5. 도메인 소유권 확인 빈도 증가
    • 정기적인 갱신 과정에서 도메인 소유권 확인 (보안 강화)