HTTP 와 HTTPS

박영준·2023년 7월 16일
0

Web

목록 보기
4/4

http vs http 는 개발자 면접에서 자주 나오는 질문 중의 하나!

HTTP

참고: HTTP

보안상 단점이 있다.

클라이언트와 서버간의 통신에 있어서 별다른 보안 조치가 없기 때문에,
만약 누군가 네트워크 신호를 가로챈다면, HTTP의 내용은 그대로 외부에 노출된다.

소규모의 프로젝트(중요 정보가 없는)라면 문제가 되지 않겠지만,
대규모 서비스(고객의 개인정보나 비밀을 취급하는)라면 큰 보안적 허점이 될 것이다.

이런 문제를 해결하기 위해 등장한 것이 HTTPS 이다.
HTTPS 는 전송되는 데이터를 암호화하기 때문에, 이를 갈취당하더라도 복호화가 거의 불가능하다.

HTTPS

1. 예시

요즘 거의 모든 사이트의 주소창에서 자물쇠 표시를 볼 수 있다.
이 자물쇠는 HTTPS 가 적용되었다는 것을 알려준다.

2. 등장 배경

처음에는
전자상거래 등... 고객의 중요 정보를 다루는 사이트 위주로 사용되었다.

2014년
구글에서 HTTP 를 HTTPS 로 변환하라고 권고하기 시작했다.
그러면서, 구글은 HTTPS 를 적용하는 사이트들에게 SEO(검색 엔진 최적화)에 있어서 가산점을 주겠다고 제시했다.

3. 동작 방식

HTTP 프로토콜

  • 전송계층의 TCP 위에서 동작
    • 여기서 SSL(Secure Sockets Layer)이라는 보안계층이 전송계층 위에 올라간다.

HTTPS 프로토콜

  • SSL 암호화 통신

    • SSL 위에 HTTP 를 얹어서 보안이 보장된 통신

    • 이 통신 방법은 공개키 암호화 방식이라는 알고리즘을 통해 구현된다

4. HTTPS(SSL)의 동작 과정 (공개키 암호화 방식)

(핸드쉐이크 : 통신에서 연결을 설정하기 위한 과정. 이때 두 통신 장치 간 데이터 교환 규칙, 속도, 보안 설정 등의 파라미터를 협상함)

공개키개인키 가 있다.

  • 한쪽 키로 데이터를 암호화 했다면,
  • 오직 다른쪽 키로만 복호화를 할 수 있다.

동작 순서

  1. 서버 운영 기업이 공개키를 CA 에게 넘긴다.

  2. CA 는 인증서 발급자, CA의 이름 등... 과 함께 묶어서, 이것들을 CA 가 가지고 있는 개인키로 암호화한 후 SSL인증서로 발급해준다

  3. 추후에 클라이언트에서 요청이 들어오면, 서버는 클라이언트에게 SSL 인증서를 보낸다.

  4. 브라우저 쪽에서 다시 SSL내부에 들어있던 서버의 공개키를 가지고 요청을 암호화해서 서버에게 보낸다.

  5. 서버측은 가지고 있는 개인키로 요청을 복호화하여 해석하고 응답은 다시 암호화 해서 보냅니다.

브라우저(클라이언트)는 대표적인 CA들의 리스트와 그들의 공개키를 보유하고 있다.
만약 SSL 인증서에 적힌 CA의 이름과 브라우저가 소유하고 있는 CA 이름이 같다면, CA의 공개키로 SSL 인증서를 복호화한다.

이런 인증서를 통해 데이터 조작 여부를 판단한다.(데이터 무결성)


참고: HTTP vs HTTPS의 차이점을 알아보자
참고: 네트워크 7계층/ OSI 7계층/ 네트워크 OSI 7계층 - 사좋배 공유
참고: http와 https의 차이점
참고: HTTPS란?

profile
개발자로 거듭나기!

0개의 댓글