[기획자가 공부하는 CS] HTTP VS HTTPS

정채원·2021년 4월 2일
6
post-thumbnail

네트워크

HTTP VS HTTPS

흔히 도메인에서 보이는 용어지만, 둘의 차이를 혼동하는 경우가 많다. 이에 대해 정리해보자

1. HTTP

-> 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜.
따라서, 주민등록번호 & 비밀번호 등 개인정보를 주고 받으면 제 3자가 정보를 조회할 수 있음.
-> TCP/IP위에서 작동. Stateless Protocol인게 특징!(상태를 가지고 있지 않음!)

EX) GET / HTTP / 1.1
Host : Projectmanager.Chaewon.org
Accept : Language : fr

예시를 통해 요소에 대해 알아보자!
GET -> Method
/ -> Path
HTTP / 1.1 -> 프로토콜 버전
Host부터 fr까지 -> Headers 라 한다.

2. HTTPS

-> HTTP에 데이터 암호화가 추가된 프로토콜.
433번 포트를 쓰며, 공개키 암호화를 지원해줌. SSL과 같은 프로토콜을 사용하여 공개키 / 개인키 기반으로 데이터를 암호화고 있음. 임의의 사용자가 데이터를 조회해도 원본 데이터 자체를 확인하는 것은 불가.

Server <--------Request ------ Client

클라이언트가 서버에게 요청을 보내는 것을 암호화 하기 위해 Public Key를 생성.

일반적으로, Certificate Authority(CA)에 공개키를 전송하여 인증서를 발급받고 있음.

[Flow]

1) 채원 기업이 HTTP 기반 application에 HTTPS를 적용하려면 Public Key & Private key를 발행한다
2) 채원 기업이 CA 기업에게 돈을 지불하고, Public Key를 저장하는 인증서 발급을 요청한다
3) CA 기업은 CA 기업의 정보를 기반으로 인증서를 생성하고, CA 기업의 Private key로 암호화하여 채원 기업에게 제공한다
4) 채원 기업은 Client에게 암호화된 인증서를 제공한다
5) 브라우저는 CA 기업의 Public Key를 미리 다운받고, 암호화된 인증서를 복호화한다
6) 채원 기업의 Public Key로 데이터를 암호화하여 요청한다

profile
IT Project Manager

2개의 댓글

comment-user-thumbnail
2021년 4월 9일

글 잘쓰시내요 오타 있는거 같내요.
https 기본포트 433 이라고 써있내요

1개의 답글