PAdES 베이스라인 프로파일
Spec: ETSI EN 319 142-1 ETSI EN 319 142-1 Spec: ISO 32000-2, §12.8 ISO 32000-2 §12.8 Spec: RFC 3161 RFC 3161 Evidence: Standard-backed
한눈에 보기
섹션 제목: “한눈에 보기”PAdES는 네 가지 베이스라인 레벨을 정의합니다 — B-B, B-T, B-LT, B-LTA — 그리고 이 레벨들은 차례로 누적됩니다. 각 레벨은 특정한 종류의 증거를 하나씩 더합니다. 이 페이지는 그 진행 과정을 설명하고, 이름만 익숙한 가장 높은 레벨이 아니라 의무를 여전히 충족하는 가장 낮은 레벨을 선택할 수 있도록 돕습니다.
이것이 중요한 이유
섹션 제목: “이것이 중요한 이유”사람들은 “B-LTA”가 가장 철저해 보인다는 이유로, 또는 “B-B”가 일이 가장 적어 보인다는 이유로 해당 레벨을 선택하곤 합니다. 둘 다 추측에 불과합니다. 필요한 레벨을 결정하는 기준은 선호가 아니라 다음 한 가지 질문입니다: 이 서명은 얼마나 오래, 그리고 누구에 의해 검증 가능한 상태로 유지되어야 하는가? 너무 낮게 고르면 서명일에는 유효했던 서명이 인증서가 만료되는 시점에 검증 불가능해집니다. 너무 높게 고르면 필요하지 않았던 타임스탬프 기관과 검증 자료 인프라, 그리고 계속 유지해야 하는 보관 의무까지 떠안게 됩니다. 서명 후 레벨을 바꿀 수 없다면, 나중에 누군가는 잘못 선택한 레벨의 비용을 치르게 됩니다.
요약하자면
섹션 제목: “요약하자면”- 네 가지 레벨은 누적적입니다. 각 레벨은 이전 레벨에 한 가지 요소를 더합니다.
- B-B — 필수 서명 속성을 갖춘 서명. 누가 서명했고 무엇에 서명했는지를 증명합니다.
- B-T — B-B에 서명 값에 대한 신뢰할 수 있는 타임스탬프를 더한 것. 서명자의 시계와 무관하게 언제를 증명합니다.
- B-LT — B-T에 내장된 검증 자료(인증서와 폐기 데이터)를 더한 것. 문서 자체가 서명 시점에 인증서가 유효했다는 증거를 포함합니다.
- B-LTA — B-LT에 시간이 지남에 따라 반복되는 문서 타임스탬프를 더한 것. 전체를 수십 년 동안, 그리고 알고리즘 변경 이후에도 검증 가능한 상태로 유지합니다.
- 가장 안전해 보이는지가 아니라 의무의 수명을 기준으로 레벨을 고르십시오.
NextPDF가 접근하는 방식
섹션 제목: “NextPDF가 접근하는 방식”NextPDF는 레벨을 명시적이고 순서가 있는 선택으로 모델링하며, 실제로 만들 수 없는 레벨을 가장하지 않습니다. 여러분이 레벨을 요청하면 엔진은 정확히 그 레벨을 생성하거나 실행 가능한 오류와 함께 실패합니다. 더 낮은 레벨로 조용히 서명한 뒤 규정 준수 기록이 더 높은 레벨을 주장하도록 두지 않습니다. 이 설계는 인프라가 없을 때 B-LTA 요청이 B-T로 조용히 다운그레이드되는 상황을 막기 위한 것입니다. 각 레벨의 요구 사항은 술어로 인코딩됩니다: 타임스탬프가 필요한지, 내장된 검증 자료가 필요한지, 문서 타임스탬프가 필요한지. 엔진은 이 술어들을 따라 요구 사항을 충족하거나 실행을 중단합니다.
아래 진행 과정은 엔진이 강제하고 표준이 정의하는 흐름과 동일합니다.
| 레벨 | 이전 레벨에 더하는 것 | 이 레벨이 답하는 질문 | 배포 환경에 필요한 것 |
|---|---|---|---|
| B-B | 서명 속성: content-type, message-digest, signing-time, signing-certificate-v2 | 누가 서명했으며, 정확히 어떤 바이트인가? | 서명 키와 인증서 |
| B-T | 서명 값에 대한 신뢰할 수 있는 타임스탬프 | 증명 가능한 방식으로 언제 서명되었는가? | 타임스탬프 기관(TSA) |
| B-LT | 내장된 인증서 + 폐기 데이터(DSS) | 서명 시점에 인증서가 유효했는가 — 나중에 증명 가능한가? | TSA + 서명 시점의 폐기 데이터 접근 |
| B-LTA | 시간에 걸쳐 갱신 가능한 문서 타임스탬프 | 이것이 수십 년 뒤에도 여전히 검증 가능할까? | TSA + 재타임스탬프를 수행하는 보관 프로세스 |
가장 중요한 전환점은 B-T에서 B-LT로 넘어가는 지점입니다. B-T는 언제를 증명합니다. B-LT는 문서가 신뢰 측면에서 자기 완결성을 갖추게 합니다: 인증 기관에 계속 연결할 수 있고 몇 년 뒤에도 질의에 응답하리라는 전제에 의존하지 않게 됩니다.
- Step 1 of 4: ISO 32000-2 §12.8 — signatures, LTV, document timestamp
- Step 2 of 4: ETSI EN 319 142-1 PAdES baseline levels B-B…B-LTA
- Step 3 of 4: RFC 3161 Timestamp token (introduced at B-T)
- Step 4 of 4: RFC 6960 OCSP revocation evidence (embedded at B-LT)
증거가 말하는 것
섹션 제목: “증거가 말하는 것” Evidence: Standard-backed 레벨 정의는
ETSI의 것입니다. Spec: ETSI EN 319 142-1 ETSI EN 319 142-1 는 PAdES 베이스라인
레벨을 정의하고, Spec: ETSI EN 319 142-2, §5.3 ETSI EN 319 142-2 §5.3 는
signature-time-stamp 속성을 그 존재 여부가
타임스탬프 적용 레벨을 B-B와 구분하는 선택적 요소로 제시합니다.
Spec: ETSI EN 319 142-2, §6.3.2.2 ETSI EN 319 142-2 §6.3.2.2 는 신뢰할 수 있는
타임스탬프를 서명 생성 직후에 적용해야 한다고 명시하여, 기록된
시간이 실제 서명 시간에 최대한 가까워지도록 합니다.
Spec: ETSI EN 319 142-2, §5.5 ETSI EN 319 142-2 §5.5 는 장기적인
동작에는 문서 보안 저장소와 문서 타임스탬프가 모두 필요하다고 명시하며 —
이는 B-LT와 B-LTA가 더하는 요소입니다.
컨테이너 측면에서는 Spec: ISO 32000-2, §12.8.3.3 ISO 32000-2 §12.8.3.3 가 해당됩니다: PAdES 서명은 장기 검증과 결합된 CAdES CMS 프로파일이며 (§12.8.4), 문서 타임스탬프 딕셔너리(§12.8.5)와 함께 정확히 ETSI EN 319 142-1이 기술하는 내용 그대로입니다. B-LT가 중요한 이유는 다음에서 드러납니다 Spec: RFC 6960, §4.4.4 RFC 6960 §4.4.4 : 보관된 폐기 증거는 서명이 생성된 날 해당 서명을 신뢰할 수 있었다는 증명에 기여합니다 인증서가 이미 오래전에 만료되었더라도 말입니다. 그것이 바로 그 증거를 내장하는 핵심 이유입니다.
NextPDF의 엔진은 각 레벨을 요구 사항 술어로 인코딩하여 요청된 레벨을 생성하거나 실패합니다 — 만들지 않은 레벨을 광고하지 않습니다.
실용 예제
섹션 제목: “실용 예제”API는 그 진행 과정을 반영합니다: 여러분이 레벨을 지정하면 엔진은 이를 계약으로 취급합니다.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// The level is an explicit, ordered choice — not a flag you hope is honoured.$level = SignatureLevel::PAdES_B_T;
// The level itself tells you what it requires, before you sign:$level->requiresTimestamp(); // B-T and above → true$level->requiresDss(); // B-LT and above → true$level->requiresDocumentTimestamp(); // B-LTA only → true
// Ask for B-LTA only if the deployment can actually fulfil it.// The engine produces exactly the requested level or fails with an// actionable error — it never silently signs lower and reports higher.B-LTA를 요청했는데 배포가 B-LTA에 필요한 것을 제공할 수 없으면, 기본 동작은 실패하고 도달할 수 있었던 가장 높은 레벨을 알려 주는 것입니다 — B-T 파일에 B-LTA 라벨을 붙여 조용히 돌려주는 것이 아닙니다.
흔한 오해
섹션 제목: “흔한 오해”흔한 함정은 “B-LTA는 그냥 가장 좋은 것이니 항상 그것을 고르라”는 생각입니다. B-LTA는 추상적으로 더 좋은 것이 아닙니다; 그것은 더 많은 것이며, 더 많음에는 의무가 따릅니다. 그것은 타임스탬프 기관, 서명 시점에 수집된 폐기 자료, 그리고 보호 알고리즘이나 타임스탬프 인증서가 약해지기 전에 문서를 재타임스탬프하는 지속적인 보관 프로세스를 필요로 합니다. 아무도 재타임스탬프하지 않는 B-LTA 파일은 미래에 대비된 것이 아닙니다 — 형식만 더한 B-LT 파일일 뿐입니다. 반대로, 10 년을 견뎌야 하는 계약에 대한 B-B는 “가벼운” 선택이 아닙니다; 그것은 인증서가 만료되는 날 검증에 실패할 서명입니다. 올바른 레벨은 의무가 요구하는 바로 그 레벨이며, 더 높지도 더 낮지도 않습니다.
한계와 경계
섹션 제목: “한계와 경계”NextPDF는 요청된 PAdES 레벨을 생성합니다; 그 레벨이 의존하는 당사자 자체를 제공하지는 않습니다. 타임스탬프 기관, 인증서 체인, 신뢰 앵커, 그리고 서명 시점에 폐기 데이터를 가져오는 연결성은 배포 측의 책임입니다. 엔진은 구조를 구현하고 레벨 계약을 강제합니다; 엔진이 TSA를 신뢰할 수 있게 만들거나 인증서를 유효하게 만들 수는 없습니다. 생성된 구조는 그 레벨이 요구하는 요소들을 지니며, 엔진 자체의 테스트와 인용된 조항에 대해 검증됩니다. 이는 제3자 적합성 인증이 아니며, 이 페이지는 eIDAS 법적 효력을 주장하지 않습니다. 이는 인증서, 서명자, 그리고 관할권에 달려 있습니다. 서명 시간이 독립적으로 신뢰되는지는 타임스탬프와 신뢰할 수 있는 시간에서 다루고, 장기 증거가 서명을 어떻게 살아 있게 유지하는지는 장기 검증에서 다룹니다.
기대치를 정확히 설정하기 위한 몇 가지 경계:
- B-LT와 B-LTA는 적합성 판정이 아니라 장기 검증 구조를 생성합니다. 엔진이 작성하는 것은 문서 보안 저장소 딕셔너리와 문서 타임스탬프 리비전입니다 — Type = DocTimeStamp인 서명 딕셔너리로서, Spec: ISO 32000-2, §12.8 ISO 32000-2 §12.8 를 따릅니다. 그 구조가 여기서 프로파일 적합성 테스트를 거친 것으로 광고되지는 않습니다; ETSI EN 319 142-1 프로파일 검사는 Pro 및 Enterprise CI 레인에서 릴리스 게이트로 처리되므로, 이 페이지는 생성된 파일에 대해 ETSI EN 319 142-1 적합성을 주장하지 않습니다.
- 암호화된 문서는 B-LT와 B-LTA에 대해 fail-closed됩니다. 암호화된 문서에 대한 장기 레벨 요청은 부분적인 장기 리비전을 작성하는 대신 실행 가능한 오류와 함께 중단됩니다.
각 레벨의 등급별 가용성 — 네 가지 모두 동일한 상위 수준 심 setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)->save()를 통해 사용할 수 있습니다:
| Edition | Availability |
|---|---|
| Core | PAdES B-B — 서명 속성 베이스라인; Core 심. |
| Pro | PAdES B-T를 더합니다 — 서명 값에 대한 신뢰할 수 있는 타임스탬프이며,
|
| Enterprise | PAdES B-LT와 B-LTA를 더합니다 — 내장된 검증 자료(DSS)와 갱신 가능한 문서 타임스탬프 보관 루프를 추가합니다. 이들은 동일한 상위 수준 심을 통해 실행되지만, Pro와 Enterprise 패키지가 둘 다 설치된 경우에만 실행됩니다; 어느 하나라도 빠지면, 호출은 부분적인 장기 리비전을 작성하기보다 fail-closed됩니다. |
관련 문서
섹션 제목: “관련 문서”- 서명이 PDF에 자리하는 방식 — 모든 레벨이 그 위에 쌓이는 바이트 범위와 딕셔너리 기반.
- 장기 검증 — B-LT와 B-LTA가 실제로 무엇을 내장하는지, 그리고 그것 없이 유효한 서명이 왜 나중에 실패할 수 있는지.
- 타임스탬프와 신뢰할 수 있는 시간 — B-T가 도입하고 B-LTA가 갱신하는 RFC 3161 타임스탬프.
- 서명 합의 워크플로 — 선택한 PAdES 베이스라인 레벨을 실제로 작동시키는 실용 워크플로.
용어집
섹션 제목: “용어집”- PAdES — PDF 고급 전자 서명(PDF Advanced Electronic Signatures); PDF용 CMS 서명을 프로파일링하는 ETSI EN 319 142 시리즈.
- 베이스라인 레벨 — B-B, B-T, B-LT, B-LTA 중 하나; 정의된 누적 필수 서명 요소 집합.
- B-B — 필수 서명 속성을 갖춘 베이스라인 서명.
- B-T — B-B에 서명 값에 대한 신뢰할 수 있는 타임스탬프를 더한 것.
- B-LT — B-T에 내장된 장기 검증 자료(DSS)를 더한 것.
- B-LTA — B-LT에 보관 유효성을 위한 갱신 가능한 문서 타임스탬프를 더한 것.
- DSS — 문서 보안 저장소(Document Security Store); 내장된 인증서와 폐기 데이터를 담는 PDF 구조.
- TSA — 타임스탬프 기관(Time-Stamp Authority); RFC 3161 타임스탬프 토큰을 발급하는 신뢰할 수 있는 서비스.