[Web] HTTPS

hyeondoonge·2022년 10월 18일
1

HTTPS란?

HTTPS (HTTP Secure) 는 HTTP protocol의 암호화된 버전이다. 이것은 대개 클라이언트와 서버 간의 모든 커뮤니케이션을 암호화 하기 위하여 SSL 이나 TLS을 사용한다. 이 커넥션은 클라이언트가 민감한 정보를 서버와 안전하게 주고받도록 해준다. 예를들면 금융 활동 이나 온라인 쇼핑이 있을 수 있다. - Mozilla 공식문서

Http 프로토콜을 이용한 통신에서는 평문이 전달되기 때문에, 제 3자가 탈취했을 때 알아볼 수 있다. 그래서 보호받아야할 정보를 전달하는 것에 어려움이 따른다.
Https는 http 프로토콜에서 추가된 보안 소켓 계층을 통해 메세지를 암호화할 수 있다. 이 덕분에 보안이 향상된 통신을 할 수 있게된다.

SSL(TSL) Handshake

TCP의 3 way handshake후에 SSL handshake를 통해 암호화된 통신을 할 준비를 한다.

ssl handshake - Cloudfare

  1. 지원 가능한 알고리즘 서로 교환
    클라이언트는 사용 가능한 암호화 알고리즘 목록, SSL Protocol Version, Random byte 등을 서버에 전달한다.
    서버는 적절한 알고리즘을 선택해 전달한다.
  2. 키 교환, 인증
    서버가 자신의 SSL인증서를 전달한다.
    올바른 인증서라면 브라우저에 내장된 CA의 공개키를 통해 복호화된다. (이후 클라이언트는 서버 공개키를 갖게 됌)
    비대칭키를 이용해 클라이언트와 서버의 통신에 사용할 키를 교환한다. (서버가 개인키를 가지고 있기 때문에 서버만 복호화할 수 있는 상태!)
  3. 대칭키 암호로 암호화하고 메시지 인증
    위에서 클라이언트가 서버로 키를 교환하게 되면서, 각각에 대칭키를 가지게 된다.

과정이 끝난 후에는 Client, Server가 대칭키를 가지고 있는 상태가 되며, 이를 이용해 메시지를 암호화 및 복호화하여 통신한다.

장점

보안 - 패킷이 암호화되어 송수신되어 제 3자로부터 보호받는다.
사용자 경험 - 신뢰할 수 있는 사이트임을 알 수 있고 이는 사용자에게 안전성을 줄 수 있다.

SEO - 구글 검색엔진에서 전체 점수의 약 1%에 해당하는 가산점을 줌으로써, SEO가 향상된다.

단점

서버 자원 비용 - SSL Handshake, 모든 메시지를 암호화/복호화 함에 따라 서버에 추가적인 리소스 비용이 든다. (오늘날에 있어서는 하드웨어의 처리 속도가 빠르기도 하고, TLS의 발전으로 빠르게 연산할 수 있어 무시해도 되는 비용이라고한다.)
인증서 비용 - 무료 인증서는 권장되지 않기 때문에 유료 인증서를 구매해야한다.

참고

HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상)
SSL / HTTPS의 장단점 / TLS
TLS(Transport Layer Security)는 무엇입니까?
검색엔진 최적화(SEO), 가장 효율적인 방법은?
SSL handshake 이미지 - cloudfare

0개의 댓글