본문 바로가기
기타_/알쓸신잡

[알쓸신잡] SSL(Secure Soket Layer)의 모든 것

by 낭람_ 2020. 1. 1.
반응형

[SSL]


SSL(Secure Soket Layer)

- port : 443

- https:// 사용

- 공개키/개인키 대칭키 기반

- SSL(Secure Soket Layer)과 TLS(Transport Layer Security Protocol)는 같은 말이다

- NetScape 사에서 개발한 인터넷과 같은 개방 환경에서 Client와 Server 사이의 안전한 통신을 위해 개발


개인키/공개키 (Private Key/Public Key) 

- 하나의 키로 암호화하고 나머지 다른 하나로 복호화 할 수 있도록 되어있다.

- 즉, 하나의 키를 개인적으로 보관하고(Private Key), 나머지 키를 다른사람들에게 공개적으로 보낸다(Public key).

- 이러면 다른 사람들이 나에게 보낼때, 공개키로 암호화를 하면 나는 개인 키로 복호화 하여 볼 수 있다.


SSL 인증 과정

- [클라이언트] SSL로 암호화된 페이지를 요청한다. (https://)

- [서버] Public key(공개키)를 인증서와 함께 전송한다.

- [클라이언트] 인증서가 CA로 부터 서명된 것인지 확인

*CA(Certificate Authority) : 인증기관

- [클라이언트] Public key를 사용해서 랜덤 대칭 암호화키를 비롯한 URL, http 데이터들을 암호화해서 전송

- [서버] Private Key(개인키)를 이용해서 랜덤 대칭 암호화키와 URL, http 데이터를 복호화

- [서버] 요청받은 URL에 대한 응답을 클라이언트로 부터 받은 랜덤 대칭 암호화키를 이용하여 암호화해서 클라이언트로 전송

- [클라이언트] 대칭 키를 이용해서 http 데이터와 html 문서를 복호화하고, 화면에 정보를 뿌려줌


SSL 인증서의 역할

- 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장

- SSL 통신에 사용할 공개키를 클라이언트에게 제공


SSL 인증서(Certificate)의 내용

- 인증서 소유자의 e-mail 주소

- 소유자의 이름

- 인증서의 용도

- 인증서의 유효기간

- 발행 장소

- Distinguished Name(DN)

- Common Name(CN)

- 인증서 정보에 대해 서명한 사람의 디지털 ID

- Public Key

- Hash(해쉬)


SSL의 특징 및 기능

- SSL 서버 인증 : CA에서 발급받은 것인지를 인증

- 암호화된 통신 : 해쉬 알고리즘 적용

- SSL 클라이언트 인증 : 클라이언트의 인증서를 검증

- 443번 포트 사용

- Transport Layer ~ Application Layer에서 동작 _ http, ftp, telnet, mail

- 비밀성, 무결성, 인증의 3가지 보안 서비스를 제공


SSL 보안 서비스

- 인증 : 거래하고자 하는 사이트가 신뢰되고 검증된 사이트인지 개인정보를 송신하기 전에 먼저 상대 사이트를 인증하는 기능

- 무결성 : 웹 브라우저에서 웹 서버까지의 송신 중 공격자나 제3자에 의해 무단으로 데이터가 위,변조되는 것을 방지하는 기능

- 기밀성 : DES, 3DES, IDEA등 여러가지 암호화 방식을 사용하여 데이터에 대한 불법적인 접근을 통제하는 기능


SSL Handshaking Protocol 세부 과정

- Client Hello : 클라이언트의 브라우저에서 지원하는 암호 알고리즘, 키교환 알고리즘, MAC 암호화, HASH 알고리즘을 서버에게 전송

- Server Hello : Client Hello 메시지 내용 중 서버가 지원할 수 있는 알고리즘들을 클라이언트에게 전송

- Server Hello Done : 클라이언트에게 서버의 요청이 완료되었음을 공지

- Client 인증서 : 서버에서 클라이언트의 인증 요청 발생 시 클라이언트의 인증서를 전달함

- Premaster Key 전송 : 전달받은 서버의 인증서를 통해 신뢰할 수 있는 서버인지 확인 후 암호통신에 사용할 Session Key를 생성하고 이것을 서버의 공개키로 암호화해 Premaster Key를 만들어 서버로 전송함

- Change Cipher Spec : 앞의 단계에서 협의된 암호 알고리즘들을 이후부터 사용한다는 것을 서버에게 ㅏㅇㄹ림

- Finished : 서버에게 협의의 종료를 전달함

- Change Cipher Spec : 서버 또한 클라이언트의 응답에 동의하고 협의된 알고리즘들의 적용을 공지함

- Finished : 클라이언트에게 협의에 대한 종료를 선언함


CA기관

- GlobalSign 인증기관

- GeoTrust 인증기관

- COMODO 인증기관

- Thawte 인증기관

- VeriSign SSL 인증서

- KFTC(금융결제원)

반응형

댓글