키 교환 및 설정
키 설정 프로토콜은 당사자들이 새로운 공유 비밀 키에 합의하고, 이를 인증된 신원에 바인딩하여 이후 통신을 빠른 대칭 암호화로 보호할 수 있도록 합니다.
Definition
키 설정은 두 개 이상의 당사자가 비밀 키를 공유하게 되는 프로토콜입니다. 키 합의에서는 양 당사자가 키에 기여하는 반면, 키 전송에서는 한 당사자가 키를 생성하여 안전하게 전송합니다.
Scope
이 주제는 인증된 키 교환(AKE) 프로토콜을 다룹니다: 키 합의 대 키 전송, 이들이 저항해야 하는 위협(중간자 공격, 재전송 공격, 키 침해 가장), 순방향 비밀성 및 기여 키 제어와 같은 보안 속성, 그리고 이를 분석하는 데 사용되는 형식 모델(Bellare-Rogaway, Canetti-Krawczyk). 또한 원시 Diffie-Hellman에 인증이 추가되는 방법을 다룹니다. 기본 문제의 수학적 내용과 배포된 채널 프로토콜은 별도로 다루므로 제외합니다.
Core questions
- 인증된 키 교환 프로토콜은 어떤 보안 속성을 보장해야 하는가?
- Diffie-Hellman과 같은 원시 키 합의 프로토콜에 인증은 어떻게 계층화되는가?
- 순방향 비밀성이란 무엇이며, 일시적 키의 선택이 이를 어떻게 제공하는가?
- 형식 모델은 네트워크를 제어하는 능동적 공격자를 어떻게 포착하는가?
- 프로토콜은 어떤 공격(중간자 공격, 재전송 공격, 키 침해 가장, 알 수 없는 키 공유)에 저항해야 하는가?
Key concepts
- 키 합의 대 키 전송
- 인증된 키 교환
- 순방향 비밀성
- 일시적 키
- 중간자 공격
- 키 침해 가장
- 알 수 없는 키 공유 공격
- Bellare-Rogaway 및 Canetti-Krawczyk 모델
- 키 유도 함수
Key theories
- 인증된 키 교환
- 원시 키 합의는 공유 비밀을 제공하지만 파트너의 신원에 대한 확신은 주지 않습니다. AKE 프로토콜은 인증(서명, 인증서 또는 사전 공유 키를 통해)을 추가하여 각 당사자가 의도한 피어와 키를 공유하며 가장자가 아님을 알 수 있도록 합니다.
- 순방향 비밀성 및 세션 키 신선도
- 세션당 새로운 일시적 키 자료를 사용하고 이를 장기 인증 키와 결합하면, 장기 키가 나중에 침해되더라도 비밀이 유지되는 세션 키를 생성하며, 이전 세션의 재전송을 방지합니다.
Mechanisms
일반적인 AKE는 일시적인 Diffie-Hellman 교환과 인증을 결합합니다. 당사자들은 일시적인 공개 값을 교환하고, 트랜스크립트 데이터에 서명하거나 사전 공유되거나 인증된 장기 키를 사용하여 자신의 신원을 증명합니다. 결과로 생성된 공유 비밀은 키 유도 함수를 통해 트랜스크립트 해시와 함께 전달되어 세션에 바인딩되며, 이는 재전송 공격 및 알 수 없는 키 공유 공격을 방지하고 신선하고 인증된 세션 키를 제공합니다.
Clinical relevance
키 설정은 거의 모든 보안 세션의 시작 단계입니다. TLS 1.3 핸드셰이크, Signal X3DH 및 Double Ratchet, IPsec IKEv2, SSH, WireGuard는 모두 데이터가 흐르기 전에 인증된 키 교환을 실행합니다. 이들의 정확성은 공격자가 서버를 가장하거나 두 당사자 사이에 은밀히 개입할 수 있는지 여부를 결정합니다.
Evidence & guidelines
키 설정 방식은 NIST SP 800-56A/B에 표준화되어 있으며, Bellare-Rogaway 및 Canetti-Krawczyk와 같은 모델에서 분석됩니다. 최신 프로토콜(TLS 1.3, Noise 프레임워크)은 순방향 비밀성을 갖는 일시적 교환을 의무화하며 공식적인 보안 분석을 받았습니다. 순방향 비밀성이 없는 레거시 정적 키 교환은 권장되지 않습니다.
History
인증된 키 교환은 1976년 Diffie-Hellman 프로토콜과 능동적 공격자에 저항하기 위해 인증이 필요하다는 인식에서 발전했습니다. 1990년대부터 2000년대에는 엄격한 보안 모델(Bellare-Rogaway 1993, Canetti-Krawczyk 2001)과 station-to-station 및 MQV 방식의 프로토콜이 개발되었습니다. 이러한 교훈은 공식적으로 분석된 TLS 1.3 핸드셰이크와 Noise 프로토콜 프레임워크에 통합되었습니다.
Key figures
- Whitfield Diffie
- Martin Hellman
- Mihir Bellare
- Phillip Rogaway
- Ran Canetti
- Hugo Krawczyk
Related topics
Seminal works
- diffie1976
- katz2020
- menezes1996
Frequently asked questions
- 키 합의와 키 전송의 차이점은 무엇인가?
- 키 합의(Diffie-Hellman과 같은)에서는 양 당사자가 무작위성에 기여하므로 어느 한쪽만으로 최종 키를 결정할 수 없습니다. 키 전송에서는 한 당사자가 키를 생성하여 다른 당사자의 공개 키로 암호화하여 전송합니다. 합의는 순방향 비밀성을 더 자연스럽게 지원합니다.
- 한 번 키를 설정하는 것으로 긴 세션에 충분하지 않은 이유는 무엇인가?
- 오래 지속되는 키는 침해될 경우 노출 위험을 증가시키고, 암호 분석이나 공격자의 관찰에 의해 약화될 수 있습니다. 프로토콜은 주기적으로 키를 재설정하거나 래칫(Signal에서처럼)하여 하나의 세션 키가 침해되더라도 과거 또는 미래 메시지가 노출되지 않도록 합니다.