SSL 인증서 설명: 암호화, 공격, 그리고 HTTPS가 웹을 보호하는 방법 깊이 파헤치기 🔐

발행: (2026년 2월 28일 오후 03:56 GMT+9)
7 분 소요
원문: Dev.to

Source: Dev.to

왜 SSL/TLS가 필요한가

웹사이트를 열고 브라우저에 🔒 자물쇠 아이콘이 보일 때, 여러분은 인터넷에서 가장 중요한 보안 기술 중 하나인 SSL/TLS를 이용하고 있는 것입니다.

초기 인터넷은 정보를 공유하도록 설계되었으며, 보호하도록 설계되지 않았습니다. HTTP와 같은 프로토콜은 데이터를 평문으로 전송했습니다:

POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded

username=jack&password=123456

동일한 네트워크(와이‑파이, ISP, 라우터)에 있는 누구든 이 요청을 읽을 수 있었으며, 그 결과:

  • 데이터 도난
  • 계정 탈취
  • 신원 사기

핵심 문제: 불안정한 네트워크에서 두 당사자가 어떻게 안전하게 통신할 수 있을까?

대칭 암호화

대칭 암호화는 암호화와 복호화에 동일한 비밀 키를 사용합니다.

Plain Text ──(Secret Key)──► Encrypted Data
Encrypted Data ──(Same Secret Key)──► Plain Text
  • 알고리즘: AES, ChaCha20 (DES는 현재 보안에 취약한 것으로 간주됩니다)
  • 특징: 간단한 수학 연산, 대용량 데이터에 매우 효율적이며 실제 웹사이트 트래픽을 암호화하는 데 사용됩니다.

도전 과제: 클라이언트와 서버가 비밀 키에 어떻게 합의하나요? 인터넷을 통해 키를 전송하면 공격자에게 노출될 수 있으므로, 대칭 암호화만으로는 충분하지 않습니다.

비대칭 암호화

비대칭 암호화는 한 쌍의 키를 사용합니다:

  • Public Key: 모두와 공유
  • Private Key: 비밀 유지
Data encrypted with Public Key ──► Decrypted with Private Key

누구나 공개키를 사용해 데이터를 암호화할 수 있지만, 개인키를 가진 사람만이 복호화할 수 있습니다. 이는 안전한 키 교환 문제를 해결합니다.

  • Algorithms: RSA, ECC (Elliptic Curve Cryptography)
  • Characteristics: 보안된 키 공유가 가능하지만 연산 비용이 많이 들고 속도가 느려 대량 데이터를 암호화하기에는 부적합합니다.

Source:

대칭 암호와 비대칭 암호 결합: SSL/TLS 핸드쉐이크

SSL(현재는 TLS)은 대칭 암호의 빠른 속도와 비대칭 암호의 안전한 키 교환을 결합합니다.

핸드쉐이크 개요

  1. Client Hello – 브라우저가 전송:

    • 지원하는 TLS 버전
    • 지원하는 암호 스위트
    • 랜덤 숫자
  2. Server Hello – 서버가 응답:

    • SSL 인증서(도메인 이름, 공개 키, CA 서명, 만료 날짜 포함)
    • 선택된 암호 스위트
    • 또 다른 랜덤 숫자
  3. Verification – 브라우저:

    • CA 서명을 검증
    • 도메인 이름과 만료 날짜를 확인
    • 검증에 실패하면 연결을 차단(MITM 공격 방지)
  4. Key Exchange – 브라우저:

    • 대칭 세션 키를 생성
    • 서버의 공개 키로 암호화
    • 서버에 전송
  5. Secure Communication – 양쪽 모두 동일한 비밀 키를 공유하고, 이후 모든 데이터에 빠른 대칭 암호를 사용합니다.

SSL 인증서 필수 요소

SSL 인증서는 디지털 서명된 문서로, 다음을 포함합니다:

필드설명
도메인 이름예: example.com
서버의 공개 키세션 키를 암호화하는 데 사용
CA 서명인증서의 진위 확인 (예: Let’s Encrypt, DigiCert, GlobalSign, Cloudflare)
만료 날짜인증서 유효 기간을 결정

SSL/TLS의 보안 이점

암호화 유형목적
비대칭안전한 키 교환
대칭빠른 데이터 암호화

SSL/TLS는 다음을 제공합니다:

  • 암호화: 전송 중인 데이터를 보호합니다.
  • 인증: 서버 신원을 확인하여 사칭을 방지합니다.
  • 무결성: 전송된 데이터의 변조를 감지합니다.

이러한 보호는 다음과 같은 공격을 완화합니다:

  • 중간자 공격 (MITM)
  • 패킷 스니핑
  • 자격 증명 도난
  • 데이터 변조
  • 세션 하이재킹

현대 브라우저는 다음을 통해 보안을 강화합니다:

  • HTTP를 “Not Secure”로 표시
  • 보안이 취약한 쿠키 차단
  • 많은 API에 대해 HTTPS 강제 적용

요약

SSL/TLS는 단순히 인증서가 아니라, 신중하게 설계된 시스템으로:

  • 키 교환을 안전하게 해결한다
  • 서버의 사칭을 방지한다
  • 적대적인 네트워크에서 데이터를 보호한다

SSL/TLS 작동 방식을 이해하면 백엔드 엔지니어로서 더 나은 역량을 갖추게 되며, 구축하는 서비스가 설계 단계부터 보안이 확보됩니다.

0 조회
Back to Blog

관련 글

더 보기 »

Google 양자 내성 HTTPS

배경: 익명의 독자가 Ars Technica의 보고서를 인용합니다. 구글은 금요일에 Chrome 브라우저가 HTTPS 인증서를 보호하기 위한 계획을 발표했습니다…