네트워크

[네트워크] SSL/TLS

slimdog 2025. 4. 16. 00:03

 

SSL/TLS?

SSL/TLS는 학부생 때 배운 내용은 전송계층과 응용계층 사이 보안 프로토콜이라고 배운게 전부입니다. 웹 애플리케이션에서도 그렇고 SSL/TLS기술은 우리 삶속에서 없어서는 안되는 보안기술 중 하나입니다.

해당 기술을 사용하지 않는다면 어떤 일이 발생까요?

 

철수와 영희가 일반적인 평문 통신을 하게 된다면, 철수가 영희에게 보낸 메세지가 누군가에 의해 중간자 공격(가로채기)에 의해 유실 / 변조가 되었다면 영희가 수신하는 메세지는 무결성에 위배되었다고 볼 수 있습니다.

 

철수와 영희가 서로의 메세지를 보낼 때 누군가 해당 메세지를 해독할 수 없도록 암호화 하는 것이 SSL/TLS 기술입니다.

 


철수와 영희가 메세지를 암호화 하는 방법

 

철수가 영희에게 메세지를 발송하기 전에 일어나는 행위를 도식화하였습니다. 최상위 Application에서 데이터를 생성 후 프로토콜 스택에 의해 하위 계층으로 데이터가 전달됩니다.


어플리케이션에서 생성된 데이터는 전송계층에 전해지기 전 5단계를 수행됩니다.

HandShake : 종단간 보안 파라미터 정보 (설정정보)를 협상하는 프로토콜 입니다.
Change Cipher Spec: 종단간 협상 보안파미터의 변경사항을 알리기위한 프로토콜 입니다.
Alert : SSL/TLS 통신 과정에서 발생하는 오류를 통보하기 위한 프로토콜 입니다.
Appication Data 프로토콜: 어플리케이션 계층의 데이터를 전달하기 위한 프로토콜 입니다.
Record 프로토콜: 적용 / 변경된 보안 파라미터를 이용하여 실제 암호화/복호화, 무결성 보호, 압축/압축해제 등의 기능을 제공하는 프로토콜 입니다.

수신자 검증을 위한 SSL HandShake

첫번째 과정을 보면, SSL HandShake과정이 존재하는데, 이과정은 철수는 해당 수신자가 영희인지 모르기 때문에 검증하는 과정입니다.

 

 

 

이 과정에서 SSL/TLS의 인증서 개념이 나오게 됩니다.

SSL HandShake과정에서 철수는 영희에게 메세지를 보낸 후 영희에게 응답이 왔지만, 문득 철수는 이런 생각을 하게 됩니다

”이 메세지가 영희가 아닌 다른 사람이면 어쩌지?..”

실제로 정말 영희가 메세지를 응답하였음에도 철수는 해당 메세지에 대한 불신이 생기게 되고 정상적인 커뮤니케이션을 할 수 없을 것입니다.

 

 

 

철수는 영희를 의심하고 있지만, 중간에 국회의원이 “이 사람 영희 맞습니다~” 라고 보증된 공직자가 인증을 해준다면 철수는 안심하고 영희를 신뢰하게 될 것입니다.

 

이 과정에서 영희는 “신뢰된 인증서”가 필요함을 느꼈고, 신뢰된 인증서를 발급하는 기관은 인증기관으로 엄격한 절차에 의해 서버에게 인증서를 발급할 수 있도록 합니다.

 

보안학의 기본이 되는 공개키 / 대칭키 개념으로 Pre-Shared Key(사전공유키) 에 대한 내용을 보면 정말 복잡하게 되어습니다(이 부분은 내용이 많아 생략합니다)

결국 신뢰된 인증서만 서버에 존재한다면 SSL HandShake과정을 거쳐 하위 과정인 Record 계층에서 전달 받은 Application 데이터를 협상된 파라미터로 암축/암호화 하는 것이라고 이해할 수 있습니다.

Record 프로토콜의 기밀성 유지의 핵심 동작

단편화(Fragment) : Data를 일정 크기로 단편화 합니다.

압축 및 MAC 생성: 단편화된 데이터를 압축 알고리즘으로 압축 후 메세지 인증 값을 계산하여 추가합니다.

암호화 : 암축된 데이터와 MAC값을 암호알고리즘으로 암호화 후 Record 헤더를 추가하여 전송합니다.

Record 과정은 비밀 메세지를 만드는 핵심 과정이라고 볼 수 있습니다.


Application Layer 패킷 분석

암호화가 적용되지 않은 HTTP프로토콜 입니다. 와이어 샤크로 확인 시 모든 데이터가 평문 통신으로 HTTP Request에 어떤 트랜잭션의 URI를 호출 했는지? 어떤 Data를 보내는지 등 패킷만 가로챌 수 있다면 손쉽게 분석이 가능합니다. 보안상 아주 취약하다는 이야기죠

 

 

SSL/TLS 프로토콜이 적용된 HTTPS에서는 Record 프로토콜에 의해 암호화된 데이터가 전송되며, 이 데이터는 서버의 신뢰된 인증서를 기반으로 Handshake 과정을 통해 복호화 됩니다. 따라서 신뢰된 인증기관이 조작되지 않는 이상 패킷 분석은 불가능하다

 

SSL/TLS는 내면을 들여다 보면 사용자 검증부터 기밀성 유지까지 현대사회에서는 보편화된 기술이지만, 다시 한번 보안적으로 완벽한 기술임에 감탄합니다.

'네트워크' 카테고리의 다른 글

[네트워크] DNS  (0) 2025.04.15
[네트워크] 계층형 아키텍처  (0) 2025.04.15
[네트워크] 표준 아키텍처  (0) 2025.04.15
[네트워크] NAT  (0) 2025.04.14
[네트워크] DHCP  (0) 2025.04.09