요약
- RFC 3407는 단말이 현재 지원할 수 있고 지원할 의사가 있는 미디어 형식을 선언하되, 세션을 그 중 어느 하나에 구속하지 않도록 했다.
- 선언, 이후의 offer/answer 선택, 관찰된 실제 미디어 경로는 서로 다른 세 가지 영수증이었다.
문제는 과도하게 묶인 한 줄 기술에서 시작됐다. SDP의m=라인은 세션이 무엇을 사용할지 상대에게 알려주는 동시에, 장비가 대안을 광고하는 자리로도 쓰였다. 그 결과 G.711, G.729, 팩스 지원을 나열하면 나열된 모든 형식이 하나의 동시 구성에 속한다는 인상을 줄 수 있었다. 유한한 DSP 메모리를 가진 게이트웨이는 각 대안을 개별적으로는 지원하면서 모든 조합을 동시에 구동할 수 없을 수 있다.
RFC 3407는 협상 문제 전체를 해결하지 않았다. 실제 세션 옆에 뒤호환되는 작은 선언을 하나 추가했을 뿐이다. 기능 설명은 어떤 형식이 단말의 현재 가능성 집합에 속한다고 말할 뿐, 그 형식을 선택하지는 않았다. 이를 사용하려면 당사자들은 SDP offer/answer 모델 같은 별도의 메커니즘이 여전히 필요했다.
이 구분은 강한 경고를 낳았다. 수신자는 선언된 형식을 사용하는 이후 시도가 성공할 것이라고 가정해서는 안 된다. 상대가 다른 구성을 선택할 수 있고, 필요한 매개변수가 다를 수 있으며, 자원이 바뀌었을 수도 있고, 조합 자체가 실현 불가능할 수도 있다. “지원한다”는 협상으로 통하는 문을 열어줄 뿐, 그 결과를 기록하지는 않았다.
집합은 완전하고 시점에 묶여 있었다. 하나의 시퀀스 번호가 전체 컬렉션을 기술했다. 새 컬렉션이 도착하면 모든 이전 컬렉션은 적용이 끝났다. 수신자는 갱신을 놓칠 수 있으므로, 모듈로 256 시퀀스의 간격은 새 집합을 거부할 이유가 아니었다. 이 시퀀스는 새로운 선언 에포크를 확립하는 것이지, 끊기지 않는 전달 로그나 그 자체로 재전송 공격에 대한 증명이 아니었다.
범위도 신선함만큼 중요했다. 세션 수준 기능은 명시된 유형의 미디어 스트림에 적용됐다. 미디어 수준 기능은 선언된 미디어 유형이 다르더라도 자신이 속한m=라인에만 적용됐다. 세션 수준 선언이 일치하는 스트림이 없는 유형을 가리키면, 세션에 스트림이 정확히 하나인 경우를 제외하고 그 대상은 정의되지 않았다. 배치 자체가 의미의 일부였다.
매개변수는 주장을 좁혔다.cpar라인은 지원이 존재하는 형식 매개변수나 대역폭 조건을 밝힐 수 있었다. 최소·최대 형식은 단일 수치 범위를 표현했다. 이런 제약을 무시하면 참인 선언이 실패한 시도로 바뀔 수 있었다. 코덱 레이블만으로는 기능 전체가 아니었다.
기능 번호는 시퀀스 번호가 매겨진 집합 안에서의 로컬 핸들이었다. 그 번호의 간격도 허용됐다. 별도의 메커니즘이 대안을 참조하는 데는 유용했지만, RFC 3407 자체는 그 참조가 어떻게 합의된 구성이 되는지 말하지 않았다. 이 의도된 불완전성은 선언이 조용히 협상 권한을 획득하는 일을 막았다.
보안 단락은 짧았지만 영향은 컸다. 인증 없이 보안에 민감한 기능을 재협상하면 다운그레이드나 서비스 거부를 초래할 수 있다. 공격자는 미디어 지원을 위조할 필요 없이, 당사자들이 더 약한 옵션을 선택하게 하거나 협상을 반복적으로 다시 열게 만들기만 하면 된다.
RFC 5939는 나중에 RFC 3407에 없던 더 넓은 모델을 제공했다. 기능, 잠재 구성, 실제 구성, 그리고 offer/answer 절차다. RFC 5939는 구현에 더 새로운 속성들을 권장하면서, 레거시 상호운용성이 중요한 경우 두 형식을 모두 허용했다. RFC 3407을 공식적으로 폐기(obsolete)하지는 않았고, 자신의 협상 절차가 구식 기능 설명을 소비하지 않는다고 명시했다. 두 문법은 하나의 의사결정 과정이 되지 않은 채 공존할 수 있었다.
이 역사적 교훈은 멀티미디어를 넘어 적용된다. 인벤토리, 기능 플래그, 호환성 매트릭스는 종종 시스템이 무엇을 할 수 있는지를 말할 뿐이다. 두 시스템이 무엇을 선택했는지, 어떤 자원이 남았는지, 회선 위에서 실제로 무슨 일이 있었는지 증명하지는 않는다. RFC 3407은 그 경계를 흐려 온 프로토콜 안에서 이 증거 공백을 드러냈다.
출처
- https://www.rfc-editor.org/rfc/rfc3407.html
- https://www.rfc-editor.org/rfc/rfc3407.txt
- https://www.rfc-editor.org/info/rfc3407/
- https://datatracker.ietf.org/doc/rfc3407/
- https://datatracker.ietf.org/doc/rfc3407/history/
- https://datatracker.ietf.org/doc/rfc3407/references/
- https://www.rfc-editor.org/errata_search.php?rfc=3407
- https://www.rfc-editor.org/rfc/rfc2327.html
- https://www.rfc-editor.org/rfc/rfc3264.html
- https://www.rfc-editor.org/rfc/rfc5939.html
- https://www.rfc-editor.org/rfc/rfc5888.html
- https://www.rfc-editor.org/rfc/rfc4566.html
- https://www.rfc-editor.org/rfc/rfc8866.html
- https://www.rfc-editor.org/rfc/rfc3551.html
- https://www.rfc-editor.org/rfc/rfc2543.html
- https://www.rfc-editor.org/rfc/rfc2705.html
- https://www.iana.org/assignments/sdp-parameters/sdp-parameters.xhtml
- https://www.rfc-editor.org/rfc/rfc4568.html
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





