본문 바로가기
네트워크

HTTPS 와 SSL

by 개발자 포비 2024. 12. 9.

HTTPS와 SSL/TLS

1. HTTPS (Hypertext Transfer Protocol Secure)

개요

  • HTTP에 SSL/TLS를 사용한 보안 강화 버전
  • 서버-브라우저 간 암호화된 통신을 제공
  • HTTP Body를 암호화 (Header는 암호화하지 않음)

장점

  • 데이터 도난/탈취 방지
  • 웹사이트 신뢰도 상승
  • 검색 엔진 최적화(SEO) 가산점
  • 데이터 무결성 보장

2. SSL/TLS (Secure Socket Layer/Transport Layer Security)

개요

  • 서버와 브라우저 간 보안을 위한 프로토콜
  • 공개키/개인키와 대칭키를 혼합하여 사용
  • 현대에는 SSL의 후속 버전인 TLS를 주로 사용

암호화 방식

A. 대칭키 암호화

  • 동일한 키로 암호화/복호화
  • 장점: 빠른 암호화/복호화 속도
  • 단점: 키 공유 시 탈취 위험
    송신자                                     수신자
    A                                         B
    |                                         |
    |           동일한 대칭키 공유            |
    |<---------------------------------------->|
    |                                         |
    |     암호화된 데이터 (대칭키로 암호화)   |
    |---------------------------------------->|
    |                                         |
    |     암호화된 데이터 (대칭키로 복호화)   |
    |<----------------------------------------|
    |                                         |

    B. 공개키/개인키 암호화 (비대칭키)

  • 공개키: 암호화용 (공개)
  • 개인키: 복호화용 (비공개)
  • 장점: 안전한 키 교환
  • 단점: 느린 처리 속도
    송신자                                     수신자
    A                                         B
    |                                         |
    |            B의 공개키 전달              |
    |<----------------------------------------|
    |                                         |
    |    암호화된 데이터 (B의 공개키로 암호화) |
    |---------------------------------------->|
    |                                         |
    |         B의 개인키로 복호화             |
    |                                         |

3. SSL/TLS 통신 과정

A. 기본 SSL 통신

Client (A)                                   Server (B)
   |                                            |
   |----------- (1) 접속 요청 ----------------->|
   |                                            |
   |<---------- (2) 공개키 전달 ----------------|
   |                                             |
   |-- (3) 대칭키를 공개키로 암호화하여 전송 -->|
   |                                             |
   |                    (4) 개인키로 복호화하여 |
   |                        대칭키 획득         |
   |                                             |
   |<-------- (5) 대칭키로 암호화된 통신 ------>|

B. 인증기관(CA)을 통한 SSL 검증 과정

Client              인증기관(CA)                   Server
   |                    |                             |
   |                    |  <-- [1] 인증서 요청 ---    |
   |                    |                             |
   |                    |   --- [2] 인증서 발급 -->   |
   |                    |                             |
   |-- [3] 접속 요청 --------------------------------->|
   |                                                    |
   |<- [4] 인증서 전달 --------------------------------|
   |                                                    |
   |    [5] 브라우저 내장                              |
   |        CA 공개키로                                |
   |        인증서 검증                                |
   |                                                    |
   |-- [6] 대칭키를 서버 공개키로 암호화하여 전송 --->|
   |                                                    |
   |                     [7] 서버 개인키로             |
   |                         대칭키 복호화             |
   |                                                    |
   |<----------- [8] 대칭키로 암호화된 통신 ---------->|

4. SSL/TLS 핵심 특징

  1. 혼합 암호화 시스템
    • 공개키/개인키로 대칭키 안전하게 전달
    • 실제 통신은 빠른 대칭키로 수행
  1. 인증서 기반 신뢰성
  • CA가 발급한 인증서로 서버 신원 보증
  • 브라우저에 내장된 CA 공개키로 검증
  1. 세션 관리
  • 각 연결마다 새로운 세션키(대칭키) 생성
  • 세션 종료시 키 폐기로 보안성 강화

5. 보안 강화 요소

  • 인증서 체인을 통한 다단계 신뢰 구조
  • 세션별 고유 키 사용으로 피해 최소화
  • 주기적인 키 갱신으로 보안성 유지

6. 실제 적용

  • 전자상거래
  • 온라인 뱅킹
  • 개인정보 처리 시스템
  • API 통신
  • 데이터 전송이 필요한 모든 보안 요구 상황

댓글