Notice
Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- MySQL
- 디스코드봇
- predict
- network
- 파이널프로젝트
- 장고
- 스파르타코딩클럽후기
- 선형회귀
- 머신러닝
- git
- Django
- 스파르타코딩클럽
- vscode
- 내일배움캠프
- JavaScript
- 페이지네이션
- musicbot
- cs
- error
- 기초문법
- Wil
- 터미널
- 코딩교육
- 웹프로그래밍A-Z기초
- Model
- orm
- 파이썬
- paginator
- HTML
- Python
- Today
- Total
lution88
HTTPS 란? 본문
HTTPS란 http에 암호화가 추가된 프로토콜입니다.
http는 평문 데이터를 전송하는 프로토콜이기 때문에 http로 비밀번호, 주민번호 등 보안이 필요한 데이터를 주고받는 경우,
제 3자에 의해서 조회가 될 수 있습니다.
이를 방지하기 위해 http에 암호화가 추가된 프로토콜(SSL)이 https 입니다.
즉, HTTPS는 SSL 프로토콜을 사용해 클라이언트와 서버가 자원을 주고 받을 때 사용하는 통신규약인 것이죠.
- SSL : Secure Socket Layer
: 보안 소켓 계층으로 웹 사이트와 브라우저 사이에 전송되는 데이터를 암호화하여 인터넷 연결을 보호하기 위한 표준 기술.
- HTTP : HTTP <-> TCP | HTTPS : HTTP <-> SSL <-> TCP
HTTPS에서는 대칭키 암호화와 비대칭키 암호화가 모두 사용됩니다.
비대칭키 암호화/복호화는 비용이 매우 크므로, 서버와 클라이언트가 주고 받는 모든 메시지를 비대칭키로 암호화하면
오버헤드가 발생할 수 있습니다.
그래서 서버와 클라이언트가 최초 1회 서로 대칭키를 주고받을 때 비대칭키를 사용하고,
이후 메세지를 주고받을 때는 주고받은 대칭키로 암호화/복호화를 합니다.
암호화 과정
- 클라이언트가 서버로 최초 연결을 시도합니다.
- 서버는 공개키(인증서)를 브라우저에게 넘겨줍니다.
- 브라우저는 인증서의 유효성을 검사하고 세션키를 발급합니다.
- 브라우저는 세션키를 보관하고 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송합니다.
- 서버는 전송받은 세션키를 자신의 공개키를 사용하여 복호화 하여 세션키를 얻습니다.
- 클라이언트와 서버는 동일한 세션키를 공유하므로 이 후 데이터를 전달할 때는 세션키로 암호화/복호화를 진행합니다.
- 공개키로 암호화된 메세지는 개인키를 가지고 있어야만 복호화가 되기 때문에 서버(기업)을 제외한 누구도 알 수 없습니다.
'Computer Science > Network' 카테고리의 다른 글
OSI 7 계층이란? (0) | 2022.08.14 |
---|---|
HTTP 메소드 (0) | 2022.08.13 |
HTTP의 상태코드 (0) | 2022.08.13 |
HTTP란? (0) | 2022.08.13 |
Comments