포스트

06.SSL 기반의 인증

SSL 인증

SSL 인증서란?

  • 인터넷 상에서 웹브라우저(client)와 웹서버(server)간의 데이터를 안전하게 주고 받기 위해서 서로 암호화하여 통신한다.
  • SSL 인증서는 SSL기반하에서 사용자의 웹브라우저와 인터넷 사이트의 웹서버간 암호화 통신을 가능하게 하는 제3의 신뢰기관이 인증한 인증서를 말한다.
  • SSL(Secure Socket Layer)은 웹브라우저와 서버간 암호화 통신을 위한 프로토콜
  • SSL 인증서에는 웹서버의 공개키가 포함되어 있다.
  • 사용자는 서버와 암호화 통신을 위해 필요한 사용자 PC에서 생성한 세션키(암호화키, 대칭키)를 SSL 인증서에 포함된 웹서버의 공개키를 이용해 암호화해서 웹서버에 전달한다.
  • SSL 인증서에는 웹서버의 공개키 외에도 사이트 정보 및 소유자 정보 등 다양한 정보가 포함되어 있다

SSL 인증서의 기능

  1. 정보 유출 방지
    • 표준 암호화 기법을 사용하여 전송자의 메시지를 안전하게 전송
  2. 기업 실체성 확인
    • 인증서 발급 대상 기관에 대해 기업 신용 평가 정보를 확인한다
    • 사용자가 육안으로 확인할 수 있도록 녹색바 인증서 발급한다(COMODO EV SSL 상품)

SSL 인증서의 암호화키(세션키, 대칭키) 전달 방법

  • 서버와 클라이언트간 암호화 통신을 수행하기 위해 암호화키(대칭키)를 이용할 수 있지만, 문제는 암호화키(대칭키)를 어떻게 전달하느냐 이다.
  1. 공개키 방식 암호화
    • 암호화키를 상대방에게 전달할 필요가 없는 암호화 방법
1
2
3
4
공개키 방식
암호화키를 상대방에게 전달할 필요가 없도록 하는 방법
수학적 방법으로 생성된 서로 다른 한 쌍의 암호화키를 만드는데, 하나는 암호화를 하고 다를 하나로 복호화를 할 수 있다.
이중 본인만 사용하는 키를 개인키라고 하며, 공개해도 되는 키를 공개키라고 한다
  • 통신 상대방(클라이언트와 서버)은 서로에게 자신의 개인키와 쌍을 이루는 공개키를 상호 교환 후
  • 서버가 사용자의 공개키로 메시지를 암호화해서 사용자에게 보내면 사용자는 개인키를 사용하여 메시지를 해독
  • 이 과정에서 서버의 개인키는 사용자에게 전송되지 않고, 제 3자가 암호화된 메시지를 탈취하더라도 서버의 공개키만으로는 메시지를 복호화 할 수 없다
  • 단점
  • 복잡한 암호화 및 복호화 과정으로 인한 시간과 자원(컴퓨터)이 많이 소요된다
  1. 공개키 방식은 암호키 전달에만 사용
    • 대칭키를 보내는 용도로만 공개키를 사용하는 것
    • 암호화 통신을 위해 대칭키를 사용하되, 대칭키를 안전하게 전달하는 방법으로 공개키 방식을 사용하자는 것
    • 이것이 SSL의 작동원리이며, 표준 보안 방식인 SSL이다

SSL 인증서의 신뢰성

  • 사용자의 웹브라우저가 웹서버에 접속하여 암호화 통신을 시도할 경우
  • 사용자는 웹서버로부터 공개키를 전달받게 된다.
  • 사용자는 코보도와 같은 제3의 인증기관을 통해 전달받은 공개키에 대한 검증 문제를 해결한다
1
2
3
인증기관에 제출하는 정보
- 공개키 소유자의 이메일 주소, 소유자의 이름, 소유자의 실체를 입증할 수 있는 서류 등
- 통상적으로 도메인명, 영문 사업자등록증, 공인된 제3자를 통해 수집할 수 있는 인증 전화 번호
  • 제3의 인증기관(코모도 등)은 인터넷 사이트가 제출한 정보에 대해 사이트 정보의 검증은 물론 CSR값을 기관의 공개키 검증을 통해 인증서를 발급해 주는데 이것이 SSL 인증서이다.
  • 인증기관(코모도)는 사용자의 웹브라우저에게 자신의 공개키를 제공한다

SSL 인증 프로세스

  1. 사용자가 웹브라우저로 웹서버에 접속
  2. 웹서버는 제3의 인증기관으로부터 받은 자신의 SSL 인증서를 사용자에게 전달
  3. 사용자는 인증기관의 공개키로 서버가 제공한 SSL 인증서의 신뢰성을 검증
  4. 사용자는 자신이 임의로 생성한 대칭키(암호화키)를 사이트 공개키를 이용해 암호화한 후 웹서버에 전달
  5. 웹서버는 사용자가 자신(서버)의 공개키로 암호화하여 전달한 대칭키를 자신의 개인키로 복호화
  6. 사용자와 웹서버는 사용자가 생성하여 웹서버에 전달한 대칭키를 이용하여 암호화 통신
참고사이트

윤코치의 특별한 상식-SSL 인증서의 모든 것