HTTPS에 대해 간단히 알아보자.
우선 HTTPS를 알기 위해선 HTTP에 대한 기본적인 지식이 필요하다.
얼마 전에 HTTP에 대해 간단히 설명한 글이다.
https://seungjjun.tistory.com/223
HTTPS란?
HTTPS(Hypertext Transfer Protocol Secure)를 간단하게 정의하면 HTTP 프로토콜의 보안이 강화된 버전이라고 할 수 있다.
HTTPS는 소켓 통신에서 일반 텍스트를 이용하는 대신에, SSL이나 TLS 프로토콜을 통해 세션데이터를 암호화한다. 따라서 데이터의 적절한 보호를 보장한다. HTTPS의 기본 TCP/IP 포트는 443이다.
- wikipedia (https)
좀 더 자세히 설명하면 HTTPS는 HTTP 통신하는 소켓 부분을 SSL(Secure Socket Layer) 또는 TLS(Transport Layer Security)이라는 프로토콜로 대체해서 사용하는 것이다.
그러면 왜 HTTPS를 사용할까?
우리가 흔히 사용하고 있는 HTTP는 생각하는 것만큼 보안이 뛰어나지 않다. 마음만 먹으면 정보를 탈취할 수 있다는 소리다.
HTTP를 이용해서 통신한 내용들은 HTTP 자신을 암호화하는 기능 없다. 즉 암호화되지 않은 메시지로 HTTP 메시지를 보낸다. 이렇게 되면 메시지를 중간에 누군가 가로채서 정보를 확인할 수 있다. 만일 메시지 안에 중요한 정보가 담겨서 통신이 된다면 탈취당할 수 있다.
웹 페이지에서 보안에 신경써야하는 페이지들이 존재한다. 예를 들어 회원가입 또는 로그인, 신용카드 번호 등등 개인정보를 입력해야하는 페이지들이 있다. 이러한 페이지들에는 HTTP 통신이 아닌 HTTPS 통신을 이용해야 한다는 이야기이다.
그래서 우리는 HTTPS을 사용해서 통신을 해야 한다.
SSL과 TLS??
SSL(Secure Socket Layer)은 Netscape가 내놓은 프로토콜로 웹서버와 브러우저 사이의 보안을 위해 만든 프로토콜이다.
TLS(Transport Layer Security)은 SSL을 바탕으로 한 프로토콜이지만 보통 두 프로토콜을 구분하지 않고 일반적으로 SSL이라고 부른다.
아무튼 SSL은 웹 브라우저와 서버 간 암호화 통신을 할 수 있도록 하는 프로토콜이다.
HTTP VS HTTPS
HTTP와 HTTPS를 잠시 비교해 보면 HTTP 통신을 하는 소켓 부분을 SSL 또는 TLS 프로토콜로 대체하고 있는 것을 볼 수 있다.
HTTP는 직접 TCP와 통신을 했었지만 HTTPS를 이용해 통신을 하는 경우에는 HTTP는 SSL or TLS와 통신을 하고 SSL이 TCP와 통신을 하게 된다. 즉 HTTP를 이용한 통신 방법에서 SSL or TLS를 추가한 것뿐이다.
SSL을 사용함으로써 이제는 암호화된 통신이 가능해진다. (SSL은 HTTP와는 독립된 프로토콜이다.)
HTTPS의 단점
HTTPS에도 단점이 존재한다.
SSL을 사용하게 되면 기존 통신(HTTP를 이용)하는 과정에 암호화를 하는 과정이 추가가 되기 때문에 HTTP보다 속도가 더 느리다는 단점이 있다.
만일 모든 웹페이지가 HTTPS를 이용해 통신을 하게 된다면 속도가 느려지게 된다. 암호화 통신은 CPU나 메모리 등의 리소스를 더 많이 요구하기 때문에 서버 한 대당 처리할 수 있는 리퀘스트의 수가 상대적으로 줄어들기 때문이다.
즉, 모든 페이지가 HTTPS를 이용하지 않고 보안이 필요한 페이지에만 HTTPS를 이용해 암호화 통신을 사용하는 방식을 채택해야 한다.
'Network' 카테고리의 다른 글
TCP와 UDP의 특징 (3-way-handshaking, 4-way-handshaking) (0) | 2023.01.10 |
---|---|
HTTP란? (0) | 2022.12.31 |