HTTP 와 HTTPS 의 개념과 차이

Seungmin Shin·2022년 1월 26일
1

HTTP + S ?

HTTP는 Hyper-Text-Transfer-Protocol 의 약자이다.

"서버 / 클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜" 이라고 볼 수 있겠다.

프로토콜이란?
프로토콜은 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계입니다.
기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구합니다. 이런 형식을 정의하는 규칙의 집합을
프로토콜이라고 합니다.

Method, Path, Version, Headers, Body 등으로 구성된다.

기존의 클라이언트와 서버의 데이터교환에 있어서는 거의 대부분 HTTP 가 사용되었지만,
시간이 지날수록 HTTP 보다는 HTTPS 를 사용하고있다. 왤까?

HTTP 의 뒤에 붙는 S는 "Secure" 이다. 안전하다는 의미인데, 그렇다면 이것으로 유추해 보아
HTTPS 는 HTTP 보다 안전하다는 의미인것 같다, 그렇다면 무엇으로부터?

1. 나의 데이터를 제 3자가 확인할 수 없게 한다.

내가 어떤 포털사이트에 로그인하기위해 아이디와 비밀번호를 입력하여 해당 포털사이트 웹서버로 전송한다.
이때, HTTP 를 사용하게 된다면, 내가 작성한 데이터의 형식이 입력한 텍스트 그대로 전송되게 된다.
그렇다면 만약 누군가가 이 데이터를 중간에 들여다볼 수 있게 된다면 나의 정보는 그대로 그 사람에게
노출이 되는것이다, 만약 이 정보들을 다른 사이트에서도 동일하게 사용하고 있었다면, 나는 다른 사이트도
그 사람에게 털린거나 다름이 없는것이다.

하지만 HTTPS 로 보낸다면, 해당 사이트만이 알아볼 수 있는 암호화된 문자열로 변환하여 정보를 전송하므로
중간자가 침입하여 정보를 보게된다고 해도 나의 정보를 알아볼 수 없을것이다.

암호화 방법

  1. 대칭키 암호화
    클라이언트와 서버가 동일한 키를 사용해 암호화/복호화를 진행함
    키가 노출되면 매우 위험하지만 연산 속도가 빠름

  2. 비대칭키 암호화
    1개의 쌍으로 구성된 공개키와 개인키를 암호화/복호화 하는데 사용함
    키가 노출되어도 비교적 안전하지만 연산 속도가 느림

2. 내가 접근한 사이트가 신뢰할 수 있는 사이트인지를 판별한다.

피싱사이트라는것이 있다. 내가 a라는 사이트에 접속하려고 했는데, b라는 사이트가 마치 a사이트 인것처럼
사용자를 속여서 데이터를 빼내는 수법으로 사용자들의 정보를 불법으로 수집하게 된다. 이것이 만약 은행같은
중요한 정보가 담긴 사이트라면 그 피해는 더 커질것이다. HTTPS는 이런 b같은 피싱사이트를 걸러내 준다.

왜냐하면, 기관으로부터 검증된 사이트만 HTTPS 를 사용할 수 있기 때문이다.
그리고 HTTPS 를 사용하지 않고 HTTP를 사용하는 사이트는

이렇게 "안전하지 않다" 라는 표시가 뜨게 된다.

HTTP 와 HTTPS 의 차이?

위에서도 말했듯, HTTP 와 HTTPS 는 보안의 차이가 있다. 그리고 HTTPS는 암호화와 복호화의 과정이
추가 되어서 미세하지만 HTTP 와는 속도의 차이가 있다.

최근의 추세는 HTTPS 를 사용하는것이 권장된다. 그래도 HTTP를 사용하게 된다면, 노출이 되어도 상관없는
단순한 정보조회용도로 사용할때는 HTTP 를 사용해도 무방하다, 하지만 개인적인 정보 및 중요한 데이터를
주고받아야하는 경우에는 HTTPS 를 사용하는것을 권장한다.

profile
Frontend Developer

0개의 댓글