서명된 에이전트 영수증도 지원되지 않는 클레임을 할 수 있다
요약
AI 에이전트가 발행하는 '영수증'의 신뢰성 문제를 다루며, 단순한 서명만으로는 동작의 진실성을 보장할 수 없음을 지적합니다. 따라서 동작 영수증을 무결성/출처, 발생, 승인, 확인 실행 등 네 가지 독립적인 속성으로 분해하여 검증하는 강력한 설계 방식을 제안합니다.
핵심 포인트
- 서명은 오직 엔벨로프 무결성만 보장한다.
- 동작 영수증을 4가지 독립적 속성(발생, 승인, 확인 실행)으로 분해해야 한다.
- 각 권위 주체는 별도의 암호학적 신뢰 영역을 가져야 위변조가 불가능하다.
- 형식적으로 유효해도 의미론적으로 지원되지 않는 클레임은 거부되어야 한다.
AI 에이전트는 자신이 수행한 작업(도구 호출, 결제 승인, 정책 확인 등)에 대해 서명된 '영수증'을 점점 더 많이 발행합니다. 이는 정규화되고, 콘텐츠 주소 지정되며, 서명된 기록 형태로 포장됩니다. 방향성은 맞습니다. 함정은 잘 구성된 서명 기록을 진실한 것으로 읽는 것입니다.
유효한 서명은 정확히 한 가지를 확립합니다: 제시된 바이트가 특정 공개 키로 검증된다는 것입니다. 이 키와 식별된 권위 주체 간의 신뢰할 수 있는 결속(binding)이 있다면, 서명자의 출처(provenance) 또한 확립할 수 있습니다. 하지만 그것은 해당 동작이 발생했는지, 승인되었는지, 또는 기록에 설명된 확인 절차가 실제로 실행되었는지를 확립하지는 못합니다.
그래서 저는 동작 영수증을 네 가지 별도로 평가 가능한 속성으로 분해하기 시작했습니다:
- 엔벨로프 무결성 및 인증된 출처(Envelope integrity and authenticated provenance) — 바이트가 온전한지, 그리고 서명 키가 주장된 서명자에게 신뢰할 수 있게 결속되어 있는지?
- 발생(Occurrence) — 동작이 발생했는지 (그리고 어떤 상태였는지: 요청됨, 시도됨, 완료됨, 실패함, 정산됨)?
- 승인(Authorization) — 정확한 매개변수를 가진 해당 동작이 승인되었는가?
- 확인 실행 및 무결성(Check execution and integrity) — 주장된 확인 절차가 실행되었는지, 아니면 '검증됨'이 실패 시 기본값(fail-open default)인가?
서명은 오직 엔벨로프 속성만 지원합니다. 나머지 세 가지는 관련 권위 주체(확인자, 승인 권한 주체, 실행 권한 주체)가 제공하는 독립적으로 검증 가능한 증거를 필요로 합니다. 여기서 시연된 더 강력한 설계에서는 각 권위 주체가 별도의 암호학적 신뢰 영역을 차지하므로, 영수증 발행자는 그들의 증명(attestations)을 위조할 수 없습니다.
테스트할 가치가 있는 주장은 다음과 같습니다:
형식적으로 유효하고, 올바르게 서명되었지만, 주장된 클레임이 의미론적으로 지원되지 않는 영수증은 거부되어야 한다.
저는 이 주장을 실행 가능하게 만들었습니다. 각 권위 주체는 고유한 Ed25519 키 쌍을 받고, 검증자는 신뢰할 수 있는 공개 키만 보유합니다. 부정적인 시나리오에는 다음이 포함됩니다:
- 대체된 검사 결과(substituted checker result);
- 오래된 기록(stale transcript);
- 다른 매개변수에 바인딩된 권한 부여(authorization bound to different parameters);
- 다른 동작에 바인딩된 실행 승인(execution acknowledgment bound to a different action); 및
- 자신에게 권한 증명(authority attestation)이 없는 검사에 대해 주장하는 방출기(emitter).
봉투 서명은 모든 경우에 검증됩니다. 클레임 수준의 검증자는 여전히 특정 의미론적 이유로 각 영수증을 거부합니다.
이는 현장 평가가 아닌 통제된 시연입니다. 이는 공식적인 적합성(formal-conformance) 및 역량 바인딩 연구를 대체하기보다는 보완합니다. 그러한 접근 방식들은 통제와 역량이 올바르게 정의되거나 행사되는지 테스트합니다. 이 시연은 다른 경계를 테스트합니다: 증거 아티팩트가 자신의 지원 트레이스(supporting trace)가 입증할 수 있는 것보다 더 많이 주장하는지 여부입니다.
간단한 방법론 노트는 Zenodo에 있습니다: 10.5281/zenodo.21418701 (기록: zenodo.org/records/21418702). 참조 검증자(reference verifier)와 부정 벡터(negative vectors)는 오픈 소스입니다: github.com/msaleme/red-team-blue-team-agent-fabric (모듈 protocol_tests/receipt_claim_harness.py).
제 의견입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기