피드로 돌아가기
Rebuilding TLS, Part 1 — Why Encryption Alone Is Not Enough
Dev.toDev.to
Security

TLS 프로토콜을 처음부터 재구축하며 암호화만으로는 안전한 통신을 보장할 수 없는 이유를 실증

Rebuilding TLS, Part 1 — Why Encryption Alone Is Not Enough

Dmytro Huz2026년 3월 29일14intermediate

Context

TCP 소켓 기반 통신은 평문으로 모든 데이터를 주고받기 때문에 네트워크상의 모든 관찰자가 메시지 내용을 읽을 수 있다. 이 문제를 해결하기 위해 AES-CTR 공유 키 암호화를 적용해 메시지를 암호화했지만, 암호화된 데이터가 중간에 변조되었는지 감지할 방법이 없었다.

Technical Solution

  • 통신 구조화: 4바이트 길이 헤더 + 가변 길이 페이로드 형식으로 TCP 바이트 스트림을 메시지 단위로 구분
  • AES-CTR 암호화 도입: 양쪽이 미리 공유한 대칭 키로 메시지 페이로드 암호화해 수동적 관찰자로부터 기밀성 확보
  • 의도적 결함 설계: 무결성 검증 없이 암호문을 그대로 수락하는 채널을 구축해 변조 취약점을 노출

Key Takeaway

통신의 기밀성(읽을 수 없음)과 무결성(변조 불가)은 별개의 보안 속성이다. TLS 같은 안전한 프로토콜은 두 가지를 모두 구현해야 하며, 암호화 단독으로는 메시지 변조를 방지할 수 없다.


보안 채널을 설계할 때 AES 같은 암호화 알고리즘만 적용하고 메시지 인증 코드(MAC)를 빠뜨리면 안 된다. 의도적으로 단계별 결함을 만들어 각 계층이 왜 필요한지 파악하면 프로토콜 설계의 핵심을 더 빠르게 이해할 수 있다.

원문 읽기