HTTP와 HTTPS는 웹에서 데이터를 전송하는데 사용되는 프로토콜이다.
HTTP (Hypertext Transfer Protocol)
- 인터넷에서 웹 페이지, 이미지, 동영상 등의 리소스를 전송하기 위한 통신 규약
- 클라이언트(웹 브라우저)와 서버 간에 요청(request)과 응답(response)을 주고받는 방식으로 동작
- 암호화되지 않은 텍스트 기반 프로토콜이므로 데이터 전송 과정에서 보안에 취약하다. 요청과 응답의 내용이 암호화되지 않기 때문에 중간에 제3자가 데이터를 도청하거나 조작할 수 있는 위험이 있다. 따라서, 민감한 정보를 전송하는 경우 보안 상의 문제가 발생할 수 있다.
HTTPS (Hypertext Transfer Protocol Secure)
- HTTP의 보안 문제를 해결하기 위해 나온 프로토콜이며, SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용한다.
- 웹 브라우저와 웹 서버 간의 통신을 암호화하고, 데이터의 무결성을 보장하며, 인증을 제공한다.
- 하이브리드 암호화를 사용
- 클라이언트와 서버 간에 SSL/TLS Handshake 과정을 통해 안전한 연결을 설정하고, 이후에는 대칭키 암호화를 사용하여 데이터를 암호화한다. 이로써 중간에 데이터를 가로채더라도 암호화된 상태로 전송되므로 보안이 강화된다.
- 주로 민감한 정보(로그인 정보, 결제 정보 등)를 처리하는 웹 페이지, 인터넷 뱅킹, 전자상거래 등에서 사용된다.
HTTPS의 통신 흐름
- 클라이언트 요청
- 클라이언트(웹 브라우저)는 HTTPS로 액세스해야 할 웹 서버의 URL을 입력하거나 링크를 클릭한다.
- SSL/TLS Handshake
- 클라이언트는 서버와 안전한 연결을 설정하기 위해 SSL/TLS Handshake 과정을 시작한다.
- 서버는 서버의 공개키와 인증 기관(CA)의 디지털 서명이 포함되어 있는 공개키 인증서를 클라이언트에게 제공한다.
- CA(Certificate Authority): 공개키를 저장해주는 신뢰성이 검증된 민간기업
- 인증서 검증
- 클라이언트는 가지고 있는 CA 공개키를 사용하여 인증서의 유효성을 검증한다.
- 또한, 인증서에 포함된 도메인 이름과 실제 서버의 도메인 이름을 비교하여 일치 여부를 확인한다.
- 세션 키 생성
- 클라이언트는 세션 키(임시 대칭키)를 생성한다. 이것을 사용하여 데이터를 대칭키 암호화 방식으로 암호화한다.
- 클라이언트는 서버의 공개키를 사용하여 세션 키를 암호화하여 전송한다.
- 데이터 암호화
- 클라이언트와 서버는 이제 안전한 연결을 설정하고, 대칭키 암호화 방식을 사용하여 데이터를 암호화한다. (세션 키 사용)
- 데이터 교환
- 클라이언트와 서버는 암호화된 데이터를 주고받는다. 즉, 클라이언트의 요청과 서버의 응답이 암호화되어 전송된다.
- 연결 종료
- 클라이언트와 서버 간의 통신이 완료되면, 연결이 종료된다.
❗중요한 점
클라이언트는 서버의 공개키를 인증서를 통해 얻고, 이를 사용하여 데이터를 암호화한다. 클라이언트는 웹 브라우저에 내장된 신뢰할 수 있는 CA의 공개키를 사용하여 인증서를 검증한다.이를 통해 서버의 신원을 확인할 수 있다.
But, HTTPS를 지원한다고 해서 무조건 안전한 것은 아니다.
왜냐하면 신뢰할 수 있는 CA 기업이 아니라 자체적으로 인증서를 발급할 수도 있고, 신뢰할 수 없는 CA 기업을 통해서 인증서를 발급받을 수도 있기 때문이다.
이런 경우, "주의 요함", "안전하지 않은 사이트" 등의 알림이 발생한다.
[참고] https://jeong-pro.tistory.com/89
'Computer Science > Network' 카테고리의 다른 글
[Network] 로드 밸런싱 (Load Balancing) (0) | 2023.07.16 |
---|---|
[Network] TSL/SSL HandShake (0) | 2023.07.07 |
[Network] 대칭키 & 비대칭키 (0) | 2023.07.07 |
[Network] UDP (User Datagram Protocol) (0) | 2023.06.30 |
[Network] TCP/IP 흐름제어 & 혼잡제어 (0) | 2023.06.30 |