본문 바로가기

Development/Background Knowledge

SSL이란?

1. SSL 이란?

 - 'SSL(Secure Socket Layer)'은 인터넷 통신을 위한 암호화/복호화 프로토콜이다.


2. HTTPS 란?

 - 'HTTPS(HTTP over SSL)'은  서버와 클라이언트 사이의 HTTP 통신을 암호화 하여 사용함을 나타낸다.

 - 브라우져 상에서는 'https://~' url을 사용하고 브라우저 마다 다르지만 앞에 주소 앞에 자물쇠 마크를 표시한다.

   크롬에서의 https


   사파리에서의 https


3. SSL 왜 쓰는가?

 - 도청 : 중요 데이터들이 암호화 되지 않으면 중간에 데이터 노출되는 경우.

  . ssl 암호화 되어 있기 때문에 중간에 노출되어도 복호화 하지 못 한다.

 - 변조 : 목적지에 데이터가 도착하기 전에 중간에 변경을 하는 경우.

  . ssl 에서는 정보가 변조되었는지 확인 하기 위해 데이터 자체에 계산된 다이제스트 값(MD)을 첨부하고 서버에서는 첨부된 값과 데이터 자체에서 계산된 값으로 변조를 확인한다.

 - 위장 : 중요한 정보를 서버로 전송을 해야 하는데 악의적인 해커가 서버인척 데이터를 요청하게 될 경우.

  . ssl로 데이터를 전송하기 전에 서버의 인증서를 확인하여 문제가 없는지 확인한다.


4. SSL 적용대상

 - SSL은 주로 HTTPS로 웹에서 많이 사용되지만 프로토콜 자체는 애플리케이션과 TCP 레이어 사이에서 동작하기 때문에 FTP, SMTP, SSH 등도 모두 사용가능하다.

(출처) http://www.asafety.fr/tag/ssl/


5. 인증서

 - SSL은 '브라우저', '서버', '인증처(CA, Cetificate Authority)' 3가지의 상호작용으로 만들어진다.

 - 서버의 신뢰관계를 증명하기 위해서 인증서가 사용되기 때문에 SSL에서 인증서는 필수적이다.

  a. 키의 작성

   . SSL서버에서 비밀키와 공개키 한 쌍을 만든다. 이 키들은 쌍으로 구성되며 공개키로 암호화 한것은 비밀키로 복원할 수 있다. 공개키는 말 그대로 공개되어도 문제가 없는 키이며 비밀키는 확실하게 관리가 되어야 한다.

  b. 서버 인증서 요구

   . 공개키나 사이트의 정보를 CSR(Certificates Signing Reqeust)이라고 하는 랜덤 문자열로 변경하여 인증처에 인증서 발행을 요청한다.

   . 요청시에는 공개키의 길이도 지정하는데 1,024가 주류였지만 2,048비트로 변경하는 추세이다. 하지만 그 만큼 서버의 성능이 뒷받침 되어야 한다.


항목 

내용 

예 

 일반 이름

 웹 서버 URL 

 www.local.com

 조직명

 사이트를 운영하는 조직의 정식 영문 명칭 

 Local Korea K.K 

 부서명

 사이트를 운영하는 부서의 명칭 

 Information Security Section

 행정명1

 사이트를 운영하는 조직의 소재지 

 Inchonsi 

 행정명2 

 사이트를 운영하는 조직의 소재지 

 Suwonsi 

 국가 코드  

 국가 코드 

 KR 

  










c. 인증처 심의

   . CSR을 접수한 인증처에서 요청한 쪽을 심의하고 통과하면 인증처의 서명이 추가된 서버 인증서를 발행해 주며, 그 인증서 또한 랜덤 문자열이다.

  d. 서버 인증서 설치

   . 사용하는 인증처에 따라 중간 인증서도 함께 설치해야 하는 경우도 있다. 중간 인증서란 중간 인증처가 발행한 인증서이다.