본문 바로가기

OSI 7계층/[기타] 보안

SSL/TLS, Cipher suite란?

안녕하세요~! IT 세상을 이야기 하다 RUN-IT입니다.

무더운 여름날이 지나고 가을이 성큼 다가왔네요

우리는 지금까지 지난 글들을 통해 SSL의 통신에 대해서 알아보았습니다.

날씨도 더운만큼 SSL 통신에 대한 열정을 불태웠었지요...ㅎㅎ

!!!!!!!!!!!!!!Fire!!!!!!!!!!!!!!

오늘은 SSL 통신의 마지막으로 SSL 통신과정에서 사용되는 SSL/TLS와 Cipher suite에 대해서 알아보려고 합니다.

 

1. SSL/TLS

SSL은 Netscape사에서 개발된 것으로 최초에 버전 V1.0부터 시작 되었습니다.

이후 취약점을 보완하여 SSL V3.0이 출시 되었으며 이를 공식적으로 표준화하여 이름을 붙인 것인 TLS 1.0이었습니다. 이후로는 TLS V1.1, TLS V1.2등이 나왔으며 현재는 TLS V1.3까지 나왔지만 아직 상용화 되지는 않았습니다.

포켓몬스터의 뮤가 진화하여 뮤츠가 되어 강력해지듯이 SSL도 점차 강화되어 현재의 TLS 1.3까지 진화해 왔습니다.

 

 

 

 

SSL 프로토콜의 구조를 살펴보면 

 

SSL Record Protocol : 상호 송수신을 위한 암호화 Cipher suite가 SSL Handshake 프로토콜에 의해 정해진 후 이러한 Cipher suite에 따라 실제로 전송하는 데이터를 TCP 패킷으로 변환하기 위한 기능을 수행합니다.

SSL Record Protocol은 실제 데이터를 전송하기 전 데이터를 일정한 단위의 조각으로 분리, 압축, 해제 및 메시지 인증 암호화 복호화 기능을 수행합니다.

 

Change Cipher spce : 수신측에 어떠한 Cipher suite에 정의된 알고리즘과 키, 압축방식 등을 알려주는 용도로 사용합니다.

 

SSL Alert Protocol : SSL의 동작 과정에서 발생할 수 있는 문제에 대해 경고를 전달하기 위해 사용합니다.

 

기존 통신이 TCP/IP 프로토콜을 이용하는 것이라면 SSL 통신은 SSL/TLS 프로토콜을 사용하여 실제 데이터를 암호화 하여 통신하는 것을 말하는 것이죠

 

대표적으로 지난번 NAVER를 접속 할 때 HTTPS를 사용하여 접속을 하고 패킷을 캡쳐해 보았는데요. 이처럼 HTTPS는 SSL 통신중에 한부분입니다. 이밖에도 SSH, SFTP등 여러 종류의 SSL 통신이 존재합니다.

 

2. Cipher suite

 

Cipher suite는 무엇일까요?

지난번 통신 과정에서 Client Hello 와 Server Hello 패킷에 Cipher suite리스트가 포함되어 있는 것을 보았습니다

기억이 안나신다고요? 그래서 제가 준비해왔습니다!

저기 빨간색 네모칸 안의 내용들이 바로 Cipher suite들 입니다. 저기 중에서 Server와 Client는 어떤 Cipher suite를 사용할지 정하게 되는 거죠

 

그럼 Cipher suite의 각 항목들이 의미하는 내용을 살펴보도록 하죠

 

위의 그림에서 보면 각 A, B, C, D, E가 채워지는 것을 볼 수 있습니다.

즉 각 항목마다 의미하는 바가 있고 어떤 알고리즘을 사용할 것인지 채워 넣어지는 것이죠

 

키교환 알고리즘 : Server Client간 Key를 교환할 방식을 선정하는 것입니다.

인증 알고리즘 : Server와 Client간 교환한 인증서를 확인하는 알고리즘입니다.

대칭 암호 알고리즘 : 실제 데이터를 암호화 하는 알고리즘입니다.

블록 암호 운용 방식 : 데이터를 암호화 할때 한꺼번에 암호화 하는 것이 아니라 블록 단위로 암호화 하게 되는데,

블록된 암호화 패킷을 조합하여 데이터를 추측 하는 것을 방지하기 위한 방식입니다.

해시 알고리즘 : 서로 상대방이 암호화 한것이 맞는지 확인하기 위한 알고리즘

 

위를 종합하여 예시를 해석해보면

TLS 프로토콜을 사용하며, 키교환 방식은 ECDHE, 인증알고리즘은 RSA, 대칭알고리즘으로 AES를 사용하며 암호키 길이는 256비트, 블록암호운용모드는 GCM이고 HMAC용 해시 알고리즘은 SHA-384를 사용한다는 것입니다.

 

SSL은 암호화 통신이라 비밀스러운 부분들이 많이 있습니다.

지금까지 알아본 내용 이외에도 여러 내용들이 있지만 모두 포함하기에 아직 부족한 면이 많은 것 같습니다.

그렇지만 지금까지 알려드린 내용이 조금이나마 여러분께 도움이 되기를 희망합니다.

보다 밝은 내일의 IT 세상을 위하여 끝까지 이야기하는 Run-it 이었습니다.

안녕!