Invisible Safety,

Proven by Intelligence

보이지 않는 안전을 인텔리전스로 증명하다.

기술 노트
IT 산업의 변화를 이끄는 MDS인텔리전스의
기술 인사이트를 만나보세요.
사이버 보안 & 암호화
[NeoCertManager] TLS 1.2 암호화 통신 ⑷ - TLS 1.2의 한계
2026년 07월 08일


28. TLS 1.2 Handshake 시퀀스

TLS 1.2 RSA Key Exchange 기반 Handshake를 간단히 표현하면 다음과 같습니다.


29. Cipher Suite란 무엇인가?

TLS에서는 어떤 암호 알고리즘 조합을 사용할지 정해야 합니다.

이 조합을 Cipher Suite라고 부릅니다.

TLS 1.2 Cipher Suite 예시는 다음과 같습니다.

TLS_RSA_WITH_AES_128_CBC_SHA

이 이름을 풀어보면 다음과 같습니다.

TLS

= TLS 프로토콜 사용


RSA

= RSA 기반 키 교환​


AES_128_CBC

= AES-128 + CBC 모드로 데이터 암호화


SHA

= SHA 기반 MAC 검증


또 다른 예시는 다음과 같습니다.

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384


이를 풀어보면 다음과 같습니다.

ECDHE

= 임시 타원곡선 Diffie-Hellman 키 교환

RSA

= 서버 인증서 서명 알고리즘


AES_256_GCM

= AES-256 GCM 모드로 데이터 암호화 및 인증


SHA384

= 키 파생 및 검증에 SHA-384 사용

TLS 1.2는 이 Cipher Suite 구조가 매우 복잡했습니다.

지원하는 조합이 많았기 때문에 설정에 따라 안전할 수도 있고 위험할 수도 있었습니다.

이 점은 TLS 1.2의 중요한 한계로 이어집니다.


30. TLS 1.2의 핵심을 쉬운 예로 이해하기

택배 상자 비유로 TLS 1.2를 이해해 보면...,

서버는 자물쇠를 공개합니다.

RSA Public Key = 공개 자물쇠

클라이언트는 실제 대화에 사용할 AES 키를 만든다.

AES Session Key = 실제 대화용 비밀 열쇠

클라이언트는 AES 키를 상자에 넣고 서버의 공개 자물쇠로 잠근다.

AES Key

RSA Public Key로 잠금

암호화된 상자


서버는 자신의 개인키로 상자를 엽니다.

암호화된 상자

RSA Private Key로 열기

AES Key


이제 양쪽은 같은 AES 키를 갖게 됩니다.

그 후부터는 모든 대화를 AES 키로 암호화합니다.

그리고 SHA 기반 검증값을 이용해 메시지가 중간에 바뀌지 않았는지 확인합니다.


31. TLS 1.2가 제공하는 보안 기능

TLS 1.2는 크게 세 가지 보안 기능을 제공한다.

첫째, 기밀성입니다.

 공격자가 데이터를 가로채도 AES 키가 없으면 내용을 볼 수 없습니다.

둘째, 무결성입니다.

 공격자가 데이터를 중간에서 바꾸면 HMAC 또는 인증 태그 검증에서 실패합니다.

셋째, 인증입니다.

 클라이언트는 서버 인증서를 검증하여 자신이 접속한 서버가 진짜인지 확인합니다.

이 세 가지가 합쳐져 안전한 HTTPS 통신이 완성됩니다.​


32. TLS 1.2는 왜 오랫동안 사용되었나?

TLS 1.2는 오랫동안 인터넷 보안의 핵심 프로토콜이었습니다.

그 이유는 명확합니다.

AES는 빠르고 안전했습니다.

RSA는 공개망에서 키를 안전하게 전달할 수 있는 좋은 방법이었습니다.

SHA 기반 HMAC은 데이터 위변조를 효과적으로 검증할 수 있었습니다.

즉 TLS 1.2는 당시 기준으로 매우 훌륭한 설계였습니다.

하지만 시간이 지나면서 문제가 드러나기 시작했습니다.


33. TLS 1.2의 근본적인 고민

TLS 1.2의 핵심 구조는 다음과 같습니다.

RSA로 AES 키를 안전하게 전달합니다.

AES로 실제 데이터를 빠르게 암호화합니다.

SHA로 무결성을 검증합니다.

이 구조 자체는 이해하기 쉽고 강력합니다.

하지만 RSA Key Exchange 방식에는 중요한 약점이 있습니다.

만약 서버의 RSA 개인키가 나중에 유출되면 어떻게 될까요?

공격자가 과거에 암호화된 TLS 통신을 저장해 두었다면, 유출된 RSA 개인키로 과거의 Encrypted Premaster Secret을 복호화할 수 있습니다.

그러면 Premaster Secret을 얻을 수 있고, Master Secret과 Session Key도 계산할 수 있습니다.

결국 과거 통신까지 복호화될 수 있습니다.

즉 현재는 안전해 보여도 미래에 서버 개인키가 유출되면 과거 통신이 위험해질 수 있는 구조입니다.

이 문제가 TLS 1.3에서 RSA Key Exchange가 제거된 가장 중요한 이유 중 하나입니다.



34. 정리

TLS 1.2를 이해하려면 SHA, AES, RSA의 역할을 구분해야 합니다.

SHA

= Secure Hash Algorithm

= 데이터 지문 생성

= 무결성 검증


AES

= Advanced Encryption Standard

= 빠른 대칭키 암호화

= 실제 데이터 암호화


​RSA

= Rivest-Shamir-Adleman

= 비대칭키 암호화

= AES 세션키 전달 및 인증


TLS 1.2는 이 세 가지 기술을 조합합니다.


1. 서버 인증서로 서버 신원을 확인합니다.

2. RSA 공개키로 Premaster Secret을 암호화하여 전달합니다.

3. Premaster Secret, Client Random, Server Random으로 Master Secret을 만듭니다.

4. Master Secret에서 AES 암호 키와 MAC 키를 생성합니다.

5. 실제 데이터는 AES로 암호화합니다.

6. SHA 기반 HMAC으로 데이터 위변조 여부를 검증합니다.

즉 TLS 1.2는 단순한 암호화 기술이 아닙니다.

서버 인증, 키 교환, 세션키 생성, 데이터 암호화, 무결성 검증을 모두 포함하는 종합 보안 프로토콜입니다.

하지만 TLS 1.2는 취약한 알고리즘을 선택할 수 있었고, RSA Key Exchange 방식은 서버 개인키 유출 시 과거 통신까지 위험해질 수 있는 구조적 한계를 가지고 있었습니다.


다음 글에서는 TLS 1.2의 보안 문제점, 특히 RSA Key Exchange, RC4, 3DES, CBC, SHA-1 같은 취약 알고리즘이 왜 문제가 되었는지 자세히 살펴보겠습니다.



📧 nkm_biz@mdsit.co.kr       ✍️ 문의남기기