Deep Dives/CS Fundamentals

HTTPS와 SSL 인증서 SSL 동작방법

Jcob.moon 2025. 5. 17. 19:50

생활코딩 https 와 ssl 인증서 수업과 HTTP 완벽가이드 14장 보안 HTTP 를 정리한 내용입니다.
공부자료를 남기기위한 목적입니다

  • HTTP
    인터넷 상에서 정보를 주고 받기위한 프로토콜(양식과 규칙의 체계)
    클라이언트와 서버사이에 이루어지는 요청/응답 프로토콜
    암호화되지 않은 방법으로 데이터를 전송
  • HTTPS
    보안이 강화된 HTTP
    Hypertext Transfer Protocol Over Secure Socket Layer의 약자
    모든 HTTP 요청과 응답 데이터는 네트워크로 보내지기 전에 암호화된다.
    HTTPS는 HTTP의 하부에 SSL과 같은 보안계층을 제공함으로써 동작한다

SSL 디지털 인증서

클라이언트와 서버간의 통신을 공인된 제3자(CA) 업체가 보증해주는 전자화된 문서

SSL 인증서의 장점 및 역할

통신 내용이 노출,변경되는 것을 방지
클라이언트가 접속하려는 서버가 신뢰 할 수 있는 서버인지 확인가능
SSL 통신에 사용할 공개키를 클라이언트에게 제공한다.

SSL에서 사용하는 암호화의 종류

암호: 텍스트를 아무나 읽지 못하도록 인코딩하는 알고리즘
키 : 암호의 동작을 변경하는매개변수,키에 따라서 암호화 결과가 달라지기 떄문에 키를 모르면 복호화가 불가능하다

대칭키 암호화 방식

인코딩과 디코딩에 같은 키를 사용하는 알고리즘
단점 : 단점은 발송자와 수신자가 서로 대화하려면 둘 다 공유키를 가져야 한다는 것이다.
대칭키를 전달하는 과정에서 키가 유출이 되면 암호의 내용을 복호화할 수 있기 때문에 위험하다.
이를 보완하기 위해서 나온 방법이 공개키 암호화 방식이다.

공개키 암호화 방식

주요 특징

  • A키로 암호화한 내용은 B키로만 복호화 가능하고, B키로 암호화한 내용은 A키로만 복호화 가능
  • 공개키(인코딩 키)는 누구나 접근 가능하며 디지털 인증서에 포함됨
  • 비밀키(디코딩 키)는 소유자만 접근 가능

장점

  • 누구나 공개키로 메시지를 암호화할 수 있지만, 복호화는 비밀키 소유자만 가능
  • 안전한 메시지 전송 가능

단점

  • 계산 속도가 느린 경향이 있음

전자 서명 기능

  • 비밀키로 정보를 암호화하면 공개키로 복호화 가능
  • 공개키로 복호화가 가능하다는 것은 해당 비밀키 소유자가 암호화했다는 증거
  • 메시지 작성자 확인 및 위조 방지에 활용
  • SSL 인증서에서 서비스 보증 방법으로 활용

CA ( Certificate Authority )

디지털 인증서를 제공하는 공인된 기업( Certificate Authority 혹은 Root Certificate )
대표적인 CA 서비스 제공기업과 시장 점유율

  • Symantec (VeriSign, Thawte, Geotrust) with 42.9% market share
  • Comodo with 26%
  • GoDaddy with 14%
  • GlobalSign with 7.7%

SSL 인증서의 서비스 보증방법 및 동작방법

인증서 내용

인증서의 내용은 CA의 비공개 키를 이용해서 암호화 되어 웹브라우저에게 제공된다.
서비스 정보(인증서 발급자,CA의 디지털 서명,서비스 도메인)
서버측 공개키

SSL 인증서의 서비스 보증방법

웹브라우저가 서버에 접속하면 서버는 제일 먼저 인증서를 제공한다.

  • 브라우저는 인증서를 발급한 CA가 자신이 갖고있는 CA 리스트에 있는지 확인한다.
  • 리스트에 있다면 해당 CA의 공개키를 이용해서 인증서를 복호화 한다.
  • 인증서를 복호화 할 수 있다는 것은 이 인증서가 CA의 비공개키에 의해서 암호화 된것을 의미한다.즉 데이터를 제공한 사람의 신원을 보장해주게 되는 것이다

SSL 동작방법

공개키 암호 방식은 알고리즘 계산방식이 느린 경향이 있다.
따라서 SSL은 암호화된 데이터를 전송하기 위해서 공개키와 대칭키 암호화 방식을 혼합하여 사용한다.

안전한 의사소통 채널을 수립할 때는 공개키 암호를 사용하고, 이렇게 만들어진 안전한 채널을 통해서 임시의 무작위 대칭키를 생성 및 교환한다.해당 대칭키는 나머지 데이터 암호화에 활용한다.

실제 데이터 암호화 방식 : 대칭키
상기 대칭키를 서로 공유하기 위한 암호화 방식 : 공개키

SSL 통신과정

컴퓨터와 컴퓨터가 네트워크를 통해서 통신 할 때 핸드쉐이크 -> 세션 -> 세션종료의 과정을 거친다.
암호화된 HTTP 메세지를 교환하기 전에 클라이언트와 서버는 SSL핸드쉐이크를 진행한다.

  • 핸드쉐이크의 목적은 아래와 같다.
    프로토콜 버전번호 교환
    양쪽이 알고 있는 pre master secret 키 생성 및 교환
    양쪽의 신원 인증
    채널을 암호화 하기 위한 임시 세션 키 생성
    SSL 통신과정을 간단하게 도식화 하면 아래와 같다.