피드로 돌아가기
Rebuilding TLS, Part 3 — Building Our First Handshake
Dev.toDev.to
Security

Diffie-Hellman 기반 Dynamic Key Exchange 구현을 통한 세션 키 생성 자동화

Rebuilding TLS, Part 3 — Building Our First Handshake

Dmytro Huz2026년 4월 19일25intermediate

Context

사전 공유 키(Pre-shared Key)에 의존하던 기존 구조로 인한 현실적인 확장성 및 보안 한계 발생. 불확실한 네트워크 환경에서 클라이언트와 서버가 안전하게 Shared Secret을 생성하는 Handshake 메커니즘의 부재를 해결하고자 함.

Technical Solution

  • Classic Diffie-Hellman 도입을 통한 공개 파라미터(p, g) 기반의 동적 키 교환 구조 설계
  • Private Exponent(a, b)를 이용한 Public Value(A, B) 계산 및 상호 교환 방식 채택
  • 네트워크 상에 Secret을 직접 전송하지 않고 수식 연산을 통해 동일한 Shared Secret을 도출하는 무결성 확보
  • X25519 primitive 교체 및 HKDF(HMAC-based Extract-and-Expand Key Derivation Function) 적용을 통한 최적화된 Session Key 유도
  • 단순 암호화 채널 구축을 넘어 Passive Observer로부터 데이터를 보호하는 Secrecy 레이어 강화

1. 단순 키 교환만으로 보안이 완성되었다고 판단하지 말고 Man-in-the-Middle(MitM) 공격 가능성을 검토했는가?

2. Raw Shared Secret을 그대로 사용하지 않고 HKDF와 같은 KDF를 통해 세션 키를 유도했는가?

3. 전송 효율과 보안 강도를 모두 고려하여 Classic DH 대신 X25519와 같은 최신 타원곡선 알고리즘을 검토했는가?

원문 읽기