요약

  • RFC 5926은 완전히 규격을 준수하는 모든 TCP-AO 구현이 두 가지 MAC 알고리즘과 그에 대응하는 두 가지 키 유도 함수를 제공하도록 요구했으며, 그 덕분에 알고리즘 선택이 공통 상호운용성 기준선을 지우지 않았습니다.
  • HMAC-SHA-1-96은 2010년 당시 널리 지원되는 출발점을 나타냈고, AES-128-CMAC-96은 별개의 대안을 제공했습니다. 두 알고리즘 모두 TCP-AO 옵션을 위한 96비트 태그를 생성했습니다.

합의 없는 알고리즘 유연성은 실패

TCP-AO는 "강력한 암호화를 사용한다"는 추상적 약속으로 인증하지 않습니다. 송신 측은 연결별 트래픽 키를 유도하고 특정 알고리즘으로 메시지 인증 코드를 계산합니다. 수신 측은 동일한 유도와 계산을 수행해야 합니다. 두 측의 조합이 다르면, 받은 태그는 동일한 증명에 대한 다른 해석이 아니라 단순히 검증 불가능한 값입니다.

따라서 RFC 5926은 선택을 필수 하한선과 결합했습니다. 완전히 규격을 준수하는 구현은 HMAC-SHA-1-96과 AES-128-CMAC-96, 그리고 KDF_HMAC_SHA1과 KDF_AES_128_CMAC를 구현해야 했습니다. 이 요구는 하나의 연결이 두 스위트를 동시에 사용한다는 뜻도, 대역 내 협상 프로토콜을 도입한다는 뜻도 아니었습니다. 독립적으로 구축된 시스템들이 운영자가 일관되게 설정할 수 있는 두 가지 정의된 선택을 공유하도록 만든 것입니다.

이 결합이 중요했던 이유는 MAC 이름만으로는 완전한 계약이 아니기 때문입니다. KDF는 설정된 Master_Key, 연결별 Context 및 요청된 출력 길이를 받아 TCP 세그먼트에 사용되는 Traffic_Key를 생성합니다. 각 TCP-AO MAC 정의는 자신의 KDF를 식별합니다. 미래의 KDF는 둘 이상의 MAC에 사용될 수 있지만, 배포된 MAC이 트래픽 키 유도를 명시하지 않은 채로 남을 수는 없습니다.

두 개의 원시 함수, 하나의 옵션 예산

두 스위트는 서로 다른 구성을 통해 전송 매체에 도달했습니다. HMAC-SHA-1-96은 160비트 트래픽 키를 사용하며 HMAC-SHA1 출력에서 시작합니다. AES-128-CMAC-96은 128비트 트래픽 키와 AES-CMAC을 사용합니다. 두 경우 모두 TCP-AO 옵션에 담기는 값은 96비트로 절단됩니다. RFC 5926은 이 길이를 인증 강도와 TCP 옵션의 제한된 공간 사이의 타협으로 기술했으며, 하위 함수들을 96비트 원시 함수로 재정의하지는 않았습니다.

이 표준의 선택은 암호학적 전환기의 한 순간을 기록한 것입니다. HMAC-SHA1은 당시 인터넷 시스템에서 폭넓게 구현되어 있었기 때문에 사용자 인터페이스 기본값으로 권고되었습니다. AES-128-CMAC도 필수로 지정되었는데, 이는 작업 그룹이 더 강하고 구조적으로 다른 옵션, 그리고 향후 분석이 요구할 경우 SHA-1 의존에서 벗어나는 경로를 원했기 때문입니다. 이는 계획된 다양성이었으며, 오늘날 운영자가 어느 스위트를 선호해야 하는지에 대한 현재적 판단이 아니었습니다.

AES-CMAC KDF는 또 하나의 번거로운 운영 경계를 처리했습니다. 관리자는 AES-CMAC이 요구하는 16옥텟보다 짧거나 긴 마스터 키를 설정할 수 있습니다. 인터페이스가 하나의 길이만 받아들이도록 하는 대신, KDF는 필요할 때 가변 길이 입력에서 128비트 키를 유도합니다. RFC 5926은 곧바로 이 추론을 제한합니다. 다양한 길이를 받아들이는 것이 약하거나 예측 가능한 공유 비밀을 안전한 것으로 바꿔주지는 않습니다.

이 기준선이 확정한 것과 하지 않은 것

네 가지 MUST 구현 구성 요소는 규격 준수 소프트웨어가 공통 지점에서 만날 수 있도록 했습니다. 그러나 설정을 스스로 교정해 주지는 않았습니다. 통신 양측은 여전히 일치하는 선택과 공유 키 자료가 필요했으며, RFC 5926의 수동 키잉 모델은 그 조율을 TCP 교환 외부에 남겨두었습니다.

이 문서는 또한 미래의 MAC과 KDF를 위한 인터페이스를 제공했으며, 여기에는 미래의 MAC이 낮은 충돌 확률로 보호해야 할 메시지 수에 대한 명시된 목표도 포함되었습니다. 이는 확장성 경계이며, 이후 알고리즘이 자동으로 설치되거나 선택되거나 협상되었다는 증거가 아닙니다.

출처