일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 반려견 유기농
- 쿠팡매크로
- 강아지종류
- 티켓팅메크로
- 쿠팡메크로
- 신포동 맛집
- 강아지 유기농 사료
- 닥스훈트
- 강아지 종류
- 강아지 더위
- 반려견 열사병
- 반려견
- 샤로수길 맛집
- 강아지 유기농
- 홀리스틱 유기농
- 서울대입구 맛집
- 강아지 열사병
- 자동화봇
- 부산 맛집
- 강아지
- 반려견 더위
- 반려견 종류
- 샤로수길 데이트
- 티켓팅매크로
- 반려견 유기농 사료
- 국비지원 예습
- 강아지 홀리스틱
- 동인천 맛집
- 반려견 홀리스틱
- 반려견 사료등급
- Today
- Total
심심한잉여의 잡동사니
HTTP와 HTTPS의 이해 본문
항상 듣는 HTTP와 HTTPS
간단하게 HTTP는 하나의 규약이고 HTTPS는 이 규약에 암호화과정을 넣어 도중에 도청되지 않도록 한 것이다 정도만 알고 있었기에 한번 정리를 하며 머리에 넣고자 이 글을 쓴다.
HTTP(Hyper Text Transfer Protocol)란?
웹 상에서 클라이언트와 서버가 서로 정보를 주고받을 수 있도록 하는 규약
HTML 문서를 교환하기 위해 만들어진 통신규약
클라이언트는 URL로 된 HTTP를 통해 서버에게 정보를 요청하고 서버는 이 요청을 해석하고 요청에 맞는 정보를 응답합니다.
HTTP를 통해 이 행위들이 이루어집니다.
그렇다면 HTTPS는 무엇인가?
HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)는 HTTP를 보완하는 수단입니다.
HTTP는 암호화가 되어있지 않기 때문에 도난이나 변조, 도청이 가능합니다.
HTTPS는 HTTP의 일반 텍스트에 SSL이나 TLS프로토콜을 씌워 데이터를 암호화하는 기법이며, 로그인이나 결제화면에서 주로 쓰입니다.
HTTPS를 이해할 때 알아야 하는 것들
1. 암호화 : 어떤 정보를 암호화 된 정보로 바꾸는 것
2. 복호화 : 암호화된 정보를 다시 원래 정보로 바꾸는 것
3. 키 : 암호화, 복호화할 때 사용하는 비밀번호
4. HTTPS는 공통 키 방식과 비대칭 키 방식을 같이 사용합니다.
4-1. 공통(대칭) 키 방식 : 암호화할 때와 복호화 할 때 클라이언트와 서버가 같은 키를 사용하는 방식
- 장점 : 단순한 구조로 CPU를 적게 쓰고 빠르다.
- 단점 : 공통 키를 빼앗기면 복호화를 할 수 있으므로 보안에 취약하다는 단점이 있다.
4-2. 비대칭 키 방식 : 암호화할 때와 복호화 할 때 클라이언트와 서버가 다른 키를 사용하는 비대칭 방식입니다.
- 장점 : 키 전송과정 중 해킹당해도 해독을 할 수 없어 공통 키 방식보다 안전합니다.
- 단점 : 공통 키 방식보다 느리고 리소스 소비가 큽니다.
HTTPS는 공통 키, 비대칭 키를 같이 사용하는 이유
1. 비대칭키가 가진 이점을 이어가되 전송 소요시간 및 리소스 부담을 줄이는 방식
2. HTTPS를 통해 통신이 시작되면
서버는 서버가 제공한 비대칭키와 증명서에 부합하는 요청을 클라이언트가 보냈는지 확인 합니다.
클라이언트가 공통 키를 서버가 제공한 비대칭 키로 암호화해 서버에게 보낸 첫 번째 요청을 복호화하는것을 핸드쉐이크라고 부르는데 이 과정이 끝나면 실제 요청과 정보를 교환하는 과정이 이어집니다.
2-1. 서버가 제공하는 비대칭 키를 써 클라이언트는 서버게에 보낼 공통키를 암호화합니다.
2-2. 서버는 클라이언트가 보낸 암호화 된 요청을 비대칭 키로 복호화합니다.
2-3. 결과적으로 클라이언트와 서버는 서버가 제공한 비대칭키를 통해 암호화 된 공통키로 통신합니다.
'코딩일기 > Java' 카테고리의 다른 글
[JAVA] 디자인패턴 - 싱글톤 (0) | 2022.03.20 |
---|---|
[JAVA] JAVA8 버전과 JAVA 11 버전의 특징 (0) | 2022.03.15 |
[Java]자바의 메모리 구조 (0) | 2022.03.11 |
JAVA - 세미프로젝트 네이버 검색API JSON 파싱 (0) | 2021.11.22 |
JAVA - strip(); (0) | 2021.11.21 |