06.SSL 기반의 인증
SSL 인증
SSL 인증서란?
- 인터넷 상에서 웹브라우저(client)와 웹서버(server)간의 데이터를 안전하게 주고 받기 위해서 서로 암호화하여 통신한다.
- SSL 인증서는 SSL기반하에서 사용자의 웹브라우저와 인터넷 사이트의 웹서버간 암호화 통신을 가능하게 하는 제3의 신뢰기관이 인증한 인증서를 말한다.
- SSL(Secure Socket Layer)은 웹브라우저와 서버간 암호화 통신을 위한 프로토콜
- SSL 인증서에는 웹서버의 공개키가 포함되어 있다.
- 사용자는 서버와 암호화 통신을 위해 필요한 사용자 PC에서 생성한 세션키(암호화키, 대칭키)를 SSL 인증서에 포함된 웹서버의 공개키를 이용해 암호화해서 웹서버에 전달한다.
- SSL 인증서에는 웹서버의 공개키 외에도 사이트 정보 및 소유자 정보 등 다양한 정보가 포함되어 있다
SSL 인증서의 기능
- 정보 유출 방지
- 표준 암호화 기법을 사용하여 전송자의 메시지를 안전하게 전송
- 기업 실체성 확인
- 인증서 발급 대상 기관에 대해 기업 신용 평가 정보를 확인한다
- 사용자가 육안으로 확인할 수 있도록 녹색바 인증서 발급한다(COMODO EV SSL 상품)
SSL 인증서의 암호화키(세션키, 대칭키) 전달 방법
- 서버와 클라이언트간 암호화 통신을 수행하기 위해 암호화키(대칭키)를 이용할 수 있지만, 문제는 암호화키(대칭키)를 어떻게 전달하느냐 이다.
- 공개키 방식 암호화
- 암호화키를 상대방에게 전달할 필요가 없는 암호화 방법
1
2
3
4
공개키 방식
암호화키를 상대방에게 전달할 필요가 없도록 하는 방법
수학적 방법으로 생성된 서로 다른 한 쌍의 암호화키를 만드는데, 하나는 암호화를 하고 다를 하나로 복호화를 할 수 있다.
이중 본인만 사용하는 키를 개인키라고 하며, 공개해도 되는 키를 공개키라고 한다
- 통신 상대방(클라이언트와 서버)은 서로에게 자신의 개인키와 쌍을 이루는 공개키를 상호 교환 후
- 서버가 사용자의 공개키로 메시지를 암호화해서 사용자에게 보내면 사용자는 개인키를 사용하여 메시지를 해독
- 이 과정에서 서버의 개인키는 사용자에게 전송되지 않고, 제 3자가 암호화된 메시지를 탈취하더라도 서버의 공개키만으로는 메시지를 복호화 할 수 없다
- 단점
- 복잡한 암호화 및 복호화 과정으로 인한 시간과 자원(컴퓨터)이 많이 소요된다
- 공개키 방식은 암호키 전달에만 사용
- 대칭키를 보내는 용도로만 공개키를 사용하는 것
- 암호화 통신을 위해 대칭키를 사용하되, 대칭키를 안전하게 전달하는 방법으로 공개키 방식을 사용하자는 것
- 이것이 SSL의 작동원리이며, 표준 보안 방식인 SSL이다
SSL 인증서의 신뢰성
- 사용자의 웹브라우저가 웹서버에 접속하여 암호화 통신을 시도할 경우
- 사용자는 웹서버로부터 공개키를 전달받게 된다.
- 사용자는 코보도와 같은 제3의 인증기관을 통해 전달받은 공개키에 대한 검증 문제를 해결한다
1
2
3
인증기관에 제출하는 정보
- 공개키 소유자의 이메일 주소, 소유자의 이름, 소유자의 실체를 입증할 수 있는 서류 등
- 통상적으로 도메인명, 영문 사업자등록증, 공인된 제3자를 통해 수집할 수 있는 인증 전화 번호
- 제3의 인증기관(코모도 등)은 인터넷 사이트가 제출한 정보에 대해 사이트 정보의 검증은 물론 CSR값을 기관의 공개키 검증을 통해 인증서를 발급해 주는데 이것이 SSL 인증서이다.
- 인증기관(코모도)는 사용자의 웹브라우저에게 자신의 공개키를 제공한다
SSL 인증 프로세스
- 사용자가 웹브라우저로 웹서버에 접속
- 웹서버는 제3의 인증기관으로부터 받은 자신의 SSL 인증서를 사용자에게 전달
- 사용자는 인증기관의 공개키로 서버가 제공한 SSL 인증서의 신뢰성을 검증
- 사용자는 자신이 임의로 생성한 대칭키(암호화키)를 사이트 공개키를 이용해 암호화한 후 웹서버에 전달
- 웹서버는 사용자가 자신(서버)의 공개키로 암호화하여 전달한 대칭키를 자신의 개인키로 복호화
- 사용자와 웹서버는 사용자가 생성하여 웹서버에 전달한 대칭키를 이용하여 암호화 통신