콘텐츠로 이동
getnextpdf.com

Enterprise 에디션

개인정보 보호

NextPDF Enterprise Privacy는 구성된 PII 패턴과 일치하는 텍스트를 감지하여 이를 편집하거나, 이를 포함하는 줄을 억제하거나, 암호화된 저장 시점 맵으로 뒷받침되는 가역적 결정적 가명으로 대체합니다. 테스트된 대로 구성된 규칙과 일치하는 콘텐츠를 제거합니다. 완전한 PII 제거를 보장하지 않으며 규제 준수에 대한 진술이 아닙니다.

이 기능은 NextPDF Enterprise(nextpdf/enterprise)에 포함되어 있으며 Enterprise 등급 라이선스 엔벨로프로 활성화됩니다. 해당 권한이 없는 배포 환경은 이 기능의 클래스를 로드하지 않습니다. 에디션 비교 및 라이선스 받기.

Terminal window
composer require nextpdf/enterprise:^3

감지는 패턴 기반입니다. 감지기는 정규 표현식 패턴 레지스트리에 대해 텍스트를 스캔하며, 이메일 주소, 전화번호, 미국 사회보장번호, 신용카드 번호, 대만 주민등록번호에 대한 내장 패턴을 제공합니다. 배포 환경은 추가 패턴을 등록할 수 있습니다. 감지는 구성된 유형만 찾습니다. 어떤 패턴과도 일치하지 않는 값은 감지되지 않으며, 텍스트 레이어가 없는 스캔된 페이지는 일치 항목을 산출하지 않습니다.

편집 정책이 동작을 제어합니다. 감지 전용 모드에서 엔진은 콘텐츠를 변경하지 않고 발견 사항을 반환합니다. 편집 모드에서는 일치하는 각 스팬을 블랙박스, 화이트박스, 또는 텍스트 대체로 교체합니다. 비식별화기는 개별 스팬을 마스킹하는 대신 일치 항목을 포함하는 전체 줄을 제거하는 억제 전략을 더합니다. 각 실행은 원본 텍스트의 SHA-256, 수정된 콘텐츠, 항목별 보고서, 그리고 수정 플래그를 반환합니다.

가명화는 설계상 가역적입니다. 엔진은 감지된 엔티티를, 원본 값과 세션별 시드에 대한 HMAC에서 도출된 결정적이고 형식 인식적인 가명으로 대체합니다. 따라서 동일한 값은 한 세션 내에서 일관되게 매핑되지만, 서로 다른 세션에서는 토큰이 결정적 동등성으로 상관되지 않습니다. 원본-가명 맵은 직렬화되어 AES-256-GCM과 버전이 지정된 키로 저장 시점에 암호화되며, 키 회전을 지원합니다. 재수화는 원본 값을 복원하지만, 올바른 키와 일치하는 암호화된 맵이 있어야만 가능합니다. 이들이 없으면 가명화된 텍스트만으로는 원본 값을 복구할 수 없습니다.

이러한 작업은 비식별화를 구현합니다. 비식별화는 데이터와 사람 사이의 연관을 제거합니다 — ISO/IEC 29100:2024 §2. 가명화는 식별자를 별칭으로 대체하며, 정의상, 별도로 보관된 매핑으로 가역적입니다 — ISO/IEC 29100:2024 §2. 익명화는 식별을 비가역적으로 방지하는 것을 목표로 합니다 — ISO/IEC 29100:2024 §2. 이 Enterprise 표면은 익명화가 아니라 패턴 범위의 편집, 억제, 가역적 가명화를 수행합니다. 잔여 재식별 위험은 비식별화 후에 남는 속성에 따라 달라지며 — ISO/IEC 29100:2024 §2 — 비식별화는 그 위험을 줄이지만 제거하지는 않습니다 — ISO/IEC 29151:2017. 출력을 완전한 PII 제거, 비가역성, 또는 규제 준수의 보장이 아니라, 테스트된 대로 구성된 규칙과 일치하는 콘텐츠가 제거되거나 대체된 것으로 취급하십시오.

가역성이 핵심을 지탱하는 선택입니다. 가명은 원본 값과 세션별 시드에 대한 HMAC-SHA256 출력이므로, 동일한 값은 한 세션 전반에서 동일한 토큰으로 매핑되고 문서의 내부 관계는 보존됩니다. 세션마다 새로운 무작위 시드를 쓴다는 것은 동일한 값이 세션 간에 동일한 토큰으로 매핑되지 않는다는 뜻이므로, 가명은 세션 간에 결정적 토큰 동등성으로 상관되지 않으며, 이는 중앙 조회 없이도 결정적 연결 가능성을 줄입니다. 이 매핑은 — AES-256-GCM으로 저장 시점에 암호화되어 — 의도적으로 보관되므로, 인가된 재수화가 원본을 복원할 수 있습니다. 그 가역성이 이것을 익명화가 아니라 ISO/IEC 29100:2024 §2에 따른 가명화로 만드는 것입니다. 그 절충은 수용됩니다. 즉, 가명화된 텍스트가 아니라 암호화된 맵이 민감한 아티팩트가 되므로, 기밀성은 키 보관으로 귀결됩니다. 형식 인식 토큰은 각 엔티티의 형태를 보존하므로 다운스트림 파서는 계속 작동하지만, 그 대가로 체크섬 검증기가 형태를 갖추었으나 합성된 값을 거부할 수 있습니다.

설계 배경: 편집은 검은 사각형이 아닙니다.

TypeKindRoleStabilitySince
PiiDetectorclass패턴 기반 PII 감지; 사용자 정의 패턴 등록 지원stable2.2.0
RedactionEngineclass정책에 따른 감지 전용 또는 파괴적 텍스트 편집stable2.2.0
DeIdentifierclass편집 또는 줄 억제 전략 디스패치stable2.2.0
RedactionPolicyclass대상 엔티티 유형, 편집 토글, 대체 스타일stable2.2.0
PseudonymizationEngineclass결정적이고 형식 인식적인 가명 대체stable2.2.0
PrivacyGatewayclass감사와 함께 문서 범위의 가명화/재수화stable2.2.0
RehydrationServiceclass암호화된 맵에서 원본을 복원함stable2.2.0
EncryptedMapSerializerclass키 버전 지정과 함께 AES-256-GCM 저장 시점 맵 직렬화stable2.2.0
PrivacyAuditTrailclass가명화/재수화 작업의 추가 전용 로그stable2.2.0
EntityType / RedactionStyle / DeIdentificationStrategyenums엔티티, 스타일, 전략 어휘stable2.2.0

감사 추적은 계약상 추가 전용입니다. 세션 id, 작업, 엔티티 수, 정책 해시, 타임스탬프, 테넌트 id를 로깅합니다. 감지된 값은 기록하지 않습니다.

Detect and redact configured PII
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Enterprise\Privacy\PiiDetector;
use NextPDF\Enterprise\Privacy\RedactionEngine;
use NextPDF\Enterprise\Privacy\RedactionPolicy;
/**
* Redact every configured entity type from text content.
*
* @param string $content The text to process.
*
* @return string The redacted text.
*/
function redactAll(string $content): string
{
$engine = new RedactionEngine(new PiiDetector());
return $engine->redact($content, RedactionPolicy::allEntities())
->redactedContent;
}

RedactionPolicy::allEntities()는 내장 유형을 대상으로 합니다. 어떤 구성된 패턴과도 일치하지 않는 값은 편집되지 않습니다.

Reversible pseudonymization with audit and safe logging
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Enterprise\Privacy\PrivacyGateway;
use NextPDF\Enterprise\Privacy\PrivacyPolicy;
use NextPDF\Enterprise\Privacy\EntityType;
use Psr\Log\LoggerInterface;
final readonly class DocumentDeidentifier
{
public function __construct(
private PrivacyGateway $gateway,
private LoggerInterface $logger,
) {}
/**
* Pseudonymize a document and return the encrypted reversal map.
*
* @param non-empty-string $text Document text.
* @param list<array{text: non-empty-string, type: EntityType}> $entities Detected entities.
*
* @return array{text: string, encrypted_map: non-empty-string}
*/
public function process(string $text, array $entities): array
{
$policy = PrivacyPolicy::piiOnly('session-' . bin2hex(random_bytes(6)));
$result = $this->gateway->pseudonymize($text, $entities, $policy);
$this->logger->info('Pseudonymization complete', [
'entityCount' => $result['entity_count'],
]);
return ['text' => $result['text'], 'encrypted_map' => $result['encrypted_map']];
}
}

로그 레코드는 수치만 담습니다. 문서 텍스트, 감지된 값, 또는 암호화된 맵은 담지 않습니다.

  • 감지는 패턴 범위입니다. 어떤 패턴과도 일치하지 않는 값은 감지되지 않습니다. 엔진은 모든 개인 데이터가 발견된다고 단언하지 않으며, 결과는 완전한 PII 제거 보장이 아닙니다.
  • 스캔된 페이지에는 텍스트 레이어가 없습니다. 텍스트 패턴 감지는 일치 항목을 산출하지 않습니다. 텍스트가 먼저 필요하다면 Intelligence 검색 가능 오버레이 표면과 결합하십시오.
  • 가명화는 정의상 가역적입니다. 올바른 키와 일치하는 암호화된 맵을 가진 사람은 누구나 원본을 복원할 수 있습니다. 이것은 익명화가 아닙니다. 가명화된 출력을 비가역적인 것으로 제시하지 마십시오.
  • 형식 인식 가명은 형태를 보존합니다(예를 들어, ID 유사 또는 이메일 유사 토큰). 체크섬을 검증하는 다운스트림 시스템은 가명을 거부할 수 있습니다. 그것은 예상된 동작입니다.
  • 암호화된 맵이 민감한 아티팩트입니다. 이를 잃으면 재수화가 불가능해집니다. 키와 함께 이를 유출하면 가명화가 제3자에 의해 가역적이 됩니다. 키 보관과 맵 저장을 배포 책임으로 취급하십시오.
  • 편집은 전달된 텍스트 콘텐츠에 대해 작동합니다. 그 자체로는 이미지를 평탄화하거나, 썸네일을 제거하거나, 문서 메타데이터를 제거하지 않습니다. 파이프라인을 그에 맞게 범위 지정하십시오.

감지 비용은 패턴 수와 텍스트 길이에 따라 증가합니다. 가명화는 고유 엔티티당 HMAC와 맵의 AES-256-GCM 봉인을 더합니다. 1500 ms 경과 시간 예산은 일반적인 업무 문서를 포괄합니다. 재현성 프로파일은 structural입니다. 즉, 가명은 고정된 시드에 대해 결정적이지만, 감사 타임스탬프와 무작위 세션 시드는 실행 간에 변동되므로 두 실행은 해당 필드에서 차이가 납니다.

저장 시점 맵은 인증된 암호화를 사용합니다. 맵은 AES-256-GCM과 버전이 지정된 키로 봉인됩니다. 올바른 키 버전 없이는 재수화가 불가능합니다. 키 생성, 보관, 회전은 배포 환경의 책임입니다. 라이브러리는 키를 소비할 뿐, 키 저장소를 관리하지 않습니다. 감사 추적은 추가 전용이며 메타데이터를 기록하고 감지된 값은 절대 기록하지 않습니다. 모든 규범 출처는 의역되었으며 어느 것도 재현되지 않습니다.

감지, 편집, 가명화는 호스트에서 인프로세스로 실행됩니다. 이러한 작업 중 어느 것에 대해서도 문서 콘텐츠가 호스트를 떠나지 않습니다. 암호화된 맵과 모든 재수화된 출력은 개인 데이터입니다. 이들이 어디에 저장되는지, 어떤 관할권이 이를 처리하는지는 라이브러리 경계 밖의 배포 책임입니다. 라이브러리는 테스트된 대로 패턴 범위 비식별화를 수행합니다. GDPR, HIPAA, 또는 그 밖의 어떤 규제 준수도 인증하지 않으며, 익명화를 수행하지 않습니다. 잔여 재식별 위험은 남는 속성에 따라 달라집니다 — ISO/IEC 29151:2017.

안전한 텔레메트리 및 로그 스크러빙

섹션 제목: “안전한 텔레메트리 및 로그 스크러빙”

라이브러리는 구조적 메시지를 갖는 타입 지정 예외를 발생시키며, 감지된 값, 문서 바이트, 또는 암호화된 맵을 예외 텍스트에 절대 넣지 않습니다. 이 표면 주변에서 로깅하는 배포 환경은 — 프로덕션 샘플에 표시된 것처럼 — 수치와 정책 해시를 로깅해야 하며, 원시 PDF 페이로드, 감지된 엔티티 텍스트, 또는 가명 맵을 로그나 APM 백엔드에 로깅해서는 안 됩니다. 추가 전용 감사 추적이 보존하기에 안전한 레코드입니다.

저장 시점 맵은 플랫폼 암호화 공급자를 통해 AES-256-GCM을 사용합니다. 호스트가 FIPS 검증 공급자를 실행하면, 해당 작업은 검증된 경계 내에서 실행됩니다. NextPDF Enterprise는 구조적 조립을 수행하며 그 자체가 FIPS 검증 암호화 모듈이 아니고 FIPS 인증 주장을 하지 않습니다.

ClaimStandardClause
비식별화는 데이터와 사람 사이의 연관을 제거합니다.ISO/IEC 29100:2024§2
가명화는 식별자를 별칭으로 대체하며 별도의 매핑으로 가역적입니다.ISO/IEC 29100:2024§2
익명화는 식별을 비가역적으로 방지하는 것을 목표로 합니다(이 표면은 익명화하지 않음).ISO/IEC 29100:2024§2
잔여 재식별 위험은 남는 속성에 따라 달라집니다.ISO/IEC 29100:2024§2
프라이버시 통제는 PII에 적용됩니다.ISO/IEC 29100:2024§6.5
비식별화는 잔여 위험을 줄이지만 제거하지는 않습니다.ISO/IEC 29151:2017de-identification controls
비식별화된 데이터의 연결 가능성을 최소화합니다.ISO/IEC 29151:2017PII minimization
PII를 보호하기 위해 통제가 적용됩니다.ISO/IEC 29151:2017controls

모든 조항은 의역되었습니다. NextPDF는 규범 텍스트를 재현하지 않습니다. 권위 있는 표현은 발행된 표준을 참조하십시오. NextPDF는 프라이버시 규제 준수 주장을 하지 않습니다. 이 페이지는 인증된 준수 상태가 아니라 테스트된 비식별화 동작과 그 경계를 명시합니다.

  • 감지는 패턴 범위입니다. 구성된 유형만 찾습니다. 어떤 패턴과도 일치하지 않는 값은 감지되지 않으며 텍스트 레이어가 없는 페이지는 일치 항목을 산출하지 않습니다.
  • 편집 정책은 감지 전용, 스팬 대체(블랙박스 / 화이트박스 / 텍스트), 또는 전체 줄 억제를 선택합니다. 각 실행은 원본 텍스트 SHA-256, 수정된 콘텐츠, 항목별 보고서, 그리고 수정 플래그를 반환합니다.
  • 가명화는 설계상 가역적입니다. 결정적 HMAC 도출 가명은 한 세션 내에서 일관되며, 재수화에는 올바른 키 버전과 일치하는 AES-256-GCM 저장 시점 맵이 필요합니다.
  • 추가 전용 감사 추적은 세션 id, 작업, 엔티티 수, 정책 해시, 타임스탬프, 테넌트 id를 기록하며 감지된 값은 절대 기록하지 않습니다.
  • 출력은 완전한 PII 제거, 비가역성, 또는 규제 준수의 보장이 아니라, 테스트된 대로 구성된 규칙과 일치하는 콘텐츠가 제거되거나 대체된 것입니다.

이 페이지는 외부에서 관찰 가능한 동작과 지원되는 공개 API 표면만 문서화합니다. 내부 네임스페이스 경로, 헬퍼 클래스, 메커니즘 표, 런북 파일명, 티켓 접두사는 범위 밖입니다.

NextPDF Core(Apache-2.0)에는 PII 감지, 편집, 또는 가명화 표면이 없습니다 — 전혀 없습니다. 이 기능에는 Core 등급 등가물이 없습니다.

NextPDF Pro는 텍스트 레이어 PII 감지 표면과 생성 시점 마스킹을 제공합니다. 가역적 가명화, 암호화된 저장 시점 맵, 줄 억제, 또는 추가 전용 감사 추적은 제공하지 않습니다. 이들은 nextpdf/enterprise 패키지에서만 제공됩니다.

감지, 편집, 억제, 가명화는 동작 수준에서 설명됩니다. 라이브러리는 암호화 키를 소비합니다. 키 저장소를 관리하지 않으며, 키 생성, 보관, 회전 내부는 공개 표면의 범위 밖입니다.

암호화된 맵과 모든 재수화된 출력은 개인 데이터입니다. 이들이 어디에 저장되는지, 어떤 관할권이 이를 처리하는지는 라이브러리 경계 밖의 배포 책임입니다. 키 생성, 보관, 회전은 배포 환경의 책임입니다 — 라이브러리는 키 버전을 소비할 뿐, 키 저장소를 관리하지 않습니다. 맵을 잃으면 재수화가 불가능해집니다. 키와 함께 이를 유출하면 가명화가 제3자에 의해 가역적이 됩니다.

저장 시점 맵은 인증된 암호화를 사용합니다. 라이브러리는 테스트된 대로 패턴 범위 비식별화를 수행하며 GDPR, HIPAA, 또는 그 밖의 어떤 규제 준수도 인증하지 않고, 익명화를 수행하지 않습니다. 이 문서는 법률 의견이 아닙니다. 자체 준수 및 법률 자문에게 문의하십시오.