Gidhub BE Developer

[공개 서버의 기본] SSL을 지원하는 기술

2018-08-10
goodGid

SSL을 지원하는 기술

  • SSL은 디지털 증명서로 통신 상대가 진짜인지 아닌지를 확인한다.

  • 따라서 SSL서버에는 반드시 디지털 증명서를 인스톨해야 한다.

증명서를 인스톨하는 절차

1. 관리자는 서버 SW에서 비밀키와 공개키를 작성 후 공개키를 CSR과 인증국이라는 제 3의 기관에 제출하고, 비밀키는 소중히 보관한다.

2. 인증국은 여신 판단 후 CSR에 "당신은 진짜입니다"라는 "디지털 서명"을 찍어 "디지털 증명서"로서 관리자에게 반환한다.

3. 관리자는 인증국으로부터 받은 디지털 증명서를 서버에 인스톨한다.

4. 디지털 증명서를 인스톨했다면 SSL 서버로서 작동하게 되어 클라이언트의 SSL 서비스 요청을 받을 수 있다.

CSR : Certificate Signing Request, 증명서 서명 요청
인증국 : CA국

SSL로 암호화할 때의 흐름

1. 서버는 클라이언트가 요청해 오면 "공개키"와 디지털 서명을 포함한 "디지털 증명서"를 반환한다.

2. 클라이언트는 디지털 서명을 보고 "디지털 증명서"가 올바른 것인지 체크한다.

3. 올바르다면 공통키의 재료를 "공개키"로 암호화하여 서버에게 보낸다. 
   올바르지 않다면 오류를 반환한다.

4. 서버는 보내져 온 데이터를 자신의 "비밀키"로 복호화하고 공통키의 재료를 꺼낸다.

--> 여기까지의 처리를 "SSL 핸드쉐이크"라고 한다.

5. 클라이언트와 서버는 공통키의 재료로부터 "공통키"를 만들어 이후는 그것을 이용하여 암호화 통신을 수행한다.


Recommend

Index