Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- spring context
- open contribution jam
- 트러블슈팅
- Database
- redis
- 모의면접
- jooq
- 체험
- 테오의 스프린트
- 글또
- 사이드 프로젝트
- bean
- jscode
- 후기
- 프로그래머스
- dto projection
- SQL
- 글또 #다짐
- 오블완
- 동적 SQL
- DI
- 부꾸
- 구슬
- 보따리
- 북극곰
- 부꾸러미
- 티스토리챌린지
- Spring
- 코드트리
- 눈송이
Archives
- Today
- Total
벤티의 개발 로그
[Network] #3 HTTPS 본문
지난 포스트에서 HTTP에 대해 알아봤으니, 이제 HTTPS에 대해서 알아보자!
HTTPS란 뭘까?
HyperText Transfer Protocol Secure의 약자로, HTTPS란 HTTP의 보안 버전이다. 또, 데이터를 전송할 때 암호화 알고리즘을 사용하고 요청과 응답도 암호화하기 때문에 보안성을 강화한다. (HTTP/2가 HTTPS 위에 동작한다.) 그렇다면 HTTPS에 필요한 보안 기능을 제공하는 존재는 무엇일까?
SSL/TLS
바로 이 둘이다. HTTPS는 Application Layer와 Transport Layer 사이에 SSL/TLS 계층을 넣는데, 이를 통해 '통신을 암호화'한다.
SSL/TLS는 Transport Layer에서 보안을 제공하는 프로토콜이다. 클라이언트와 서버가 통신을 할 때 SSL/TLS를 통해 제3자가 메시지를 도청하거나 변조하지 못하게 막는다. 또, SSL/TLS는 보안 세션을 기반으로 데이터를 암호화하여 보안 세션이 만들어질 때 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용된다.
키 교환 암호화 알고리즘
이 중 키 교환 알고리즘에 대해 알아보자. 키 교환 알고리즘에는 크게 3가지 종류가 있다.
- 대칭키 암호화 방식: 요청을 보내는 측과 요청을 받는 측이 같은 키를 공유하여 암호화와 복호화를 진행하는 방법이다. 종류로는 XOR, DES, AES가 있다. 이 중 최근에 쓰이는 것은 AES이다.
- 비대칭키(공개키) 암호화 방식: 대칭키 암호화 방식과 다르게, 암호화 할 때와 복호화 할 때 사용하는 키가 다른 암호화 방법이다. 암호화를 할 때 요청을 받는 측의 키(공개키)로 암호화를 한다. 종류로는 ElGamal Encryption, RSA, ECC가 있다.
- 전자 서명: 요청을 보내는 측이 요청을 받는 측에 자신의 서명을 포함해서 보내는 방식이다. 여기서 '서명'이란 보내는 측의 private key로 암호화하는 것을 의미한다. 종류로는 해시 함수, RSA 디지털 서명, ElGamal 디지털 서명, DSS, ECDSA가 있고, 최근에 쓰이는 것은 ECC 기반의 알고리즘인 ECDSA이다.