Enterprise 에디션
증거
한눈에 보기
섹션 제목: “한눈에 보기”NextPDF Enterprise는 문서별 검증 발견 사항을 결정적 JSON 형태와 안정적인 SHA-256 다이제스트를 갖춘 봉인되고 불변인 패키지로 조립하며, 선택적으로 RFC 3161 타임스탬프 토큰을 담습니다. 증거 캡처는 감사 워크플로를 지원합니다. 법적 증명, 감사 인증, 또는 문서가 준수한다는 증거가 아닙니다.
가용성 및 라이선스
섹션 제목: “가용성 및 라이선스”이 기능은 NextPDF Enterprise(nextpdf/enterprise)에서 제공되며, Enterprise 계층 라이선스 엔벨로프로 활성화됩니다. 해당 권한이 없는 배포는 이 기능의 클래스를 로드하지 않습니다. 에디션 비교 및 라이선스 받기.
composer require nextpdf/enterprise:^3개념 개요
섹션 제목: “개념 개요”EvidencePortal이 진입점입니다. generateEvidence($documentHash, $records, $tsaTimestamp)는 EvidenceRecord 인스턴스 목록을 EvidencePackage로 조립하고, 통과/실패 통계를 계산하고, EvidenceStoreInterface를 통해 패키지를 지속하고, 봉인된 패키지를 반환합니다. EvidenceRecord는 하나의 정책 검사를 캡처합니다. 정책 이름, 통과 플래그, 세부 정보, 그것을 생성한 검증기 버전, 그리고 타임스탬프입니다.
EvidencePackage는 한 번 구성되면 불변입니다. 패키지 id, 검증된 문서의 SHA-256, 레코드, 집계 개수, 생성 시각, 그리고 선택적 RFC 3161 타임스탬프 토큰을 담습니다. allPassed()와 passRate()가 이를 요약합니다. 그 불변성은 패키지를 한 번 쓰고 여러 번 읽기(WORM) 저장소에 적합하게 만듭니다.
EvidenceExporter는 패키지를 결정적 JSON 문자열 — 고정된 키 순서로, 재현 가능한 —로 직렬화하므로, exportHash()는 무결성 검증을 위한 안정적인 64자 SHA-256 다이제스트를 반환합니다. 동일한 패키지는 언제 어디서 계산되든 항상 동일한 다이제스트를 산출합니다.
ContinuousMonitor는 문서를 다시 검증하고 현재 증거를 실패한 정책 이름별로 저장된 이전 증거와 비교하여, 이슈를 신규, 해결됨, 또는 변경 없음으로 분류하고, 일정 검사(isDue() / MonitorSchedule / MonitorFrequency)를 노출합니다. 이는 시간에 따른 드리프트 탐지를 지원합니다. 무엇이 변경되었는지 보고할 뿐, 어느 시점에서도 법적 지위를 단언하지 않습니다.
여기서 “evidence”가 의미하는 것
섹션 제목: “여기서 “evidence”가 의미하는 것”이 모듈은 감사 워크플로를 위해 검증 발견 사항을 패키징하고 타임스탬프합니다. 어떤 것도 인증하지 않습니다.
- RFC 3161 타임스탬프 토큰은 패키지 데이텀을 시간 값에 바인딩합니다. 데이터가 그 시간 이전에 존재했다는 증거를 제공합니다. 법적 증명이 아니며, 타임스탬프된 콘텐츠가 준수하거나 유효하다고 단언하지 않습니다.
allPassed() === true인 봉인된 패키지는 포함된 검사가 그것이 구현하는 규칙에 대해 통과했음을 기록합니다. 감사 인증이 아닙니다.- 결정적 다이제스트는 패키지 바이트의 무결성을 증명합니다. 문서의 규제 충족성을 증명하지 않습니다.
증거 캡처는 감사 워크플로를 지원합니다. 법적 증명이나 감사 인증이 아닙니다. 유효성과 적합성은 여전히 최종 파일과 검증기의 속성으로 남습니다.
계층 경계
섹션 제목: “계층 경계”증거 패키징은 Enterprise 전용 표면입니다. Core와 Pro는 발견 사항과 보고서를 생성합니다. Enterprise Evidence는 그러한 발견 사항을 불변이고 결정적이며 선택적으로 타임스탬프된 패키지로 봉인하고 회귀를 추적합니다. 다른 곳(Validation 또는 Compliance 표면)에서 생성된 발견 사항에 의존합니다. 그 자체가 적합성 검사를 수행하지는 않습니다.
이렇게 작동하는 이유
섹션 제목: “이렇게 작동하는 이유”증거는 나중에 조용히 다시 쓸 수 없어야만 유용하므로, EvidencePackage는 뮤테이터가 없는 봉인된 readonly 값입니다 — 한 번 쓰고 여러 번 읽기 저장소에 안전합니다. 익스포터의 toJson() 출력은 런타임 정렬이 아니라 고정된 키 삽입 순서를 따르므로, 동일한 패키지는 항상 동일한 바이트로 직렬화됩니다. 그 바이트 안정성 덕분에 저장된 exportHash()가 나중에 무결성을 검증할 수 있습니다. 패키지에 대한 어떤 변경이든 다이제스트를 바꿉니다. RFC 3161 토큰은 판정이 아니라 시간의 임베드된 증거로 유지되므로, 패키지는 문서가 준수한다고 단언하지 않고 검사가 언제 실행되었는지를 증명합니다. 그런 다음 회귀 추적은 실패한 정책 이름별로 이전 패키지와 비교하므로, 드리프트 탐지는 검사 순서나 개수와 무관하게 유지됩니다.
디자인 배경: 감사자에게 건넬 수 있는 준수.
API 표면
섹션 제목: “API 표면”| 클래스 | 책임 |
|---|---|
EvidencePortal | 증거 패키지를 조립, 지속, 조회합니다. |
EvidencePackage | 집계 통계를 갖춘 불변 봉인 레코드 묶음. |
EvidenceRecord | 검증기 버전과 타임스탬프를 갖춘 하나의 정책 검사 결과. |
EvidenceExporter | 결정적 JSON 직렬화; 안정적인 SHA-256 다이제스트. |
EvidenceStoreInterface | 지속성 계약. |
InMemoryEvidenceStore | 참조 인메모리 저장소 구현. |
ContinuousMonitor | 다시 검증하고 이전 증거와 비교합니다. |
MonitorResult | 신규 / 해결됨 / 변경 없음 이슈 분류. |
MonitorSchedule / MonitorFrequency | 일정 기반 폴링. |
코드 샘플 — 빠른 시작
섹션 제목: “코드 샘플 — 빠른 시작”$package = $portal->generateEvidence($documentHash, $records);$digest = $exporter->exportHash($package); // 64-char SHA-256코드 샘플 — 프로덕션
섹션 제목: “코드 샘플 — 프로덕션”$package = $portal->generateEvidence($documentHash, $records, $tsaToken);$logger->info('evidence.sealed', [ 'package' => $package->packageId, 'digest' => $exporter->exportHash($package), 'pass_rate' => $package->passRate(),]);
$delta = $monitor->check($package, $documentHash);if ($delta->newIssues !== []) { $logger->warning('evidence.regression', ['count' => count($delta->newIssues)]);}// The package is audit-supporting evidence, not an attestation of compliance.엣지 케이스 및 함정
섹션 제목: “엣지 케이스 및 함정”- 발견 사항이 없으면
passRate()는 0.0을 반환합니다. 빈 패키지는 통과가 아닙니다. - 내보내기는
EvidenceExporter를 통해서만 결정적입니다. 임의의 직렬화를 해싱하면 안정적 다이제스트 보장이 깨집니다. - TSA 토큰이 없는 패키지도 여전히 유효한 증거입니다. 토큰은 판정이 아니라 시간 바인딩을 추가합니다.
패키징과 결정적 직렬화는 레코드 수에 따라 선형적으로 증가합니다. 다이제스트 계산은 직렬화된 JSON에 대한 단일 SHA-256 패스입니다.
보안 참고
섹션 제목: “보안 참고”패키지 다이제스트는 패키지 바이트에 대한 변조 증명을 제공합니다. 선택적 RFC 3161 토큰은 신뢰할 수 있는 TSA에서 와야 합니다. 이 모듈은 토큰을 임베드할 뿐 TSA를 보증하지 않습니다. 레코드 세부 정보를 잠재적으로 민감한 것으로 취급하십시오(아래 참조).
데이터 레지던시 및 PII 완화
섹션 제목: “데이터 레지던시 및 PII 완화”증거 레코드와 문서 해시는 규제 콘텐츠를 참조할 수 있습니다. 패키징은 인프로세스입니다. 지속성은 귀하의 EvidenceStoreInterface 구현에 위임되므로 레지던시는 귀하의 저장소를 따릅니다. 저장된 패키지에 보존 및 최소화 통제를 적용하십시오.
안전한 텔레메트리 및 로그 스크러빙
섹션 제목: “안전한 텔레메트리 및 로그 스크러빙”패키지 메타데이터(id, 다이제스트, 개수)는 로그에 기록해도 안전합니다. 레코드 세부 정보는 추출된 문서 문자열을 담은 발견 사항 메시지를 그대로 표시할 수 있습니다. 공유 싱크로 전달하기 전에 스크러빙하십시오.
적합성
섹션 제목: “적합성”| 동작 | 참조 | 상태 |
|---|---|---|
| 타임스탬프 토큰이 데이텀을 시간에 바인딩함 | IETF RFC 3161 §2 | 토큰 임베드됨(TSA 제공) |
| DSS / 장기 검증 맥락 | ISO 32000-2:2020 §12.8 | 참조됨(여기서 생성이 아니라 소비됨) |
이 표는 이 모듈이 기반으로 구축된 명세를 기록합니다. 타임스탬프 토큰은 시간의 증거이며, 인증이나 법적 증명이 아닙니다.
FIPS 모드 동작
섹션 제목: “FIPS 모드 동작”이 모듈은 패키지 바이트에 대해 SHA-256을 계산하고 호출자가 제공한 RFC 3161 토큰을 임베드합니다. 서명이나 키 보관을 수행하지 않습니다. 암호화 작업과 FIPS 모드 동작은 Security 및 Signature 모듈에서 처리됩니다.
위협 모델
섹션 제목: “위협 모델”입력은 발견 사항과 선택적 TSA 토큰입니다. 완화책은 불변 패키지, 안정적 무결성 다이제스트를 갖춘 결정적 직렬화, 그리고 저장소가 WORM과 액세스 제어를 강제하도록 위임된 지속성입니다.
동작 계약
섹션 제목: “동작 계약”- 포털은 발견 사항을 패키지 id, 검증된 문서의 SHA-256, 레코드, 집계 개수, 생성 시각, 그리고 선택적 RFC 3161 타임스탬프 토큰을 갖춘 불변이고 봉인된 패키지로 조립합니다.
- 익스포터는 패키지를 고정된 키 순서를 갖춘 결정적 JSON 문자열로 직렬화하므로, 다이제스트는 언제 어디서 계산되든 동일한 안정적인 64자 SHA-256입니다.
- 연속 모니터는 다시 검증하고 현재 증거를 실패한 정책 이름별로 저장된 이전 증거와 비교하여, 이슈를 신규, 해결됨, 또는 변경 없음으로 분류합니다.
- 발견 사항이 없으면
passRate()는 0.0을 반환합니다 — 빈 패키지는 통과가 아닙니다. TSA 토큰이 없는 패키지도 여전히 유효한 증거입니다. - 타임스탬프 토큰은 데이터가 어떤 시간 이전에 존재했다는 증거입니다. 법적 증명이 아니며 콘텐츠의 준수나 유효성에 대해 어떤 주장도 하지 않습니다.
공개 경계
섹션 제목: “공개 경계”이 페이지는 외부에서 관찰 가능한 동작과 지원되는 공개 API 표면만 문서화합니다. 내부 네임스페이스 경로, 헬퍼 클래스, 메커니즘 표, 런북 파일명, 티켓 접두사는 범위 밖입니다.
Core 폴백
섹션 제목: “Core 폴백”Core와 Pro는 발견 사항과 보고서를 생성합니다. 그러한 발견 사항을 회귀 추적을 갖춘 불변이고 결정적이며 선택적으로 타임스탬프된 패키지로 봉인하는 것에는 Core 계층의 등가물이 없습니다. Enterprise 표면은 다른 곳에서 생성된 발견 사항에 의존합니다. 그 자체가 적합성 검사를 수행하지는 않습니다.
Pro 폴백
섹션 제목: “Pro 폴백”Pro 폴백 — 없음. 이 기능에는 Pro 계층의 등가물이 없습니다. 봉인된 증거 패키지, 결정적 익스포터, 연속 모니터는 nextpdf/enterprise 패키지로만 제공됩니다. 이 표면은 Validation 또는 Compliance 표면에서 발견 사항을 소비합니다.
Enterprise 경계 참고
섹션 제목: “Enterprise 경계 참고”포털, 패키지, 익스포터, 모니터는 동작 수준에서 설명됩니다. 참조 인메모리 저장소는 문서화되어 있습니다. 영속적 지속성은 호스트가 제공하며, 내부 저장소 내부 사항은 공개 표면의 범위 밖입니다. 이 모듈은 호출자가 제공한 TSA 토큰을 임베드합니다. TSA를 보증하지는 않습니다.
배포 경계
섹션 제목: “배포 경계”패키징과 직렬화는 인프로세스입니다. 운영자는 내구성 있는 저장소 구현을 제공하고, WORM 강제와 액세스 제어를 책임지며, 신뢰할 수 있는 TSA에서 TSA 토큰을 제공합니다. 증거 레코드와 문서 해시는 규제 콘텐츠를 참조할 수 있습니다. 레지던시는 운영자의 저장소를 따르며, 보존 및 최소화 통제는 운영자의 책임입니다.
법률 준수 경계
섹션 제목: “법률 준수 경계”증거 캡처는 감사 워크플로를 지원합니다. 법적 증명이나 감사 인증이 아니며, 유효성과 적합성은 여전히 최종 파일과 검증기의 속성으로 남습니다. 이 문서는 법률 의견이 아닙니다. 자체 준수 담당자 및 법률 자문에게 문의하십시오.
함께 보기
섹션 제목: “함께 보기”- Validation — 여기에 패키징되는 발견 사항을 생성합니다.
- Compliance — 외부 검증기 결과.
- AST audit trail — 추가 전용 변경 이력.
- Specifications: PAdES — 장기 검증 맥락.
- Evidence — Deep Reference — 전체 클래스 수준 API 레퍼런스.