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. 서버 인증서 설치
. 사용하는 인증처에 따라 중간 인증서도 함께 설치해야 하는 경우도 있다. 중간 인증서란 중간 인증처가 발행한 인증서이다.
'Development > Background Knowledge' 카테고리의 다른 글
[AWS] EC2에 있는 Ubuntu 서버에 FTP Server 설치 하기 (2) | 2014.02.12 |
---|---|
[AWS] EC2 Instance에 key-pair 없이 로그인 하기(Ubuntu) (0) | 2014.02.11 |
[번역] THE COMPLETE GUIDE TO CENTERING A DIV (0) | 2014.02.04 |
XMPP 이해하기 (1) | 2014.01.28 |
SSL 프로토콜 (0) | 2014.01.26 |