컴퓨터 사이언스/네트워크

[HTTP와 HTTPS] 보안이 필요한 이유와 프로토콜의 차이

Dachaes 2025. 4. 13. 17:15
728x90
반응형
728x90

HTTP와 HTTPS 

브라우저 주소창을 보면 어떤 웹사이트는 http:// 로 시작하고, 어떤 곳은 https:// 로 시작합니다. 둘 다 웹 페이지를 여는 데 사용되지만, 실제로는 웹의 보안성과 신뢰성에 매우 큰 차이가 있습니다.

이 글에서는 HTTP와 HTTPS의 구조적 차이, 왜 HTTPS를 써야 하는지, 그리고 SSL/TLS와 인증서의 역할까지 자세히 설명합니다.

 


1.  HTTP란?

HTTP (HyperText Transfer Protocol) 는 웹에서 클라이언트(브라우저)와 서버가 문서, 이미지, 데이터 등을 주고받기 위한 표준 프로토콜입니다.
가장 큰 특징은 텍스트 기반이며, 암호화되지 않은 상태로 데이터를 주고받는다는 점입니다.

예시 : HTTP 요청

GET /login HTTP/1.1
Host: example.com
  • 이런 요청은 누구나 중간에서 가로채면 읽을 수 있습니다. 즉, 로그인 정보, 쿠키, 세션 ID 같은 민감한 데이터가 노출될 수 있는 구조입니다.

 


2.  HTTPS란?

HTTPS (HyperText Transfer Protocol Secure) 는 HTTP에 보안 계층(SSL/TLS)을 추가한 프로토콜입니다.
데이터를 주고받기 전에 암호화 과정을 거치므로, 통신 내용을 외부에서 볼 수 없습니다.

핵심 구성

  • HTTP + TLS(Transport Layer Security) = HTTPS
  • 데이터를 암호화, 무결성 보장, 서버 인증까지 수행

 


3.  HTTP와 HTTPS 비교 표

항목 HTTP HTTPS
보안 없음 SSL/TLS로 암호화됨
포트 번호 기본 80번 기본 443번
속도 약간 빠름 (암호화 없음) 약간 느림 (초기 핸드셰이크 필요)
인증서 필요 필요 없음 SSL 인증서 필요
주소창 표시 http:// https:// + 자물쇠 아이콘
사용 권장 여부 사용 지양 전면 사용 권장

 


4.  HTTPS의 핵심 기술 : SSL/TLS

HTTPS의 기반이 되는 보안 프로토콜로, 클라이언트와 서버 간 통신을 암호화하고 무결성과 인증을 제공합니다.

TLS란?

  • TLS (Transport Layer Security) 는 이전 SSL의 발전 버전입니다.
  • 브라우저와 서버 간 데이터를 암호화하여 제3자가 볼 수 없게 합니다.
  • 또한, 데이터가 중간에 위조되지 않았는지 확인도 가능합니다.

인증서 역할

  • HTTPS를 사용하려면 공인된 인증기관(CA)에서 SSL 인증서를 발급받아야 합니다.
  • 이 인증서는 사용자가 접속한 서버가 진짜인지 확인해주는 역할을 합니다.
  • 인증서가 유효하면 브라우저에 자물쇠 아이콘이 나타납니다.

HTTPS가 중요한 이유

  1. 로그인 정보 보호
    • HTTP에서는 아이디, 비밀번호가 평문(Plain Text)으로 전송되므로 탈취 위험이 큽니다.
  2. 세션 하이재킹 방지
    • HTTPS는 쿠키, 세션 토큰을 암호화된 채널로 전송하므로, 중간자 공격(MITM)을 방지합니다.
  3. SEO 가산점
    • 구글은 HTTPS 사이트에 검색 순위 우선권을 줍니다.
  4. 사용자 신뢰도 상승
    • 브라우저가 HTTPS가 아닌 사이트에 "보안되지 않음" 경고를 표시하므로 신뢰에 큰 영향을 줍니다.

예시 - Express 서버에 HTTPS 적용

const https = require('https');
const fs = require('fs');
const express = require('express');

const app = express();

const options = {
  key: fs.readFileSync('./key.pem'),
  cert: fs.readFileSync('./cert.pem')
};

app.get('/', (req, res) => {
  res.send('Hello HTTPS!');
});

https.createServer(options, app).listen(443, () => {
  console.log('HTTPS server running on port 443');
});
  • 위 코드는 로컬에서 테스트용으로 사용할 수 있으며, 실제 배포 시에는 공인된 인증서를 사용해야 합니다.

 


5.  마무리

HTTPS는 선택이 아닌 필수

  • HTTP는 암호화되지 않아 보안 위협에 노출됩니다.
  • HTTPS는 TLS를 통해 암호화, 무결성, 인증을 제공합니다.
  • 인증서와 암호화 기술을 통해 신뢰성과 보안성이 보장됩니다.
  • 오늘날 웹 서비스라면 반드시 HTTPS를 적용해야 합니다.

함께 보면 좋은 자료

외부 사이트 : 

블로그 글 :

 

[OSI 7계층과 TCP/IP 4계층] 네트워크의 설계도

OSI 7계층과 TCP/IP 4계층 네트워크 통신이 어떻게 이루어지는지를 체계적으로 설명하기 위해 등장한 개념이 바로 OSI 7계층 모델과 TCP/IP 4계층 모델입니다. 이 글에서는 각 계층의 역할과 주요 프

dachaes-devlogs.tistory.com

 

[프로토콜] 컴퓨터 세상에서의 약속과 규칙

프로토콜(Protocol) 인터넷은 어떻게 서로 다른 컴퓨터끼리 정보를 주고받을 수 있을까요? 브라우저에서 주소를 입력하면 어떻게 웹사이트가 열릴까요? 그 모든 과정의 중심에는 바로 **프로토콜(

dachaes-devlogs.tistory.com

 

[TCP와 UDP] 데이터 전송의 두 축

TCP(Transmission Control Protocol) 와 UDP(User Datagram Protocol) 웹 브라우저로 웹사이트를 열든, 화상 회의를 하든, 온라인 게임을 하든 인터넷에서 데이터가 전송되는 방식에는 반드시 전송 계층 프로토콜

dachaes-devlogs.tistory.com

 


반응형

 

반응형