인증 된 키 교환을위한 SIGMA 프로토콜의 MAC 후 암호화
SIGMA 프로토콜 2003 년에 제안 TLS 1.3 및 IKE에서 사용되는 "로그인 및 맥"의 약자로 할 수있는 선택적으로 보호 정체성 암호화를 사용하여.
아래에 설명 된 SIGMA-I 변형은 MAC 후 암호화 방식을 사용함을 나타냅니다.

여기 $\{\dots \}_{K} $ 키를 이용한 대칭 암호화 기능 하에서 괄호 사이의 정보 암호화를 나타냅니다. $K$.
키 교환 프로토콜에 encrypt-then-MAC 대신 MAC-then-encrypt를 사용하는 특별한 이유가 있습니까? MAC-then-encrypt와 encrypt-then-MAC 간의 비교를 볼 때 임의적으로 보이는 것보다 더 나은 답을 찾을 수 없었습니다 .
편집 : 이 관련 답변에 연결된 RFC 7366 은 encrypt-then-MAC가 선호되어야한다는 몇 가지 힌트를 제공합니다 (D) TLS 통신 (핸드 쉐이킹에 대해서는 언급되지 않음). 특히 다음과 같이 설명합니다.
TLS와 DTLS는 1990 년대 중반에 원래의 SSL (Secure Socket Layer) 프로토콜이 지정되었을 때 보안이 된 것으로 간주되었던 MAC 후 암호화 구조를 사용하지만 더 이상 안전하지 않은 것으로 간주됩니다.
흥미롭게도 H Krawczyk (SIGMA의 저자)는 SIGMA에 앞서 2001 년 통신 보호를위한 암호화 및 인증 순서 (또는 SSL은 얼마나 안전한가? )에 썼습니다 .
답변
Arnaud는이 문제를 명확히 해달라고 요청했습니다.
인증 된 암호화 모드 나 encrypt-then-MAC를 사용해야한다는 것은 사실이며, 논문은이를 명시 적으로 말합니다. 실제로 위의 그림 (섹션 5.2)에 따른 논문의 설명 텍스트https://webee.technion.ac.il/~hugo/sigma-pdf.pdf)이이 문제를 해결합니다. 그것은 말한다 :
우리는 암호화 기능 (세 번째 메시지에 적용됨)이 능동적 공격에 저항력이 있어야하며 따라서 어떤 형태의 무결성 보호를 결합해야한다고 강조합니다. [16]과 같은 결합 된 비밀 무결성 변환을 사용할 수 있으며, 기존 암호화 모드 (예 : CBC)를 암호문 위에 계산 된 MAC 함수와 함께 사용할 수 있습니다 [3, 26].
즉, 표시되는 암호화 $\{...\}_{K_e}$인증 된 암호화 체계를 사용해야합니다. (인증 된 암호화에 대한 필요성은 SIGMA-R 형식의보다 완전한 프로토콜을 보여주는 부록 B에서도 반복됩니다.)
암호화 아래에 MAC (신원에)가 있다는 사실은 MAC이 SIGMA 프로토콜의 (필수) 부분이고 암호화와 완전히 관련이 없기 때문입니다 (특히, 신원 보호에 신경 쓰지 않아도 필요함). ). 따라서 "MAC-then encrypt"처럼 보이지만이 암호화 모드와 관련이 없습니다.
참고 : 텍스트에서 인증 된 암호화가 세 번째 메시지에만 필요하다고 말하는 이유는 동일한 단락의 시작 부분에서 언급했듯이 SIGMA-I가 활성 공격자로부터 개시 자의 ID를 보호하고 수동으로부터 응답자의 ID를 보호하기 때문입니다. 공격자. 따라서 응답자의 신원을 암호화하는 것은 인증되지 않은 암호화로 충분한 수동 공격에 대한 보안 만 필요합니다. 실제로는 두 흐름에 대해 동일한 암호화 체계, 즉 두 흐름 모두에 대해 인증 된 암호화를 사용하기 때문에 이것은 실제로 학술적 발언입니다.
이것은 다소 추측이지만 Sigma가 설계된 모듈 방식 때문이라고 가정합니다. 즉, Hugo Krawczyk가 Sigma를 설계했을 때 그가 추구했던 주요 보안 속성은 기본적으로 두 가지로 구성된 AKE 보안 이었습니다 .
세션 키 구분 불가 : 공격자는 실제 세션 키와 임의의 세션 키를 구분할 수 없어야합니다. 과
명시 적 엔티티 인증 (EA) : 프로토콜 참여자가 프로토콜 실행을 완료하면 실제로 예상 당사자와 통신하고이 당사자가 실제로 동일한 세션 키를 계산했음을 보장하는 속성입니다.
EA 속성은 기본적으로 활성 및 인증을 보장하는 주요 확인 단계입니다. 이는 키를 사용하여 일부 프로토콜 데이터에 대한 MAC을 계산하여 수행됩니다.$K_m$ 세션 키를 파생하는 데 사용 된 동일한 마스터 암호에서 파생됩니다.
요점은 암호화 없이 AKE 보안 (즉, 속성 1 및 2) 을 달성 할 수 있다는 것입니다 ! 실제로 Krawczyk가 Sigma가 AKE 보안을 충족한다는 것을 증명할 때 (이 문서가 어떤 문서인지 기억할 수 없으며 나중에 찾으려고 시도 할 것입니다), 그는 단순히 암호화 단계가 전혀 없다고 가정합니다! (그는 TLSv1.3의 전조 인 OPTLS 논문에서도이를 수행합니다.)
앞서 말했듯이 대부분의 키 교환 프로토콜에 대한 표준 보안 목표는 Bellare와 Rogaway 의 원본 문서 이후 기본적으로 모두 AKE 보안에 관한 것이 었습니다 . 그러나 Krawczyk가 Sigma를 설계 할 때 그는 또 다른 비표준 기능인 신원 보호 기능을 추가하고 싶었습니다 . 그러나 그가 이미 암호화가없는 Sigma 프로토콜이 AKE 보안을 달성했음을 보여 주었다는 점을 감안할 때, 신원 보호를 위해 암호화를 추가하는 간단한 문제였습니다. 따라서 : MAC-then-Encrypt.
그러나 MACing과 암호화의이 두 가지 사용은 다소 직교하고 다른 용도로 사용됩니다. 내부 MAC은 EA 보안을 제공하고 외부 암호화는 신원 보호를 제공해야합니다.
또한, 주 시그마는 일반적 것을 않는 암호화-다음-MAC을 사용합니다. 특히 IKEv2 에서 Sigma의 인스턴스화 에서 외부 암호화는 표준 EtM 방식의 암호화 외부 에 추가 MAC을 동반합니다 . IKEv2에있어서, 내부 MAC 키라고 SK_p*
외측 암호화 키라고 SK_e*
외측 MAC 키라고 SK_a*
((가) *
중 하나 인 i
또는 r
이 메시지는 개시 또는 리스폰 더에 의해 생성되었는지 여부에 따라). 또한 IKEv2의 최신 인스턴스화에서 외부 암호화는 전용 인증 암호화 알고리즘으로 대체됩니다. 이 경우 SK_a*
키는 사용되지 않습니다 (전체 EtM 질문이 문제가됩니다). Sigma의 TLSv1.3 인스턴스화에서는 인증 된 암호화 만 사용됩니다. 그러나 다시, 통지는 내부 암호화, 그 목적 EA 보안을 제공하는 내부 MAC가 IT (AE 또는 ETM이 됨).