Enterprise 에디션
검증
한눈에 보기
섹션 제목: “한눈에 보기”NextPDF Enterprise는 지정된 정책(PDF/A-4, PAdES 베이스라인, 장기 검증(LTV) 상태, ZUGFeRD, 미국 식품의약국(FDA) 21 CFR Part 11, 미국 증권거래위원회(SEC) 17a-4)에 대해 인프로세스 읽기 전용 구조 검사를 실행합니다. 결과는 구조화된 기술 보고서로 반환됩니다. 이 보고서는 법률 자문, 규정 준수 보증 또는 인증이 아닙니다.
제공 및 라이선스
섹션 제목: “제공 및 라이선스”이 기능은 NextPDF Enterprise(nextpdf/enterprise)에 포함되며 Enterprise 계층 라이선스 엔벌로프로 활성화됩니다. 해당 사용 권한이 없는 배포 환경은 이 기능의 클래스를 로드하지 않습니다. 에디션 비교 및 라이선스 받기.
composer require nextpdf/enterprise:^3개념 개요
섹션 제목: “개념 개요”Compliance가 진입점입니다. Compliance::assess($pdfBytes, $policy)를 호출하거나(또는 인스턴스를 주입하여 run()을 호출하여) 하나의 CompliancePolicy를 PDF 바이트에 적용하고 ComplianceReport를 받습니다. 정책은 작업을 정의하고, 보고서는 구조화된 결과를 제공합니다.
Policies는 사전 구축된 정책 팩토리(pdfA4(), pdfA4e(), pdfA4f(), padesBaseline(), eidasQualified(), ltvHealth(), zugferd($profile), fdaPart11(), 그리고 SEC 17a-4 제품군 sec17a4(), sec17a4Compatible(), sec17a4Structural(), sec17a4PreSign())를 제공합니다. 각 팩토리는 CompliancePolicy를 반환하며, 해당 validate() 메서드는 순수 함수입니다. PDF 바이트가 입력되면 발견 사항이 출력됩니다. 이 아키텍처는 엄격한 읽기 전용 경계를 강제합니다. 정책은 PDF 바이트를 절대 변경하지 않으므로 검증은 모든 자동 수정 동작과 분리된 상태를 유지합니다.
ComplianceReport는 발견 사항을 Severity(Error, Warning, Info)별로 그룹화합니다. passes()는 오류가 없을 때 true를 반환하며, 경고는 보고서를 실패시키지 않습니다. 보고서에는 내장 법적 고지(getDisclaimer())가 포함되며, 이 고지는 결과가 참조용 기술 구조 검사일 뿐이고 최종 판정은 자격을 갖춘 법률 또는 규정 준수 전문가가 내린다는 점을 명시합니다. 사용자에게 표시되는 출력에는 해당 고지를 반드시 표시해야 합니다.
서명에는 두 번째 경계가 중요합니다. LtvHealthCheck는 Document Security Store(DSS)의 구조적 존재 여부를 ISO 32000-2:2020 §12.8.4.3에 따라 검사하며, 임베드된 온라인 인증서 상태 프로토콜(OCSP)이나 인증서 폐지 목록(CRL) 데이터를 암호학적으로 검증하지는 않습니다. eidasQualified()는 PDF 수준에서만 PAdES 구조를 검증합니다. 실제 eIDAS 적격성은 신뢰 서비스 제공자(TSP)와 적격 인증서에 따라 달라지며, 이는 이 모듈의 범위 밖입니다.
여기서 “검증”이 의미하는 것
섹션 제목: “여기서 “검증”이 의미하는 것”이 모듈은 구조적 속성을 검사하고 발견 사항을 보고합니다. 문서를 인증하거나 해당 문서가 규제를 충족한다고 보장하지는 않습니다.
- 적합성은 이 라이브러리가 아니라 최종 파일과 검증기의 속성입니다. ISO 19005-4:2020 §5.2는 적합성을 생성 소프트웨어가 아니라 검사 도구를 통해 표준의 규범적 요구 사항에 대해 판정한다고 규정합니다.
- 통과한 보고서는 각 정책이 구현하는 규칙에 대해 검사된 결과입니다. 인증서가 아닙니다.
- FDA 21 CFR Part 11 및 SEC 17a-4 정책은 규정이 암시하는 구조적 속성(서명 존재, 서명 의도, 감사 추적 표시자, WORM(write once, read many) 제약 조건)을 검사합니다. 이러한 규정에 대한 법적 준수를 확립하지는 않습니다. 법적 충족성은 귀하의 규정 준수 팀이 판단합니다.
표준 지원은 표준 적합성이 아니며, 적합성은 인증이 아닙니다. NextPDF는 어떤 인증도 보유하지 않으며 어떤 인증도 부여하지 않습니다.
계층 경계
섹션 제목: “계층 경계”- **NextPDF Core
Compliance**는 바이트 스트림 검증기와 문법 교차 검사를 제공합니다. 발견 사항이 0건인 결과는 인증서가 아니라 검사된 결과입니다. - **NextPDF Pro
Compliance(EInvoiceValidator)**는 e-인보이스 계층에서 EN 16931 / Factur-X / ZUGFeRD를 인프로세스로 검증합니다. - **NextPDF Enterprise Validation(이 페이지)**는 아카이브, 서명, LTV 및 규제 산업 구조 검사(FDA Part 11, SEC 17a-4)를 위한 사전 구축 정책을 단일 보고서 형식과 함께 추가합니다. Enterprise Compliance 모듈은 외부 사이드카에 위임하는 별도의 표면입니다. 이 모듈은 인프로세스로 실행됩니다.
이렇게 작동하는 이유
섹션 제목: “이렇게 작동하는 이유”검증은 수정-보고 파이프라인이 아니라 순수 읽기 전용 정책의 집합으로 구축됩니다. 각 정책의 CompliancePolicy::validate()는 PDF 바이트를 받아 발견 사항을 반환하며, 문서를 절대 편집하지 않습니다. 따라서 통과한 보고서는 도구가 입력을 조용히 “도와” 통과시킨 결과가 결코 아닙니다. 이는 파일이 각 정책이 구현하는 규칙에 대해 검사되었다는 것만을 의미합니다. 바로 그 경계 때문에 모든 보고서에 내장 고지가 포함되며, 적합성이 생산자의 자기 주장이 아니라 최종 파일과 외부 검증기의 속성으로 유지됩니다. 인증과 법적 충족성은 감사인 또는 규정 준수 팀의 판단이므로, 이 모듈은 구조를 보고하고 거기서 멈춥니다.
설계 배경: 감사인에게 그대로 제출할 수 있는 컴플라이언스.
API 표면
섹션 제목: “API 표면”| 클래스 | 책임 |
|---|---|
Compliance | 진입점: 하나의 정책을 적용하고 보고서를 반환합니다. |
Policies | 사전 구축된 CompliancePolicy 인스턴스의 팩토리입니다. |
CompliancePolicy | 계약: 발견 사항을 반환하는 순수 validate()입니다. |
ComplianceReport | 심각도별로 그룹화된 발견 사항; 법적 고지를 포함합니다. |
ComplianceFinding | 하나의 발견 사항: 규칙 id, 메시지, 표준 참조, 해결 방법. |
Severity | Error / Warning / Info. |
PdfAPolicy | PDF/A-4 제품군 구조 정책. |
PadesValidator | PAdES 베이스라인 / eIDAS 구조 정책. |
LtvHealthCheck | DSS 구조적 존재 여부 검사(ISO 32000-2 §12.8.4.3). |
ZugferdValidator | ZUGFeRD / Factur-X PDF 수준 정책. |
FdaPart11Policy | FDA 21 CFR Part 11 구조 속성 정책. |
Sec17a4WormPolicy | SEC 17a-4 WORM 구조 정책(선택 가능한 엄격도). |
코드 샘플 — 빠른 시작
섹션 제목: “코드 샘플 — 빠른 시작”use NextPDF\Enterprise\Validation\Compliance;use NextPDF\Enterprise\Validation\Policies;
$report = Compliance::assess($pdfBytes, Policies::pdfA4());$ok = $report->passes(); // no errors코드 샘플 — 프로덕션
섹션 제목: “코드 샘플 — 프로덕션”$report = (new Compliance($clock))->run($pdfBytes, Policies::fdaPart11());
foreach ($report->errors as $finding) { $logger->warning('validation.error', [ 'rule' => $finding->ruleId, 'standard' => $finding->standardReference, ]);}$auditLine = $report->getDisclaimer(); // surface this in user-facing output에지 케이스 및 함정
섹션 제목: “에지 케이스 및 함정”- 경고는 보고서를 절대 실패시키지 않습니다. 오직 오류만
passes()를 false로 설정합니다. 깨끗한 보고서도 여전히 “준수함”이 아니라 “구현된 규칙에 대해 검사됨”을 의미합니다. LtvHealthCheck는 암호학적 폐지 유효성이 아니라 DSS 구조를 확인합니다.eidasQualified()는 PDF 수준 구조만 검사합니다. 적격성은 TSP와 인증서에 따라 달라집니다.- SEC 17a-4 제품군은 선택 가능한 엄격도(Full / Compatible / Structural / PreSign)를 제공합니다. 워크플로 단계에 맞는 옵션을 선택하십시오.
각 정책은 제공된 PDF 바이트에 대해 인프로세스로 실행됩니다. 비용은 문서 크기와 규칙 수에 따라 증가합니다. Compliance는 실행 소요 시간을 보고서에 기록합니다.
보안 참고 사항
섹션 제목: “보안 참고 사항”정책은 PDF 바이트를 인프로세스로 파싱하며 외부 호출을 하지 않습니다. 신뢰할 수 없는 출처의 PDF 바이트는 적대적인 것으로 취급하십시오. 순수 읽기 전용 아키텍처는 정책이 입력을 변경하지 못하도록 방지합니다.
데이터 거주성 및 PII 완화
섹션 제목: “데이터 거주성 및 PII 완화”검증은 인프로세스이며 로컬에서 실행되고 네트워크 I/O가 없습니다. 서명된 문서와 감사 추적 메타데이터에는 개인 데이터가 포함될 수 있습니다. 보고서와 발견 사항에는 자체 보존 및 최소화 통제를 적용하십시오.
안전한 텔레메트리 및 로그 스크러빙
섹션 제목: “안전한 텔레메트리 및 로그 스크러빙”발견 사항에는 규칙 id, 표준 참조, 메시지가 포함됩니다. 일부 메시지는 PDF에서 추출된 서명자 이름이나 사유 문자열을 그대로 표시합니다. 로그를 공유 싱크로 전달하기 전에 해당 필드를 스크러빙하거나 편집하십시오.
적합성
섹션 제목: “적합성”| 동작 | 참조 | 상태 |
|---|---|---|
| 적합성은 생성자가 아니라 표준을 기준으로 판정됨 | ISO 19005-4:2020 §5.2 | 설계에 반영됨(읽기 전용 정책) |
| LTV를 위한 DSS 구조적 존재 | ISO 32000-2:2020 §12.8.4.3 | 검사됨(구조만) |
| PAdES 베이스라인 구조 | ETSI EN 319 142-1 §5.4.3 | 검사됨(PDF 수준) |
| EN 16931 프로파일 시맨틱 모델 | Factur-X 1.08 (EN 16931) | 보조 참조(발행자가 책임을 부담함) |
| FDA 21 CFR Part 11 / SEC 17a-4 | 21 CFR Part 11 / 17 CFR 240.17a-4 | 구조 속성 검사됨; 법적으로 검증되지 않음 |
이 표는 각 정책이 무엇을 검사하며 그 정책의 배경이 되는 명세가 무엇인지를 기록합니다. 인증 또는 규제 충족성에 대한 진술이 아닙니다. FDA 및 SEC 행은 구조 속성 검사일 뿐이며, 해당 원천 표준은 검증 코퍼스에 포함되어 있지 않고 Verified 적합성 주장을 수반하지 않습니다.
FIPS 모드 동작
섹션 제목: “FIPS 모드 동작”이 정책들은 PDF 디지털 서명, 인증서 체인, OCSP/CRL 응답 또는 법적 적격성을 검증하지 않습니다. 이들이 계산하는 SHA-256 감사 추적 다이제스트는 서명 검증이 아니라 변조 증거 검사입니다. 암호학적 서명 유효성, 키 보관, 미국 연방 정보 처리 표준(FIPS) 모드 동작은 Signature 및 Security 모듈에서 처리됩니다.
위협 모델
섹션 제목: “위협 모델”주요 입력은 신뢰할 수 없는 PDF 바이트입니다. 완화책에는 순수 읽기 전용 정책(변경 없음, 자동 수정 없음), 네트워크 I/O 없음, 그리고 통과 결과가 인증으로 오인되지 않도록 모든 보고서에 명시적 법적 고지를 포함하는 것이 포함됩니다.
동작 계약
섹션 제목: “동작 계약”- 각 정책의
validate()는 순수 함수입니다. PDF 바이트가 입력되면 발견 사항이 출력되며, 입력을 절대 변경하지 않습니다. 이 아키텍처는 모든 자동 수정 동작과 분리된 엄격한 읽기 전용 경계를 유지합니다. - 보고서는 발견 사항을 심각도별로 그룹화합니다.
passes()는 오류가 없을 때 true를 반환하며, 경고는 보고서를 절대 실패시키지 않습니다. - 모든 보고서에는 결과가 참조용 기술 구조 검사일 뿐임을 명시하는 내장 법적 고지가 포함됩니다. 사용자에게 표시되는 출력에는 해당 고지를 반드시 표시해야 합니다.
- LTV 상태 검사는 DSS 구조적 존재만 확인합니다. 임베드된 OCSP/CRL 데이터를 암호학적으로 검증하지는 않습니다.
- eIDAS 적격 정책은 PDF 수준에서만 PAdES 구조를 검증합니다. 실제 적격성은 신뢰 서비스 제공자와 인증서에 따라 달라지며, 이는 이 모듈의 범위 밖입니다.
공개 경계
섹션 제목: “공개 경계”이 페이지는 외부에서 관찰 가능한 동작과 지원되는 공개 API 표면만 문서화합니다. 내부 네임스페이스 경로, 헬퍼 클래스, 메커니즘 표, 런북 파일명, 티켓 접두사는 범위 밖입니다.
Core 대체
섹션 제목: “Core 대체”NextPDF Core Compliance는 바이트 스트림 검증기와 문법 교차 검사를 제공합니다. 발견 사항이 0건인 결과는 인증서가 아니라 검사된 결과입니다. 단일 보고서 형식을 갖춘 사전 구축된 아카이브, 서명, LTV 및 규제 산업 정책에는 Core 계층의 등가물이 없습니다.
Pro 대체
섹션 제목: “Pro 대체”NextPDF Pro Compliance는 e-인보이스 계층에서 EN 16931 / Factur-X / ZUGFeRD를 인프로세스로 검증합니다. 사전 구축된 PDF/A-4, PAdES, LTV, FDA Part 11 또는 SEC 17a-4 구조 정책은 제공하지 않습니다. 이 정책들은 nextpdf/enterprise 패키지에서만 제공됩니다. Enterprise Compliance 외부 사이드카 표면은 별개의 모듈입니다.
Enterprise 경계 참고
섹션 제목: “Enterprise 경계 참고”진입점, 정책 팩토리, 보고서는 동작 수준에서 설명됩니다. 정책별 규칙 내부 사항과 모든 내부 분류 세부 정보는 공개 표면의 범위 밖입니다. 암호학적 서명 유효성은 여기서 의도적으로 범위에서 제외됩니다. 이는 서명 검증 검증 영역과 Security 모듈에서 처리됩니다.
배포 경계
섹션 제목: “배포 경계”검증은 인프로세스에서 로컬로 실행되며 네트워크 I/O가 없습니다. 정책은 입력을 변경할 수 없습니다. 운영자는 신뢰할 수 없는 출처의 PDF 바이트를 적대적인 것으로 취급하고, 사용자에게 표시되는 출력에 보고서 고지를 표시하며, 서명된 문서와 감사 추적 메타데이터에서 비롯된 개인 데이터를 포함할 수 있는 보고서와 발견 사항에 대한 보존 및 최소화 통제를 담당합니다.
법적 컴플라이언스 경계
섹션 제목: “법적 컴플라이언스 경계”표준 지원은 표준 적합성이 아니며, 적합성은 인증이 아닙니다. NextPDF는 어떤 인증도 보유하지 않으며 어떤 인증도 부여하지 않습니다. FDA 21 CFR Part 11 및 SEC 17a-4 정책은 구조적 속성만 검사하며 법적 준수를 확립하지 않습니다. 이 문서는 법률 의견이 아닙니다. 법적 충족성에 대해서는 귀하의 규정 준수 팀에 문의하십시오.
함께 보기
섹션 제목: “함께 보기”- Compliance — 외부 검증기 사이드카(별도 표면).
- Evidence — 봉인 및 타임스탬프 처리된 보고서 패키지.
- Core Compliance — 인프로세스 바이트 스트림 검증기.
- 서명 검증 — 암호학적 CMS / 타임스탬프 / 아카이브 체인 검증 영역(이 구조 표면과 구별됨).
- 명세: PDF/A-4 — 참조된 표준.
- Validation — Deep Reference — 정책별 규칙 내부 사항과 전체 클래스 참조.