요약

  • RFC 3126은 네 가지 역할을 분리했습니다. ES-T는 서명이 존재했을 때의 시점을 고정했고, ES-C는 그 서명을 검증하는 데 필요한 인증서와 폐기 증거를 기록했으며, ES-X는 그 증거를 보존하거나 보호했고, ES-A는 이전 보호가 약해지기 전에 전체 기록을 다시 타임스탬프할 수 있게 했습니다.
  • 이 형식은 신뢰를 자동으로, 영구적으로 만들지 않았습니다. 장기 검증은 정확한 바이트와 상태 자료의 보존, 올바른 서명 정책의 적용, 이른 타임스탬프와 알고리즘이 여전히 방어 가능한 동안의 아카이브 체인 갱신에 달려 있었습니다.

서명은 인증서보다 오래 살아남아도 증명을 잃을 수 있었다

디지털 서명은 복사된 비트가 사라지지 않기 때문에 내구성이 있다고 흔히 설명됩니다. 그러나 사라지는 것은 그 증거 환경입니다. 서명자의 인증서는 만료됩니다. 인증 기관은 오래된 폐기 목록 게시를 중단합니다. 온라인 상태 응답기는 변경되거나 사라집니다. 타임스탬프 기관의 인증서도 수명을 다합니다. 한때 충분하다고 여겨지던 해시는 취약해집니다. 아카이브가 파일을 마이그레이션하면 실제로 서명된 바이트가 바뀌어 버립니다.

2001년 9월에 Informational로 공개된 RFC 3126은 바로 이 시간적 불일치에서 출발했습니다. 이 표준은 나중의 분쟁을 포함해 장기간에 걸쳐 검증될 수 있는 전자 서명을 정의하는 것을 목표로 했습니다. RFC 3125의 정책 인식 서명, CMS와 ESS 컨테이너, X.509 인증서, 폐기 증거, 신뢰할 수 있는 타임스탬핑 위에 구축되었습니다. 어려운 문제는 단순히 서명 값을 보존하는 것이 아니었습니다. 그 값을 둘러싼 세계의 충분한 부분을 보존해 결정을 재구성할 수 있게 하는 것이었습니다.

이것은 모든 오래된 서명이 계속 유효해야 한다는 주장이 아니었습니다. 나중의 검증자에게는 여전히 적용 가능한 서명 정책, 수용 가능한 신뢰 앵커, 신뢰할 수 있는 증거가 필요했습니다. RFC 3126은 그 증거를 보존하기 위한 컨테이너와 절차를 설계했을 뿐, 컨테이너를 판단자로 임명하지는 않았습니다.

ES-T는 이른 시점을 고정했다

기본 전자 서명인 ES는 디지털 서명과 서명자가 제공한 다른 정보를 담았습니다. ES-T는 서명 타임스탬프를 추가했습니다. 서명자가 타임스탬프를 제공하지 않으면 검증자는 첫 수신 시점에 이를 생성하거나 첫 검증에 가까운 시점의 안전한 시간 기록을 보존해야 했습니다.

RFC 3161은 그 타임스탬프가 무엇을 말할 수 있는지 명확히 합니다. 타임스탬핑 기관은 메시지 임프린트에 서명하고 표시된 데이터가 특정 시점에 존재했다고 주장합니다. 기관은 기반이 되는 문서를 검사할 필요가 없었습니다. 따라서 그것은 진위가 아니라 시간상의 순서를 확립한 것이었습니다. 서명자의 업무 권한, 모든 정책 규칙의 준수, 거래의 성공적 완료에 대해서는 아무것도 담보하지 않았습니다.

이 좁은 주장은 침해 이후에 중요했습니다. 서명 키가 나중에 도난당했다면, 침해 전에 얻은 타임스탬프는 이른 서명을 도난당한 키로 만든 위조품과 구분하는 데 도움이 될 수 있었습니다. 그러나 타임스탬프 자체에도 인증서, 알고리즘, 정책, 검증 이력이 있었습니다. 첫 시간적 앵커는 신뢰를 이동시켰을 뿐, 제거하지는 않았습니다.

ES-C는 사라지기 전에 검증 방법을 기록했다

완전 검증 데이터인 ES-C는 ES-T 위에 구축되었습니다. 최소 형태는 검증에 사용된 인증 경로와 폐기 정보에 대한 참조를 추가했습니다. 검증자는 나중에 어떤 인증서, 인증서 폐기 목록, 상태 응답이 원래 결정을 뒷받침했는지 식별할 수 있었습니다.

시점이 이 단계를 복잡하게 만들었습니다. 완전한 폐기 정보는 서명 순간에 존재하지 않을 수 있었습니다. RFC 3126은 상태 자료가 이용 가능해질 시간을 허용했고, 임시 인증서 정지가 해결되어야 할 수 있음을 언급했습니다. 따라서 장기 증거는 서명 동작이 한꺼번에 내놓는 것이 아니라 절차로서 조립되는 것이었습니다.

참조는 여전히 포인터에 불과했습니다. URL이나 식별자는 저장소가 사라진 뒤 인증서나 상태 응답을 보존하지 못했습니다. RFC 3126은 이 경계를 보여 주기 위해 실제 값을 포함할 수 있는 확장 형식을 정의했습니다. 이 구분은 목록 항목과 아카이브된 책의 차이와 비슷합니다. 둘 다 유용하지만, 서가가 비어 버린 경우 필요한 자료를 담고 있는 것은 하나뿐입니다.

OCSP 역시 제한된 어휘를 가지고 있었습니다. RFC 2560은 good, revoked, unknown 상태를 정의하고 응답에 시각을 부여했습니다. 'Good'은 상태 문의에 대한 답이었습니다. 모든 인증서 조건, 서명자 권한, 거래 사실을 증명하지 않았습니다. 응답을 저장하는 것은 만능 판정이 아니라 나중의 정책 결정에 대한 하나의 입력을 보존하는 것이었습니다.

ES-X는 증거에 대한 증거를 보호했다

ES-X 계열은 가용성과 이후 침해 문제를 다뤘습니다. X-Long은 ES-C가 참조하는 실제 인증서 및 폐기 값을 담아 미래의 검증자가 외부 저장소에 의존하지 않도록 했습니다. X-Time-Stamp는 검증 데이터에 보호를 추가했습니다. Type 1은 ES-C 전체를 타임스탬프했고, Type 2는 그 인증서 및 폐기 참조를 타임스탬프했습니다. 이 형식들은 결합될 수 있었습니다.

이 추가 계층은 미묘한 역사적 문제에 답했습니다. 문서가 서명된 지 수년 뒤 인증 기관의 키가 침해당했다고 가정해 봅시다. 분쟁 중에 인증서를 제시하는 것만으로는 경로와 상태 자료가 침해 이전에 존재했다는 것을 보여 주지 못합니다. 검증 증거를 둘러싼 날짜가 기록된 포장은 타임스탬프 기관과 관할 정책에 따라 그 순서를 확립할 수 있었습니다.

이 설계는 모든 확장 형식을 요구하지 않았습니다. RFC 3126은 ES-X 지원을 선택 사항으로 표시했습니다. 또한 하나의 계층이 깨진 이전 계층을 수리한다고 주장하지도 않았습니다. 아카이브가 서명된 내용을 잃었거나, 잘못된 인증서 경로를 캡처했거나, 침해 이후에야 증거를 타임스탬프했다면, 더 정교한 컨테이너는 실수를 더 정밀하게 보존할 뿐입니다.

ES-A는 보존을 예정된 유지 관리로 바꿨다

아카이브 검증 데이터인 ES-A는 보호 장치 자체의 만료를 마주했습니다. 알고리즘, 키 또는 이전 타임스탬프 인증서가 약해지기 전에, 서명된 데이터, ES-C, 관련 ES-X 자료를 다시 타임스탬프해야 했습니다. 이때 더 강한 알고리즘이나 더 긴 키를 선호했습니다. 이 절차는 이전 아카이브 타임스탬프의 보호가 약해질 때마다 반복될 수 있었습니다.

아카이브 타임스탬프는 서명 값 그 이상을 덮었습니다. 서명된 내용, 서명된 속성, 서명, 이른 타임스탬프, 인증서 및 폐기 참조, 보존된 값, 선택적 확장 타임스탬프, 그리고 모든 이전 아카이브 타임스탬프를 통합했습니다. 결과는 암호학적 형태의 보관 체인이었습니다.

이것은 갱신이지 불멸이 아니었습니다. 보관 담당자는 보안 수평선을 지켜보며 오래된 증거가 여전히 검증 가능한 동안 행동해야 했습니다. 해시가 사실상 위조 가능해졌거나, TSA 키가 신뢰할 수 있는 시간적 경계 없이 침해당했거나, 기반이 되는 값이 사라졌다면, 새로운 타임스탬프는 잃어버린 이력을 복구할 수 없었습니다. 나중의 RFC 4998은 같은 유지 관리 논리를 일반 증거 기록에 대해 명시적으로 만들었고, 일반적인 타임스탬프 갱신과 아카이브 데이터를 다시 해시하는 갱신을 구분했습니다.

정확한 바이트는 역사적 기록의 일부였다

RFC 3126은 서명 생성에 사용된 OCTET STRING이 검증자나 중재자가 확인할 때마다 동일하게 유지되어야 한다고 경고했습니다. 이 요구사항은 기계적일 것 같지만, 아카이브 마이그레이션을 거버넌스 문제로 만들었습니다. 문자 집합 변환, 줄바꿈 정규화, 분리 콘텐츠의 손실, 또는 선의로 수행된 재내보내기는 문서의 겉모습을 그대로 둔 채 증거를 깨뜨릴 수 있었습니다.

따라서 내구성 있는 대상은 하나의 번들이었습니다. 정확한 서명 바이트, 서명 및 속성, 적용 가능한 정책, 인증서 경로, 시간이 한정된 폐기 자료, 타임스탬프 토큰, 보존된 검증 값, 아카이브 갱신 이력. 렌더링된 PDF와 '유효'라고 표시된 데이터베이스 필드만 남기는 것은 재현 가능한 결정을 버리는 것이었습니다.

RFC 5126은 나중에 RFC 3126을 대체하고, 그 계열을 CAdES-T, CAdES-C, CAdES-X, CAdES-A 용어로 유지했습니다. 이 연속성은 증거 사다리가 설계 패턴으로서 여전히 유용했음을 보여 줍니다. 그러나 2001년 프로필이 어느 정도 널리 배치되었는지는 확립하지 않습니다.

장기 검증은 보관 책임을 재분배했다

서명자는 원래 동작을 통제했고 이른 증거를 제공할 수 있었습니다. 검증자는 첫 타임스탬프를 생성하고 완전한 검증 데이터를 조립할 수 있었습니다. 인증서와 상태 서비스는 시간이 한정된 기록을 제공했습니다. TSA는 자체 정책에 따라 날짜가 기록된 임프린트를 제공했습니다. 아카이브 운영자는 정확한 바이트를 보존하고 체인을 갱신했습니다. 중재자나 나중의 의존 당사자는 정책과 외부 법적 또는 계약 문서에 따라 기록을 해석했습니다.

어떤 한 참여자도 전체 진실을 소유하지 않았습니다. 그 분배가 이 설계의 강점이자 운영 부담이었습니다. 나중의 검증자가 서명자의 현재 키나 온라인 서비스의 기억에만 의존하는 것을 막았지만, 직원과 시스템의 변화를 넘어 살아남아야 하는 마감일, 저장 의무, 의존성 기록을 만들어 냈습니다.

역사적 교훈은 '타임스탬프가 서명을 오래 지속하게 한다'는 것보다 더 정확합니다. RFC 3126은 내구성을 능동적 절차로 만들었습니다. 첫 검증자가 알았던 것을 기록하고, 원격 서비스가 잊을 수 있는 것을 보존하며, 그 증거를 이후 침해로부터 보호하고, 가정이 무너지기 전에 보호를 갱신하는 것입니다. 오래 지속되는 서명은 얼어붙은 동작이 아니라 계속 움직여야 하는 증거 체인이었습니다.

출처

  1. https://www.rfc-editor.org/rfc/rfc3126.txt
  2. https://www.rfc-editor.org/info/rfc3126
  3. https://datatracker.ietf.org/doc/rfc3126/
  4. https://www.rfc-editor.org/rfc/rfc3125.txt
  5. https://www.rfc-editor.org/rfc/rfc3161.txt
  6. https://www.rfc-editor.org/rfc/rfc2630.txt
  7. https://www.rfc-editor.org/rfc/rfc2634.txt
  8. https://www.rfc-editor.org/rfc/rfc2459.txt
  9. https://www.rfc-editor.org/rfc/rfc2560.txt
  10. https://www.rfc-editor.org/rfc/rfc4998.txt
  11. https://www.rfc-editor.org/rfc/rfc5126.txt
  12. https://www.rfc-editor.org/rfc/rfc5652.txt