요약

  • 현재 CoSERV 워킹 그룹 초안은 RIM-ID 요청을 완전히 충족할 수 없을 때 부분 집합을 반환할 수 있도록 허용하며, 극단적 경우 빈 집합도 유효한 결과로 인정됩니다.
  • 결정론적 인코딩, 요청 결합, 서명, 만료는 구체적 응답의 속성을 보호할 뿐, 그 이면에 있는 보유 집합의 완전성은 보호하지 않습니다.
  • 별도의 검색 영수증은 요청 범위, 데이터 세대, 요청·제공·누락된 항목, 출처, 캐시 경로, 검증, 현지 판단을 하나로 모아야 합니다.

다섯 번째 주장

Remote Attestation은 역할을 분리합니다. 기술적 검증이 곧 포괄적인 신뢰 결정으로 이어지지 않기 때문입니다. Attester는 Evidence를 제공하고, Verifier는 이를 평가하며, Relying Party가 접근 또는 제한을 결정합니다.RFC 9334는 이를 통해 추적 가능성도 보호합니다. 각 지점이 서로 다른 진술에 대해 책임을 집니다.

Endorsement와 참조 값의 확보에도 같은 원리가 적용됩니다. 활성화된 RATS 워킹 그룹 초안Concise Selector for Endorsements and Reference Values, 약칭 CoSERV는 이러한 검색을 위한 간결한 쿼리와 결과를 기술합니다. Revision 07은 Internet-Draft이며, RFC도 승인된 IETF 표준도 아닙니다.

이 초안은 반환되는 객체에 강한 속성을 부여합니다. 쿼리는 결정론적 CBOR로 인코딩됩니다. HTTP 바인딩에서는 이로부터 안정적인 GET URL과 캐시 키가 만들어질 수 있습니다. 서명된 응답은 쿼리에 결합되어 있으며, 다른 쿼리의 결과로 교체하려면 검증이 깨져야 합니다. Result Set은 의무적인 만료 시점을 가지고, 포함된 RIM의 유효 기간을 초과할 수 없으며, 유효하지 않은 RIM은 제외합니다.

이로써 네 가지 진술을 검증할 수 있습니다. 누가 이 객체에 서명했는가? 바이트는 변경되지 않았는가? 정확히 이 쿼리에 속하는가? 선언된 시간 창 안에 있는가? 다섯 번째 진술은 논리적으로 분리되어 있습니다. 검색된 컬렉션이 관련 모집단을 포괄했는지, 적용 가능한 모든 항목이 출력되었는지입니다.

이 다섯 번째 진술은 단지 서명을 하나 더 필요로 하지 않습니다. 정의된 모집단, 관찰 가능한 컬렉션 작업, 가시적인 누락이 필요합니다. 한번도 보유 집합에 들어가지 못한 것은 응답의 서명이 드러내줄 수 없습니다.

유효하게 비어 있음

Revision 07에서 운영상 가장 중요한 부분은 RIM-ID 요청에 관한 것입니다. 수신자가 쿼리 전체를 충족할 수 없을 때 부분 집합만 제공할 수 있으며, 최악의 경우 빈 집합조차 유효한 결과입니다.

이것은 합리적입니다. 보유 집합에 빈틈이 있는 서비스는 자료를 날조해서도, 자신의 무지를 문법 오류로 출력해서도 안 됩니다. 제공할 수 있는 것은 올바르게 제공할 수 있습니다. '유효'를 '완전'으로 운영상 번역하는 순간 거짓 약속이 만들어집니다.

다섯 개를 요청하고 세 개를 받았다면, 그 세 아티팩트는 모두 진짜이고 신선하며 쿼리에 정확히 결합되어 있을 수 있습니다. 두 개의 빈틈에는 여러 설명이 열려 있습니다. 한번도 수집되지 않았거나, 존재하지만 권한 부여가 없거나, 셀렉터에서 제외되었거나, 임포트가 지연되었거나, 형식이 지원되지 않거나, 일시적으로 인덱스되지 않았을 수 있습니다. 서명은 세 개의 존재를 보호합니다. 두 개의 부재의 이유는 판단하지 않습니다.

마찬가지로 빈 응답은 이렇게만 말합니다. 이 수신자가 교환 규칙에 따라 유효하게 0개의 항목을 제공했다는 것입니다. 이는 세계에 적합한 Endorsement나 참조 값이 존재하지 않는다는 뜻이 아니고, 어떤 출처도 그것을 보유하지 않는다는 뜻도, 다른 쿼리를 가진 다른 권한자가 같은 결과를 얻었을 것이라는 뜻도 아닙니다.

'최신 리비전' 역시 상대적입니다. 정수 버전 카운터에서는 가장 높은 카운터가 가용 후보 중 해당 태그의 최신 리비전입니다. 컬렉션이 더 새로운 업스트림 버전을 아직 보지 못했다면, 로컬 최댓값은 올바르게 계산되었지만 여전히 낡은 것입니다.

셀렉터가 시각을 결정한다

환경 쿼리는 정확히 한 종류를 선택합니다. 인스턴스, 그룹 또는 클래스입니다. 인스턴스 또는 그룹은 같은 쿼리에서 클래스 선택과 결합될 수 없습니다. 같은 종류의 여러 셀렉터는 대안으로 작동합니다. 클래스 셀렉터 내부에서는 설정된 필드가 함께 일치해야 하고, 설정되지 않은 필드는 와일드카드입니다. 상태를 갖는 측정은 선택을 추가로 제한할 수 있습니다.

이 규칙들은 쿼리를 재현 가능하게 만들 뿐, 자연스러운 것으로 만들지는 않습니다. 누군가 클래스 대신 인스턴스를 선택했고, 필드를 설정했고, 다른 것은 비워 두었습니다. 지나치게 좁은 조건은 관련 자료를 가리고, 지나치게 넓은 와일드카드는 맞지 않는 맥락을 섞거나 민감한 대상 집합을 드러낼 수 있습니다.

그렇기에 쿼리 해시만으로는 감사 흔적이 부족합니다. 바이트의 동일성은 증명하지만, 누가 범위를 승인했는지, 무엇을 준비하려는 결정이었는지, 어떤 대안이 버려졌는지는 설명하지 않습니다. 근거가 없다면 '결과 없음'은 단지 아주 정밀하게 잘못된 곳을 찾았다는 뜻일 수 있습니다.

동시에 초안은 인스턴스 셀렉터의 민감성을 경고합니다. 책임성이 공개적인 장치 목록을 만들어서는 안 됩니다. 정확한 쿼리 바이트는 접근이 보호된 증거 저장소에 둘 수 있고, 운영 로그에는 보호된 지문, 셀렉터 종류, 범위 승인만으로 충분합니다.

서명된 패키지가 컬렉션을 보증하지는 않는다

서비스는 원본 아티팩트와 수집·집계된 아티팩트를 모두 제공할 수 있습니다. 수집된 패키지의 서명은 패키징한 주체를 증명하고 그 바이트를 보호합니다. 그러나 모든 업스트림 출처가 조회되었고, 모든 수집 실행이 끝났고, 모든 형식이 처리되었고, 라이선스와 권한에 따라 이용 가능한 모든 항목이 포함되었음을 증명하지는 않습니다.

서류 폴더에 흠잡을 데 없는 인장이 찍혀 있어도, 보관소에서 통째로 서랍 하나가 빠져 있을 수 있습니다. 인장 검사는 그 서랍을 복원해 주지 않습니다.

마찬가지로 얕은 검증을 깊은 신뢰 진술처럼 보여서는 안 됩니다. Relying Party는 먼저 CoSERV 껍질을, 그다음 포함된 CoRIM을, 그다음 Endorsement의 권위를 검증하고, 마지막으로 그것이 구체적 Evidence에 적용되는지 판단할 수 있습니다. 각 층은 서로 다른 책임과 오류를 갖습니다. 바깥의 성공은 진실과 관련성을 안으로 자동 상속하지 않습니다.

만료 시점은 시간 경계를 제공할 뿐, 포괄 범위의 증명이 아닙니다. 무기한의 '현재'로서의 재사용을 막고 결과를 그 RIM들의 유효성에 결합합니다. 1분 전에 생성된 응답도 불완전한 보유 집합을 정확히 재현할 수 있습니다.

캐시는 빈틈도 보존한다

결정론적 쿼리는 안정적인 HTTP 캐시 키로 적합합니다. 서명된 결과는 유효 기간 내에 재사용될 수 있고, 계산 부하는 줄고 가용성은 높아집니다. 그러나 이로써 세 시점이 생깁니다. 공급자 보유 집합의 변경, 캐시에 의한 검색, Relying Party의 결정입니다.

캐시는 유효한 부분 응답을 반복적으로 제공하며 모든 것이 옳을 수 있습니다. 그래도 프로토콜이 '서명 유효'만 기록한다면 결정 이력이 사라집니다. 어떤 캐시가 응답했는지, 언제 객체를 받았는지, 어떤 Freshness 규칙과 Validator가 적용되었는지, 공급자가 그 사이에 새로운 데이터 세대를 가졌는지입니다.

Lucas Pardue는2026년 8월 15일자 초기 HTTPDIR 검토에서 이 초안을 'Not Ready'로 평가하며 캐시, 프라이버시, HEAD, 쿼리 크기, Validator, Freshness를 다루었습니다. 이는 검토자의 평가이지 워킹 그룹 합의도, IETF의 거부도 아닙니다. 완전성 한계는 이미 부분 집합 및 빈 집합 규칙에서 도출되며, 그 리뷰는 추가로 기록해야 할 HTTP 상태들을 부각할 뿐입니다.

검색 영수증

CoSERV를 범용 완전성 인증서로 부풀릴 필요는 없습니다. 그 옆에 운영상의 검색·포괄 영수증이 있어야 합니다. 그것은 최소한 다음을 결합합니다.

  • 결정론적 쿼리 바이트 또는 원본에 대한 통제된 접근이 있는 보호된 지문;
  • 프로파일, 결과 유형, 셀렉터 논리;
  • 요청된 RIM 키 또는 선택 분기;
  • 공급자, 조회된 데이터 세대, 그 포괄 범위에 대한 제한된 설명;
  • 제공된 키와 아티팩트;
  • 이유와 함께 알려진 누락. 예: 이용 불가, 권한 없음, 불일치, 유효하지 않음, 미지원, 검색 오류;
  • 출처 체인을 포함한 원본 대비 수집 객체의 출처;
  • RIM 유효성, 결과 만료, 검색 시각, 캐시 경로;
  • 서명 및 구조 검증 결과;
  • 현지 평가, 조치, 재요청의 트리거.

이 필드들이 다시 신호등 안에서 사라져서는 안 됩니다. 포괄 범위는 공급자의 주장입니다. 서명된 누락 사유는 공급자가 그것을 설명했다는 것을 증명할 뿐, 그것이 객관적으로 사실임을 증명하지 않습니다. 현지의 승인 또는 제한은 또 하나의 독립된 사실입니다.

이해하기 쉬운 영수증은 이렇게 말할 수 있습니다. 다섯 개의 키 중 세 개가 제공되었고, 하나는 권한이 없었으며, 하나는 이 세대에서 이용 불가였다. 세 객체는 검증을 통과했다. 애플리케이션은 두 번째 출처 또는 새로운 세대가 나올 때까지 기능을 제한했다. 이런 체인은 검증 가능합니다. 'CoSERV OK'는 반복만 가능합니다.

출처