본문 바로가기

cs(with 매일메일)

[251029수] HTTPS에 대해서 설명해주세요

HTTP는 에서 클라이언트와 서버 간 통신을 위한 통신규약입니다. 

하지만 HTTP는 암호화되지 않은 평문 데이터를 전송하기 때문에 제3자가 정보를 조회할 수 있다는 위험이 있습니다. (스니핑)

HTTPS는 HTTP에 데이터를 암호화하여 전송할 수 있도록 추가된 프로토콜입니다. 

 

 

HTTPS 적용 방법

1. (서버) 인증된 기관(CA) 에게 인증서를 발급 요청

2. (CA) CA이름, 서버의 공개키, 서버의 정보 활용 > 인증서 생성 > CA 개인키로 암호화하여 서버로 전송(신뢰성 확보)

3. (서버) 인증서 발급받아 HTTPS 적용

 

 

HTTPS 동작 원리 : SSL/TLS 핸드 쉐이크

1. (클라이언트 > 서버) SSL프로토콜 버전 / 암호화 알고리즘 목록 / 무작위 값 전달

2. (서버 > 클라이언트) SSL프로토콜 버전 / 선택한 암호화 알고리즘 / 무작위 값 + 본인 공개키 + CA인증서 전달

3. (클라이언트) 서버의 인증서를 CA의 공개키로 복호화하여 검증

4. (클라이언트 > 서버) 서로 생성한 무작위 값을 조합하여 Pre Master Secret값 생성하여 서버 공개키로 암호화

5. (서버) 암호화된 데이터를 개인 키로 복호화 > Pre Master Secret을 Master Secret으로 변경하고 이를 사용해 세션 키 생성

6. 이후는 클라이언트와 서버 모두 세션키를 활용하여 대칭키 암호화 방식으로 데이터 송수신

 


✨ HTTP 통신 특징

1. 비연결성

2. 무상태 : 요청과 응답에 대해 기억하지 않음. 기억하려면? 쿠키나 세션 사용

3. 요청-응답 방식

 

[데이터 통신] HTTP, HTTPS(SSL/TLS) 통신 이해하기 : 클라이언트-서버 통신 과정 — Contributor9

 

[데이터 통신] HTTP, HTTPS(SSL/TLS) 통신 이해하기 : 클라이언트-서버 통신 과정

해당 글에서는 HTTP, HTTPS 통신에 대해 이해를 돕기 위해 작성한 글입니다. 1) HTTP(HyperText Transfer Protocol) 통신💡HTTP(HyperText Transfer Protocol) 통신- 웹 브라우저와 서버 간에 데이터(HTML, Image, CSS, JS, JSON

adjh54.tistory.com

 

 

✨ SSL프로토콜과 TLS

SSL : 클라이언트와 웹 서버 간의 통신을 암호화하여 데이터가 노출되는 것을 막기 위한 보안 프로토콜