Skip to content

09. HTTPS와 웹서비스 보안


학습 목표

  1. HTTPS = HTTP + SSL/TLS임을 설명할 수 있다.
  2. HTTPS 통신의 전체 흐름을 순서대로 그릴 수 있다.
  3. 웹 서비스 구조에서 인증서 설치 위치의 중요성을 이해한다.
  4. DMZ, WAF, 웹서버, WAS, DB의 계층 구조를 파악한다.
  5. 공인 인증서와 민간 인증서의 차이를 설명할 수 있다.

전체 구조


1. HTTPS란?

HTTP + SSL/TLS = HTTPS

항목HTTPHTTPS
암호화없음 (평문)있음 (SSL/TLS)
인증서없음있음 (X.509)
포트80443
도청 가능가능불가능 (암호화)
MITM취약인증서로 방어

SSL(Secure Sockets Layer)은 오래된 이름이고, 현재는 **TLS(Transport Layer Security)**가 표준이다. 하지만 관습적으로 "SSL 인증서"라는 표현을 계속 사용한다.


2. HTTPS 통신 전체 흐름

지금까지 배운 모든 것이 합쳐진 최종 흐름이다.

단계별 요약

핵심: 비대칭키는 검증과 키 교환에만 사용하고, 실제 데이터는 **대칭키(세션 키)**로 암호화한다. 이것이 하이브리드 암호의 실전 적용이다.


3. 웹 서비스 구조와 인증서 설치 위치

일반적인 웹 서비스 계층 구조

용어 설명

구성 요소설명
DMZ비무장지대. 외부에 노출되지만 내부망과 분리된 영역
WAFWeb Application Firewall. 웹 공격을 차단하는 방화벽
웹서버정적 파일 제공 (Nginx, Apache)
WAS애플리케이션 로직 처리 (Tomcat, Node.js)
DB데이터 저장소

인증서는 어디에 설치하는가?

이것이 웹 서비스 보안 분석에서 가장 중요한 질문이다.

인증서 설치 위치에 따라 암호화 구간이 달라진다.

설치 위치암호화 구간내부 통신
WAF에 설치PC ↔ WAFWAF ↔ 웹서버: 평문 가능
웹서버에 설치PC ↔ 웹서버웹서버 ↔ WAS: 평문
WAF + 웹서버PC ↔ WAF, WAF ↔ 웹서버내부까지 암호화

실무 팁: SSL 인증서가 어디에 설치되어 있는지를 찾으면, 웹 서비스의 보안 구조를 빠르게 파악할 수 있다.

TLS Termination

인증서가 설치된 곳에서 TLS가 종료(termination)된다. 그 뒤는 평문 통신일 수도 있다.


4. 공인 인증서와 민간 인증서

한국의 인증 생태계 변화

과거에는 공공기관만 CA 역할을 할 수 있었다. 법 개정 이후 민간 기업도 CA가 될 수 있게 되었다.

은행 인증서의 작동 원리

우리은행과 KB국민은행이 같은 CA를 사용하므로, 한 은행에서 발급받은 인증서를 다른 은행에서도 사용할 수 있다.

공인 vs 민간 비교

항목공인 인증서민간 인증서
CA국가 기관민간 기업
예시공인인증서카카오, 네이버, 은행 인증서
목적본인 확인, 법적 효력본인 확인, 편의성
저장PC, USB에 파일로 저장앱, 클라우드

개인 인증서에 저장되는 것

개인에게 발급되는 인증서의 목적은 **암호화 통신이 아니라 본인 확인(인증)**이다.


5. SSL 인증서 확인하기

브라우저에서 HTTPS 사이트에 접속하면 인증서를 확인할 수 있다.

인증서에서 확인할 수 있는 정보:

  • 서명 알고리즘: SHA256 (해시) + RSA (비대칭키) → 지금까지 배운 것!
  • 공개키: 서버의 공개키 (ECC 또는 RSA)
  • 발급자: CA 이름
  • 유효기간: 인증서의 수명

핵심 암기 포인트

HTTPS: HTTP + SSL/TLS. 암호화 통신 + 인증서 기반 검증.

통신 흐름: TCP 연결 → TLS 핸드셰이크(인증서 전달) → 인증서 검증 → 세션 키 교환 → 대칭키 통신.

인증서 설치 위치: WAF 또는 웹서버. 설치 위치 = TLS termination 지점 = 암호화 구간 결정.

DMZ: 외부에 노출되는 영역. WAF를 여기에 배치.

공인 vs 민간: 과거 국가 기관만 CA → 현재 민간 기업도 CA 가능.

개인 인증서: X.509 인증서 + 개인키 세트. 목적은 본인 확인(인증).


확인 질문

  1. HTTPS에서 비대칭키와 대칭키 각각 어느 단계에서 사용되는가?
  2. TLS Termination이란 무엇이며, 왜 인증서 설치 위치와 관련이 있는가?
  3. WAF에 인증서를 설치하면 내부 구간(WAF↔웹서버)의 통신은 어떤 상태인가?
  4. 우리은행에서 발급받은 인증서를 KB국민은행에서 사용할 수 있는 이유는?
  5. 브라우저에서 SSL 인증서를 열었을 때 "SHA256withRSA"라고 적혀 있다면, 이것은 무엇을 의미하는가?