본문 바로가기
보안 이야기

SSL 인증서와 SSL 인증서 기반 암호화 통신 원리

by Yoon Coach 2016. 8. 12.
반응형

SSL 인증서와 SSL 인증서 기반 암호화 통신 원리

[SSL과 SSL 인증서]

인터넷 상에서 고객 웹브라우저(Client)와 웹서버(Server)간의 데이터를 안전하게 주고 받기 위해서는 서로 암호화하여 통신을 해야 합니다.

SSL(Secure Socket Layer)웹브라우저와 서버간 암호화 통신을 위한 프로토콜이며, SSL 인증서는SSL 기반하에서 웹브라우저와 서버간 암호화 통신을 가능하게 하는 제3의 신뢰기관이 인증한 인증서를 의미합니다.

SSL 인증서는 다음 세가지 기능을 제공합니다.

1. 정보 유출 방지 : “혹시 내 카드 정보가 새어 나가지 않을까?” 

- 표준 암호화 기법을 사용하여 전송자의 메시지를 안전하게 전송합니다.

2. 기업 실체성 확인 : “이 인터넷 쇼핑몰이 돈만 받고 물건을 보내 주지 않으면 어쩌지?”
- 인증서 발급 대상 기관에 대해 실체성 확인 후 발행합니다.
- 기업 실체성 확인 항목 : 사업자등록증, 신청자 전화 확인 114정보

3. 위조사이트 방지(Phishing 방지) : “혹시 이 사이트가 가짜 사이트이면 어떡하지?”
- 인증서 발급 대상 기관에 대해 기업 신용 평가 정보를 확인합니다.
- 사용자가 육안으로 확인할 수 있도록 녹색바 인증서 발급(COMODO EV SSL 상품)

이런 기능적인 사항 외에도 정보통신망 이용촉진 및 정보보호 등에 관한 법률(정보통신망법) 제 28조 제1항에서 SSL 구축을 의무화하고 있어서 웹서비스 제공기관은 SSL 인증서를 발급 받아 SSL 보안서버를 구축해야 합니다.

[암호화 통신 기술]

웹브라우저가 사용자의 개인정보 웹서버에 안전하게 전송하는 원리에 대해 알아보기 위해 메시지 암호화 과정 및 암호화 통신 기술에 대해 살펴 보도록 하겠습니다.

이를 간단하게 생각하면, 웹브라우저메시지를 암호화하고 웹서버에 전송하면, 웹서버암호화키(비밀키)암호화된 메시지해독(복호화)하면 됩니다.

이때 사용하는 암호화키가 바로 대칭키입니다.

[대칭키 암호화]

송신자가 메시지를 암호화하기 위해서 암호화키를 사용하고, 수신자가 이 암호화된 메시지를 복호화할 때도 동일한 암호화키를 사용합니다.

하나의 비밀키로 암호화와 복호화를 동시에 진행하는 것을 대칭키 암호화라고 합니다.

그런데 수신한 암호화된 메시지를 해독하기 위해서 웹서버는 웹브라우저가 사용한 암호화키(비밀키, 대칭키)가 필요한데, 웹브라우저가 웹서버에게 이 암호화키를 어떻게 안전하게 전송하느냐 하는 매우 중요한 문제가 발생합니다.

(최근 현대의 암호기법은 컴퓨터를 통한 복잡한 방법을 사용하므로 메시지 원문을 알아내는 것(해복)은 사실상 불가능하다고 알려져 있습니다.)

아무리 복잡하게 암호화했어도 비밀키 전달과정에서 비밀키가 다른 사람에게 유출된다면 아무 의미가 없기 때문입니다.

웹브라우저가 비밀키를 웹서버에 전달하는 방법으로 USB 등 저장장치에 저장하여 직접 전달하는 방법, 비밀키를 다시 암호화해 온라인으로 전달하는 방법 두 가지를 생각해 볼 수 있습니다.

그런데 첫 번째 방법은 근거리가 아닐 경우 많은 시간이 소요될 수도 있고, USB 등 비밀키 저장장치가 다른 사람에게 잘 못 전달 될 수도 있습니다.

그럼 두 번째 방법은 어떨까요?

사실 이 방법 역시 비밀키를 다시 암호화한 비밀키를 전달해야 하는 문제가 고스란히 남아 있습니다.

그런데 다행스럽게 비밀키를 전달하지 않고서도 메시지를 암호화 전달하는 방법이 만들어졌는데, 이를 비대칭키 암호화 또는 공개키 암호화라고 합니다.

[비대칭키 암호화 or 공개키 암호화]

암호화 통신을 위해 송신자와 수신자각각 2개의 키(키쌍)를 생성하게 되는데, 그 두 개 중 하나는 개인키이고 나머지 하나가 공개키입니다.

여기서 요점은 송신자의 개인키로 암호화하면 송신자의 공개키로만 복호화가 가능하고, 반대로 송신자의 공개키로 암호화하면 송신자의 개인키로만 암호화가 가능하다는 것입니다.

송신자와 수신자가 상대방에게 자신의 공개키를 알려주고 통신을 하게 되는데, 이 과정에서 개인키는 전혀 전송되지 않습니다.

웹브라우저가 웹서버의 공개된 공개키로 전송할 메시지를 암호화하여 전송하면, 웹서버는 자신의 개인키로 웹브라우저가 전송한 암호화된 메시지를 복호화(해독)할 수 있게 되는 것입니다.

[SSL 기반 암호화 통신 원리]

지금까지 웹브라우저와 웹서버의 암호화 통신을 위한 방법에 대한 살펴보았는데요, 이제 본격적으로 SSL 기반의 암호화 통신 원리에 대해 살펴보도록 하겠습니다.

앞에서 설명한 웹브라우저와 웹서버의 암호화 통신을 SSL 인증 기반 암호화 통신에 적용하면 ①암호화 통신을 위한 선행 과정(대칭키 생성 및 안전한 전달), ②웹브라우저가 전송할 메시지를 대칭키로 암호화, ③웹서버가 송신한 암호화된 메시지를 대칭키로 복호화, 이 세가지 과정으로 이루어 집니다.

아래 그림 <SSL Handshaking 과정 및 흐름>은 웹브라우저와 웹서버간 ‘암호화 통신을 위한 선행과정’(Handshaking)인 웹브라우저의 대칭키 생성대칭키 전송과정을 자세히 설명하고 있습니다.

[SSL Handshaking 과정 및 흐름]

Handshaking 과정을 보다 자세히 설명하면 웹브라우저는 웹서버에 접속하여 웹서버의 공개키를 전송 받습니다.

(이 과정에서 웹브라우저는 SSL 인증기관이 웹서버에 발급한 공개키(SSL 인증서), 중개 인증서, 루트 인증서를 웹서버로부터 함께 전송 받습니다.)

그런 후에 웹브라우저는 해당 공개키가 유효한지 인증기관에 검증을 요청하여 검증이 완료되면 웹서버와 암호화 통신을 위해 필요한 대칭키(Session Key)를 생성한 후 웹서버 공개키를 이용하여 대칭키를 암호화하여 서버에 전송하게 됩니다.

요약하여 정리하면,

1) 암호화 통신을 위한 선행 과정1
-
웹서버가 웹서버 공개키 송신
- 웹브라우저가 웹서버 공개키 검증

2) 암호화 통신을 위한 선행 과정2
-
웹브라우저가 대칭키(Session Key) 생성
- 웹브라우저가 웹서버 공개키로 대칭키 암호화
- 웹브라우저가 웹서버에 웹서버 공개키로 암호화한 대칭키 송신
- 웹서버가 웹서버 개인키로 웹서버 공개키로 암호화된 대칭키 복호화(해독)

3) 웹브라우저가 대칭키로 전송할 메시지 암호화 및 전송

4) 웹서버가 대칭키로 수신한 암호화 메시지 복호화

입니다.

여기서 암호화 통신을 위한 선행 과정이 바로 SSL 인증서가 하는 가장 중요한 역할입니다.

이 과정에서 인증기관(ex COMODO)은 웹서버에 SSL 인증서를 발급하고 검증하는 역할을 수행합니다.

SSL 인증서 발급 관련 기술적인 사항은 다른 글에서 소개하도록 하겠습니다.

[COMODO 대한민국 총판]

COMODO SSL 인증서대한민국 총판은 오직 한국정보인증 뿐입니다.

대한민국 제1호 공인인증기관인 한국정보인증은 COMODO SSL 인증서에 대한 Validation을 직접 진행함으로써 업무 시간 내 당일 발급 및 효율성을 증대하고 있습니다.

l COMODO : 1 ~ 2일 소요

l 타사 : 2 ~ 3일 소요

SSL 인증서, 이제 글로벌 No.1 COMODO를 선택하세요,

대한민국 COMODO SOLE 총판이자 공식 파트너인 한국정보인증과 상의하세요.

고객센터 정보

02)360-3065

webmaster@kicassl.com

반응형

댓글