네트워크

SSL / TLS 에 대해 알아보도록 하겠습니다.

forward error correction Circle 2022. 12. 22. 12:30
반응형


Ⅰ. SSL / TLS 정의

 SSL / TLS 는 인터넷을 통한 개인 메시지의 전송을 위해  넷스케이프에서 개발한 프로토콜이며, 국제 인터넷 표준화 기구에서 표준으로 인정받은 인터넷에서의 정보를 암호화해서 송수신하는 기능을 가집니다.

 

Ⅱ. SSL /TLS 역할

인터넷을 사용한 통신에서 보안을 확보하려면 두 통신 당사자가 서로가 신뢰할 수 있는 자임을 확인할 수 있어야 하며, 서로간의 통신 내용이 제 3자에 의해 도청되는 것을 방지해야 한다. 따라서 서로 자신을 신뢰할 수 있음을 알리기 위해 전자 서명이 포함된 인증서를 사용하며, 도청을 방지하기 위해 통신 내용을 암호화합니다.

 

Ⅲ. SSL /TLS 적용 여부 확인

인터넷 URL 접속 시 아래 그림과 같이 자물쇠 모양이 있습니다.

 

Ⅲ. SSL /TLS 차이

  SSL v3 을 기반으로 표준화를 진행하면서 명칭이 TLS 변경이 되었습니다.


Ⅴ. SSL / TLS 핸드 셰이크 과정
 서로의 신원을 확인하고 통신 암호화에 사용할 세션 키를 공유하기 위해 핸드셰이크(Handshake) 과정
1. 클라이언트에서 서버에 사용 가능한 TLS 버전, 서버 도메인, 세션 식별자, 암호 설정 등의 정보 포함하여 ClientHello 메시지를 보냅니다.
2. 클라이언트의 메시지를 받은 서버는 서버에서 사용하기로 선택한 TLS 버전, 세션 식별자, 암호 설정 등의 정보가 포함ServerHello 메시지를 클라이언트에게 보냅니다.
3. 서버가 클라이언트에 서버의 인증서(인증서는 신뢰할 수 있는 별도의 인증 기관에서 발급받은 것) Certificate 메시지를 보냅니다. 서버가 신뢰할 수 있는 자임을 인증합니다. 전송이 끝나면 ServerHelloDone 메시지를 보내 끝났음을 알립니다.
4. 클라이언트는 서버에서 받은 인증서를 검증한다. 인증서의 유효 기간이 만료되지 않았는지, 그 인증서가 해당 서버에게 발급된 인증서가 맞는지 등을 확인한다. 인증서를 신뢰할 수 있다고 판단하였다면 다음 단계로 넘어갑니다.
5. 클라이언트는 임의의 pre-master secret을 생성한 뒤, 서버가 보낸 인증서에 포함된 공개 키를 사용해 암호화합니다.

   이렇게 암호화된 pre-master secret을 ClientKeyExchange 메시지에 포함시켜 서버에 전송합니다.
6. 서버는 전송받은 정보를 복호화하여 pre-master secret을 알아낸 뒤, 이 정보를 사용해 master secret을 생성합니다.

    그 뒤 master secret에서 세션 키를 생성해내며, 이 세션 키는 앞으로 서버와 클라이언트 간의 통신을 암호화하는 데

    사용될 것 입니다. 클라이언트 역시 자신이 만들어낸 pre-master secret을 알고 있으므로, 같은 과정을 거쳐 세션 키를

    스스로 만들 수 있습니다.
7. 이제 서버와 클라이언트는 각자 동일한 세션 키를 가지고 있으며, 이 키를 사용해 대칭키 암호를 사용하는 통신을 할 수

    있습니다.따라서  서로에게 ChangeCipherSpec 메시지를 보내 앞으로의 모든 통신 내용은 세션 키를 사용해 암호화해

    보낼 것을 알려준 뒤, Finished 메시지를 보내 각자의 핸드셰이킹 과정이 끝났음을 알립니다.
8.  서버와 클라이언트 간에 보안 통신이 구성된다.

 

 

Ⅳ. 사이트 적용된 SSL /TLS 확인

https://www.ssllabs.com/ssltest/

반응형