HTTP
HTTP는 하이퍼 텍스트 전송 프로토콜의(Hypertext Transfer Protocol)의 약자이다. 이는 서로 다른 시스템들 사이에서 통신을 주고받게 해주기 위해 생겼다.
HTTPS
HTTPS는 HTTP의 문제점인 암호화를 보완한 프로토콜이다. SSL을 사용함으로써 이 문제를 해결하였다.
SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고, 서버 브라우저가 민감한 정보를 주고받을 때 이것이 도난당하는 것을 막아줍니다.
HTTP3
https://www.hamadevelop.me/http3/?fbclid=IwAR0B-Dl_8AyhHYX56zDzq3-URYEJj9OkNXRjwXV0DAsW015Ta3lV1FJZzXU
HTTP3은 빠르고 안전해졌다. 왜냐하면 QUIC을 사용하기 때문이다.
QUIC
- 보안통신을 디폴트로 사용한다.
- 여러 파일의 데이터를 동시에 통신할 수 있다.
- 네트워크가 바뀌어도 커넥션을 유지할 수 있다.
SSL == TLS
Secure Socket Layer의 약자로 서버와 브라우저 간의 보안을 위해 만든 프로토콜
공개키와 대칭키 암호화 기법을 혼용해서 사용한다.
역할
- HTTP 요청과 응답 데이터의 암호화가 이루어짐
- 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장
장점
- 통신 내용이 해커에게 노출되지 않는다.
- 통신 내용의 악의적 변경을 방지할 수 있다.
- 서버를 신뢰할 수 있다.
- A가 B의 공개키로 암호화 통신에 사용할 대칭키를 암호화하여 B에게 보낸다.
- B는 암호문을 받아, 자신의 비밀키로 복호화한다.
- B는 A로 부터 얻은 대칭키로 A에게 보낼 평문을 암호화하여 A에게 보낸다.
- A는 자신의 대칭키로 암호문을 복호화한다.
- 계속 대칭키로 암호화 통신을 한다.
SSL 인증서
SSL 인증서는 클라이언트와 서버간의 통신을 제 3자가 보증해주는 문서
CA(Certificate Authority)
SSL인증을 해주는 제 3자 역할, 디지털 인증서를 제공하는 공인된 기업들
대칭키
암호화와 복호화에 같은 암호 키(대칭키)를 사용하는 암호화 알고리즘
장점: 수행 시간이 짧음
단점: 사람이 증가할수록 키 관리가 어려움, 안전하지 않음
- 하나의 비밀 키를 양쪽(서버&클라이언트)가 모두 같이 사용한다.
- 암호화와 복호화에 사용하는 키가 같은 암호화 알고리즘
- 공개키에 비해 계산속도가 빠르다
- 비밀키 하나만 알아내면 암호화된 내용이 해독 가능하므로 안전하지 않다.
- 대칭키 암호는 함호화 단위에 따라 스트림 암호와 블록 암호로 나눌 수 있다
- 스트림 암호는 연속적인 비트를 계속 입력받아, 그에 대응하는 암호화 비트를 생성하는 방식
- 블록 암호는 정해진 단위(블록)을 입력받아 그에 대응하는 암호화 블록을 생성한다.
- 대칭키 기법을 사용하는 암호 알고리즘은 DES, 3-DES, AES, SEED, ARIA, MASK 등이 있다.
공개키
장점: 키 분배 필요x, 기밀성/인증 제공
단점: 대칭키에 비해 느림
- 대칭키는 비밀키 하나만 가지지만, 공개키는 공개키와 비밀키 두개의 키가 존재
- 공개키 암호 알고리즘과 비교하여 비대칭 암호라고 불림
- 암호화와 복호화에 사용하는 키가 같음
- 암호화할 때에는 공개키로 암호화, 복호화 할 때는 개인키로 암호화
- 공개키는 누구나 알 수 있고, 비밀키는 소유자만 알 수 있다.
- 공개키로 암호화한 메세지는 수신자의 개인키로만 해독할 수 있으므로 안전하게 상대방에게 메세지를 전달해 줄 수 있음.
- 대칭키(비밀키)알고리즘에 비하여 속도가 느리다. (약 1000배)
- 속도가 느리기 때문에 긴문서의 암호화하는 경우보다 대칭키 알고리즘의 키값에 대한 암호에 사용.
- 대표적인 공개키 알고리즘으로 RSA, Elgamal 등이 있음.
참조
https://liveyourit.tistory.com/183
https://gaeko-security-hack.tistory.com/123
https://preamtree.tistory.com/38