728x90
📌 HTTP(HyperText Transfer Protocol)
- 웹 서버와 웹 브라우저 간의 데이터 전송을 위한 응용계층의 프로토콜이다.
- HTML과 같은 하이퍼미디어 데이터를 전송한다.
📌 HTTPS(HyperText Transfer Protocol Secure)
- SSL/TLS 인증서를 사용하는 HTTP라고 보면 된다.
- SSL/TLS(보안 소켓 계층)을 사용하여 서버와 브라우저의 연결을 암호화하여 안전한 통신로를 만든다.
📌 SSL/TLS
- SSL 프로토콜은 네트워크 연결을 보호하기 위한 암호화 프로토콜로, TLS는 SSL의 후속 버전(업그레이드)라고 보면 된다.
- SSL/TLS 인증서를 사용하여 다른 시스템에 대한 암호화된 네트워크 연결을 설정할 수 있다.
- 클라이언트와 서버 간 응용 계층과 TCP 전송 계층 사이에 위치하나 전송계층과 보다 밀접하게 동작한다.
SSL/TLS 인증서
- 클라이언트와 서버 간의 통신을 제3자가 보증해 주는 전자 문서이다.
- 클라이언트가 접속한 서버가 신뢰할 수 있는 서버인지 판단할 수 있다.
- SSL 통신에 사용될 공개키를 클라이언트에게 전달하는 역할을 한다.
CA(Certificate Authority)
- 디지털 인증서를 발급하는 기관으로 보통의 브라우저는 CA 리스트를 가지고 있다.
SSL/TLS handshake
- TCP 3 way handshake가 우선 수행된다.
- 클라이언트가 clien hello를 서버에게 전송한다.
- 서버는 SSL 인증서를 클라이언트에게 제공하는데 이 인증서 안에는 서버의 공개키와 서비스 정보가 담겨있다.
- 이 인증서는 인증기관의 개인키로 암호화되어 있고 클라이언트는 브라우저에 내장된 CA 리스트가 있어 인증기관의 공개키로 복호화가 가능하다.
- 클라이언트는 인증서를 발급한 CA가 브라우저의 CA 리스트에 있는지 확인하고 있다면 CA의 공개키를 이용해 SSL 인증서를 복호화한다.
- 클라이언트는 비밀키(대칭키)를 생성하고 서버의 공개키로 비밀키를 암호화하여 서버로 전송한다.
- 서버는 자신의 개인키로 클라이언트가 보낸 자신의 공개키를 복호화하여 클라이언트의 비밀키를 얻게 된다.
- 이후의 통신은 공유하고 있는 비밀키로 암호화되어 통신한다.
참고 :
http://www.ktword.co.kr/test/view/view.php?m_temp1=1957
https://aws.amazon.com/ko/what-is/ssl-certificate/
https://hanjungv.github.io/2017-11-07-1_CS_SSL/
728x90
'넓고 얕은 네트워크 지식' 카테고리의 다른 글
CORS 에러 1분 요약 (0) | 2023.02.17 |
---|---|
그런 REST API로 괜찮은가? 요약 정리 (0) | 2023.02.16 |
TCP, UDP 핵심 1분 요약 정리 (0) | 2023.02.13 |
주소창에 google.co.kr을 치면 일어나는 일 1분 요약 정리 (0) | 2023.02.13 |
DNS 1분 요약 정리 (0) | 2023.02.13 |