[웹보안] HTTP와 HTTPS의 차이점을 알아보자!

juiuj·3일 전

웹 개발을 하다보면 URL 앞에 항상 붙는 http://, https://를 보게 된다.
겉보기에는 단순히s 하나 차이지만, 어떤 차이점이 있길래 https를 주로 쓰는걸까?

HTTP란 무엇인가?

HTTP(HyperText Transfer Protocol)는 클라이언트(브라우저)와 서버가 데이터를 주고 받기 위한 규칙(프로토콜)이다.

HTTP는 데이터를 ✌️암호화하지 않고✌️ 평문 그대로 전송하기 때문에 네트워크 중간에서 데이터가 그대로 노출될 수 있다. 그 때문에 로그인 정보, 개인정보가 탈취될 위험이 존재한다.

공용 와이파이 환경에서 HTTP 사이트에 로그인하면 아이디와 비밀번호가 그대로 노출💦 될 수 있음

그래서 HTTP는 보안에 취약하다.


HTTPS란 무엇인가?

HTTPS의 ssecure로, HTTP에 보안 계층(SSL/TLS) 을 추가한 프로토콜이다.

HTTPS는 데이터가 암호화되어 전송되고, 그로 인해 중간에서 가로채도 내용을 해독할 수 없다는 특징이 있다. 또한 SSL/TLS 인증서와 CA를 통해 서버의 신뢰성 검증이 가능하다는 장점이 있다.
닉값하는 프로토콜

SSL/TLS 인증서란?

SSL/TLS 인증서는 쉽게 말해 "이 서버는 신뢰할 수 있는 서버" 라는 것을 증명하는 전자 신분증 같은 거라고 볼 수 있다.

🔐 SSL

  • SSL (Secure Sockets Layer)
    → 보안 소켓 계층
  • 클라이언트와 서버 사이의 통신을 암호화하기 위해 만들어진 보안 프로토콜
  • HTTPS의 초기 보안 기술
  • 현재는 보안 취약점 때문에 더 이상 사용되지 않음

🔐 TLS

  • TLS (Transport Layer Security)
    → 전송 계층 보안
  • SSL을 개선한 최신 보안 프로토콜
  • 현재 HTTPS에서 실제로 사용되는 표준
  • 더 강력한 암호화 방식과 보안 구조 제공

HTTPS 통신에서 이 인증서를 통해 서버의 신원 인증, 데이터의 암호화, 데이터의 무결설 보장 이 세 가지가 가능해진다.

인증서는 왜 필요한가?

만약 인증서가 없다면 어떻게 될까?
-> 사용자는 접속한 서버가 진짜인지 알 수 없다.

예를 들어, 브라우저에서 https://www.naver.com에 접속하면, 네이버 서버는 SSL/TLS 인증서를 브라우저에 보내준다.

이 인증서에는 “이 서버는 www.naver.com의 서버다”라는 정보와 이를 신뢰할 수 있는 인증기관(CA)이 확인했다는 서명이 들어 있다.

브라우저는 이 인증서를 검증한 뒤에야 통신을 시작한다. 그래서 사용자는 진짜 네이버 서버와 통신 중이라는 것을 보장받을 수 있다❕

CA (Certificate Authority)란?

인증서를 발급하고 관리하는 신뢰 기관으로,

  • 서버가 해당 도메인의 실제 소유자인지 확인
  • 확인이 끝나면 인증서를 발급
  • 인증서에 전자 서명 추가
    👆 같은 역할을 한다.

그래서 CA가 서명한 인증서라면 브라우저는 자동으로 서버를 신뢰하게 된다!

HTTPS는 어떻게 동작할까?

앞서 말했다시피 HTTPS는 SSL/TLS라는 보안 프로토콜을 사용하는데,
SSL란 초기 암호화 프로토콜로 설명할 수 있다. 현재는 거의 사용하지 않는 프로토콜이다.
TLS는 SSL을 개선한 ⌜최신 표준 보안 프로토콜⌟로, 실제로 우리가 쓰는 HTTPS는 TLS기반이다!

브라우저가 서버에 접속 -> 서버가 SSL/TLS 인증서 전달 -> 브라우저가 인증서 신뢰 여부 확인 -> 암호화된 통신 시작 🔐


HTTP vs HTTPS 한눈에 비교

지피티가 말아주는


결론적으로, HTTP보다는 보안 + 사용자 신뢰 + 브라우저 정책까지 모두 고려하는 HTTPS를 사용하는 것이 좋다!

마무리.ㅋ

2개의 댓글

comment-user-thumbnail
3일 전

SSL/TLS 인증서는 조작 불가능한가여

1개의 답글