공부하는 스누피

[네트워크] SSL과 TLS 본문

CS/네트워크

[네트워크] SSL과 TLS

커피맛스누피 2021. 10. 30. 22:55

SSL (Secure Socket Layer)

SSL은 클라이언트와 서버가 주고 받는 데이터의 보안을 제공하는 프로토콜입니다. 클라이언트와 서버 사이의 링크(연결)를 암호화하여 이를 지나는 모든 데이터가 공격받지 않고 노출되지도 않게 합니다.

 

SSL 프로토콜

https://www.geeksforgeeks.org/secure-socket-layer-ssl/

SSL은 Application Layer와 Transport Layer 사이의 독립적인 계층에 해당되며, 클라이언트가 받은 메시지를 복호화하여 Application data를 넘겨줍니다.

Application Layer에서 다루는 메시지 데이터는 SSL에서 여러 조각으로 나뉘어집니다. 각 조각은 압축되고, MAC(Message Authentication Code)가 붙여지며, SHA나 MD5같은 알고리즘으로 암호화됩니다. 이 과정이 끝나면 SSL 헤더가 조각에 붙습니다.

 

이렇게 암/복호화하는 과정으로 SSL 연결 위에서 주고 받는 데이터의 기밀성(유출x)과 완전성(변경x)을 보장합니다.

 

Handshake 프로토콜

Handshake 프로토콜은 세션을 만들 때 사용됩니다. TCP가 커넥션을 만들 때 4-way handshake를 수행하는 것처럼, SSL도 세션을 만들 때 수행하는 절차가 있습니다. 구현체마다 다양한 옵션을 가지고 있어서 상이할 수도 있으나, 원리는 같다고 합니다. (https://brunch.co.kr/@sangjinkang/38

 

1. 서버와 클라이언트가 연결을 시도하는 패킷을 주고 받습니다. Cipher suite 목록, 세션 id, SSL 버전을 교환합니다.

2. 서버는 인증서와 공개키를 제공한 후 연결 시도를 종료하는 패킷을 보냅니다.

3. 클라이언트가 서버의 인증서를 받으면, 클라이언트의 인증서와 비밀키(서버의 공개키로 암호화됨)를 서버로 보내줍니다.

4. 서버는 클라이언트가 보내준 비밀키를 복호화하고 handshake를 종료합니다.

 

* Cipher suite: 보안에 사용하는 방식을 묶어놓은 것 (암호화 알고리즘, 인증 등)

 

 

TLS (Transport Layer Security)

TLS는 transport layer에서의 보안을 제공하도록 디자인된 프로토콜로, SSL 3.0을 기초로 합니다.

타인(3rd party)이 데이터를 도청하거나 변조하지 못하도록 합니다. 쉽게 말해, SSL의 다음 버전이라 하면 됩니다.

 

TLS의 장점

- 암호화로 데이터를 보호합니다.

- 호환성이 좋아 대부분의 웹 브라우저에서 작동됩니다.

- 인증 방법, 암호화 알고리즘, 해싱 알고리즘이 보안 세션에서 수행되도록 합니다.

 

서버가 클라이언트도 함께 지원하는 버전 중 가장 높은 SSL/TLS 버전의 cipher suite와 압축 방법을 고릅니다. 이후, 서버는 인증서를 제공하고 클라이언트는 이 인증서가 유효한지 검사합니다. 서버가 보내주는 인증서에는 공개키가 들어있는데, 클라이언트는 공개키로 비밀키를 만들어 서버로 보내줍니다. 이렇게 키 교환이 끝나면 handshake는 종료되고 이후 통신은 암호화되어 안전하게 됩니다.

 

(참고)

https://www.geeksforgeeks.org/transport-layer-security-tls/

 

Transport Layer Security (TLS) - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

https://www.geeksforgeeks.org/secure-socket-layer-ssl/

 

Secure Socket Layer (SSL) - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

https://aws-hyoh.tistory.com/entry/HTTPS-%ED%86%B5%EC%8B%A0%EA%B3%BC%EC%A0%95-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-3SSL-Handshake

 

 

HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상)

고대 그리스에서는 타인에게 노출되어서는 안 될 중요한 정보를 보낼 때, 전달하는 이(사자)의 머리를 빡빡 깎아서 중요한 정보를 적은 후 머리가 자라서 글이 보이지 않으면 그제야 상대방에게

aws-hyoh.tistory.com

 

 

 

HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상)

고대 그리스에서는 타인에게 노출되어서는 안 될 중요한 정보를 보낼 때, 전달하는 이(사자)의 머리를 빡빡 깎아서 중요한 정보를 적은 후 머리가 자라서 글이 보이지 않으면 그제야 상대방에게

aws-hyoh.tistory.com

 

 

HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상)

고대 그리스에서는 타인에게 노출되어서는 안 될 중요한 정보를 보낼 때, 전달하는 이(사자)의 머리를 빡빡 깎아서 중요한 정보를 적은 후 머리가 자라서 글이 보이지 않으면 그제야 상대방에게

aws-hyoh.tistory.com

 

 

HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상)

고대 그리스에서는 타인에게 노출되어서는 안 될 중요한 정보를 보낼 때, 전달하는 이(사자)의 머리를 빡빡 깎아서 중요한 정보를 적은 후 머리가 자라서 글이 보이지 않으면 그제야 상대방에게

aws-hyoh.tistory.com

https://brunch.co.kr/@sangjinkang/38

 

HTTPS를 위한 SSL/TLS 핸드 셰이크 작동원리

안전한 웹을 위한 HTTPS | 인터넷에서 귀중한 내 정보를 어디론가 전달하거나, 열람하는 경우가 많습니다. 예를 들면 포털 사이트에 내 ID와 비밀번호를 입력하고 로그인을 하거나, 거래 은행 웹

brunch.co.kr

 

Comments