콘텐츠로 이동
getnextpdf.com

Enterprise 에디션

Security — HSM, PKCS#11 및 FIPS-mode

NextPDF Enterprise는 Core 및 Pro 보안 표면 위에 PKCS#11 하드웨어 토큰 서명 경로와 FIPS 모드 암호화 정책을 추가합니다. 이 페이지는 동작, 경계, 그리고 명시적인 FIPS 인증 및 키 보관 입장을 명시합니다.

이 기능은 NextPDF Enterprise(nextpdf/enterprise)에 포함되며 Enterprise 등급 라이선스 봉투로 활성화됩니다. 해당 자격이 없는 배포는 이 기능의 클래스를 로드하지 않습니다. 에디션을 비교하고 라이선스를 받으십시오.

Enterprise 보안 표면에는 세 부분이 있습니다. 즉, 하드웨어 토큰 서명자, FIPS 모드 암호 정책, 그리고 전원 투입 자가 시험(power-on self-test) 가드입니다.

하드웨어 토큰 서명자는 PKCS#11 토큰 — 스마트 카드, USB 기기, 또는 네트워크 연결 HSM — 을 적응시킵니다. 서명자는 라벨로 토큰에서 인증서와 개인 키를 찾습니다. 그런 다음 토큰에 서명 계산을 요청합니다. 개인 키는 토큰 경계를 벗어나지 않습니다. 작업은 토큰 내부에서 실행됩니다. 토큰 서명 작업, 세션, 사용자 로그인은 PKCS#11 v3.1 §5를 따릅니다. HSM 경로에는 ext-pkcs11 PHP 확장이 필요합니다. 그 확장은 표준 PHP의 일부가 아닙니다. 별도로 설치하십시오. 서명자를 구성하기 전에 가용성 검사를 사용하십시오.

FIPS 모드 암호 정책은 암호화 선택을 승인된 집합으로 제한합니다. 두 가지 프리셋이 있습니다. strict 프리셋은 SHA-256, SHA-384, SHA-512 해시; 해당 해시를 사용하는 RSA 및 ECDSA 서명 OID; AES-256-CBC 암호화; 그리고 최소 키 크기 RSA 2048 및 EC 256을 허용합니다. standard 프리셋은 동일하지만 더 오래된 상호 운용을 위해 AES-128-CBC도 허용합니다. 런타임 가드가 정책을 감쌉니다. 가드는 작업이 실행되기 전에 각 해시, 서명 OID, 암호화 알고리즘, 키 강도를 검사합니다. 허용되지 않는 선택은 타입이 지정된 위반을 발생시키고 작업을 중단합니다. 이 경로는 실패-차단(fail-closed)입니다. 정책은 스스로를 완화하지 않으며 더 약한 알고리즘으로 결코 대체하지 않습니다. 최소 RSA 키 길이는 NIST SP 800-131A Rev.2 §3을 따릅니다. ECDSA 곡선과 해시 페어링은 FIPS 186-5 §6.1.1을 따릅니다.

전원 투입 자가 시험 가드는 프로세스 시작 시 알려진 답 테스트(known-answer-test) 배터리를 한 번 실행합니다. 배터리는 승인된 해시, MAC, 암호화, 서명, 무작위 비트 함수를 다룹니다. 어떤 테스트라도 실패하면 Enterprise FIPS 가드는 오류 상태에 들어가고 리셋될 때까지 암호화 서비스를 거부합니다. 결과는 프로세스 수명 동안 캐시됩니다. 온디맨드 재실행을 사용할 수 있습니다. 자가 시험 범주와 조건부 시험 트리거는 ISO/IEC 19790:2025 §7.10과 §7.10.3을 따릅니다.

핵심이 되는 결정은 개인 키를 토큰 경계 내부에 유지하고 암호 정책을 실패-차단으로 만드는 것입니다. 키를 내보낼 수 있거나 조용히 더 약한 알고리즘으로 폴백할 수 있는 서명자는 HSM이 제공하고자 하는 보증을 무력화할 것입니다. 그래서 서명자는 토큰에 그 자리에서 서명을 계산하도록 요청하고, FIPS 모드 가드는 작업이 실행되기 전에 승인된 프리셋 밖의 어떤 해시, OID, 또는 키 강도도 거부합니다. 전원 투입 자가 시험은 동일한 태도를 시작 시점까지 확장합니다. 검증되지 않은 모듈은 검증되지 않은 프리미티브로 서명하기보다 서비스를 거부합니다. 그 결과 추론할 수 있는 경계가 만들어지며, 키 보관은 이 소프트웨어가 아니라 운영자와 토큰이 소유합니다.

설계 배경: HSM-backed signing.

Public surfaceTypePurposeStabilitySince
PKCS#11 토큰 서명자클래스(Core HsmSignerInterface 구현)PKCS#11 토큰으로 서명; 키는 토큰에 남음stable1.0.0
FIPS 암호 정책클래스(Core CryptoPolicyInterface 구현)허용 알고리즘 및 키 강도 프리셋stable1.9.0
FIPS 모드 가드클래스해시, 서명 OID, 암호화 알고리즘, 또는 키 강도가 허용되는지 단언stable1.9.0
FIPS 부트 가드클래스전원 투입 자가 시험을 실행하고 캐시; 모듈이 작동 중인지 단언stable3.2.0
OpenSSL CLI / engine 서명자클래스(HsmSignerInterface 구현)엔진 기반 토큰을 위해 OpenSSL 엔진 또는 OpenSSL CLI를 통해 서명stable1.0.0

토큰 서명자 생성자는 PKCS#11 라이브러리 경로, 슬롯 번호, 토큰 PIN, 인증서 라벨, 그리고 선택적인 별도 키 라벨을 받습니다. PIN 파라미터는 민감한 것으로 표시됩니다. 로그에 기록되지 않고 직렬화되지 않습니다. 서명자는 또한 서명자 인증서와 인증서 체인을 DER 형태로 노출합니다. 권위 있는 파라미터 및 타입 계약은 nextpdf/enterprise 패키지의 발행된 API 참조입니다. 이 페이지가 아니라 그 참조를 계약으로 취급하십시오.

Terminal window
composer require nextpdf/core
composer require nextpdf/enterprise:^3
Construct a FIPS-mode guard and assert a hash is allowed
use NextPDF\Enterprise\Security\Fips\FipsCryptoPolicy;
use NextPDF\Enterprise\Security\Fips\FipsModeGuard;
$guard = new FipsModeGuard(FipsCryptoPolicy::strict());
// Throws a typed FIPS violation if the algorithm is not approved.
$guard->assertHashAllowed('sha256');
$guard->assertKeyStrengthAllowed('rsa', 2048);
Run the power-on self-test at container boot, then gate signing
use NextPDF\Enterprise\Security\Fips\FipsBootGuard;
use NextPDF\Enterprise\Security\Fips\FipsSelfTest;
// At application bootstrap (one self-test cycle per worker process):
$bootGuard = new FipsBootGuard(new FipsSelfTest());
$bootGuard->assertOperational(); // throws on a known-answer-test failure
$container->set(FipsBootGuard::class, $bootGuard);
// The PKCS#11 token signer is only available when ext-pkcs11 is loaded.
// Check availability before you construct the signer. The PIN is a secret;
// supply it from your secret manager, never from source or logs.

전체 생성자 인수 목록, 예외 타입, 그리고 PKCS#11 토큰 서명자 구성은 Enterprise 보안 심층 참조에 문서화되어 있습니다.

  • PKCS#11 토큰 서명자 생성자는 ext-pkcs11이 로드되지 않으면 타입이 지정된 작업 예외를 발생시킵니다. 먼저 가용성을 확인하십시오.
  • 토큰 서명자는 프로세스당 라이브러리 경로당 하나의 PKCS#11 모듈을 캐시합니다. 이는 토큰 인터페이스의 “모듈당 한 번 초기화” 규칙을 충족합니다.
  • ECDSA 토큰 메커니즘은 원시(raw) 서명을 반환합니다. 서명자는 PDF 및 OpenSSL 상호 운용을 위해 이를 DER 인코딩 형태로 변환합니다.
  • FIPS 가드는 기본적으로 알 수 없는 키 타입을 거부합니다. 인식되지 않는 키 타입은 조용히 수용되지 않습니다.
  • 포스트퀀텀 서명 경로는 실험적이며 옵트인이고 기본적으로 비활성화되어 있습니다. 표준 PAdES 장기 보관 프로파일은 아직 포스트퀀텀 스위트를 인정하지 않습니다. 프로덕션 AdES 서명에 활성화하지 마십시오.

FIPS 가드 검사는 상수 시간 해시 맵 조회입니다. 전원 투입 자가 시험은 프로세스당 한 번 실행됩니다. 그 비용은 서명 호출마다가 아니라 프로세스 수명에 걸쳐 분할 상환됩니다. PKCS#11 서명 작업은 토큰으로의 왕복 1회를 추가합니다. 네트워크 연결 HSM은 그 왕복의 네트워크 지연을 추가합니다.

  • 서명 경로는 실패-차단입니다. 프리미티브 실패나 정책 공백은 타입이 지정된 예외를 발생시킵니다. 이 경로는 더 약한 알고리즘으로 조용히 다운그레이드하지 않습니다.
  • 토큰 PIN 파라미터는 민감한 것으로 표시됩니다. 로그에 기록되지 않고 직렬화되지 않습니다.
  • PKCS#11 토큰의 개인 키는 토큰에 남습니다. 서명 작업은 토큰 경계 내부에서 실행됩니다.
  • 전원 투입 자가 시험은 알려진 답 테스트 불일치 시 Enterprise FIPS 가드를 오류 상태에 두고 리셋될 때까지 암호화 서비스를 거부합니다.
  • AES-GCM 사용은 NIST SP 800-38D §5에 따라 키마다 고유한 초기화 벡터를 요구합니다.

서명 및 FIPS 정책 코드는 인프로세스로 실행됩니다. FIPS 정책 검사나 전원 투입 자가 시험을 위해 문서 콘텐츠가 호스트를 벗어나지 않습니다. PKCS#11 토큰은 무관한 문서 콘텐츠가 아니라 서명할 데이터를 받습니다. 네트워크 연결 HSM은 사용자가 구성하는 네트워크 채널로 그 데이터를 받습니다. 키 자료는 토큰 또는 HSM 경계 내부에 남습니다.

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

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

토큰 PIN은 민감한 생성자 파라미터이며 로그와 직렬화에서 제외됩니다. PIN, 토큰 라벨, 또는 키 자료를 자체 애플리케이션 로그에 추가하지 마십시오. 모든 토큰 자격 증명을 로깅 및 추적 정책에서 시크릿으로 취급하십시오.

이것은 암호화 경계이므로 위협 모델이 명시적입니다. 서명할 데이터는 토큰에 전달됩니다. 토큰이 키를 보관합니다. 토큰 또는 HSM 오류는 타입이 지정된 예외를 발생시킵니다. 서명자는 서명되지 않았거나 부분적으로 서명된 결과를 생성하지 않습니다. 키 보호는 토큰 또는 HSM, 배포, 그리고 운영자에 따라 달라집니다 — 이 소프트웨어 단독에 달려 있지 않습니다. 배포 경계를 참조하십시오.

  • 전원 투입 및 조건부 자가 시험 모델은 ISO/IEC 19790:2025 §7.10 및 §7.10.3에 부합합니다.
  • 최소 RSA 서명 키 길이는 NIST SP 800-131A Rev.2 §3에 부합합니다.
  • 승인된 ECDSA 곡선과 해시 페어링은 FIPS 186-5 §6.1.1에 부합합니다.
  • PKCS#11 토큰 서명 작업과 세션 로그인은 PKCS#11 v3.1 §5에 부합합니다.
  • 키 보호 책임은 NIST SP 800-57 Part 1 Rev.5 §5.5.2에 부합합니다.
  • AES-GCM 초기화 벡터 고유성은 NIST SP 800-38D §5에 부합합니다.

모든 규범 출처는 의역되었습니다. 이 페이지에는 어떠한 규범 텍스트도 재현되지 않습니다. 이 페이지는 암호화 서명에 관한 것입니다.

FIPS 모드 정책은 암호화 선택을 위에서 설명한 승인된 집합으로 제한합니다. FIPS 검증 OpenSSL 공급자에 대해 구성되면, 기반 프리미티브가 그 검증된 경계 안에서 실행됩니다. NextPDF Enterprise 자체는 구조적 조립, 다이제스트 계산, 정책 적용을 수행합니다.

NextPDF Enterprise는 FIPS 검증 암호화 모듈이 아니며 FIPS 인증 주장을 하지 않습니다. NextPDF Enterprise는 FIPS 검증 암호화 공급자 — 예를 들어 FIPS 검증 OpenSSL 공급자 — 또는 FIPS 검증 HSM으로 구성된 경우에만 FIPS 호환 모드로 작동합니다. FIPS 모드 정책은 규정 준수를 보조합니다. 인증이 아닙니다.

NextPDF Core는 소프트웨어 서명자, RFC 3161 타임스탬프 소비, RFC 5280 경로 검증, 그리고 OCSP 및 CRL 폐기 검사를 제공합니다. Core는 PAdES B-B 및 B-T 레벨을 생성합니다. NextPDF Pro는 마스킹, 텍스트 레이어 PII 탐지, 다자간 순차 서명, 그리고 원격 및 클라우드 KMS 서명 전략(AWS KMS, GCP Cloud KMS, Azure Key Vault)을 추가합니다. NextPDF Pro는 PKCS#11 하드웨어 토큰 경로를 제공하지 않으며 FIPS 모드 암호 정책 프로파일을 제공하지 않습니다. PKCS#11 하드웨어 토큰 서명자, FIPS 모드 암호 정책 프로파일, 전원 투입 자가 시험 가드, 그리고 PAdES B-LT 및 B-LTA 생산자는 nextpdf/enterprise 패키지에만 포함됩니다. Enterprise 자격이 없는 배포는 Enterprise 클래스를 로드하지 않습니다.

Pro 전용 배포에서 지원되는 하드웨어 기반 및 클라우드 기반 서명 경로는 Pro 클라우드 KMS 전략입니다. 즉, 클라우드 KMS 또는 HSM 기반 KMS가 키를 보관하며, Pro는 문서가 아니라 서명된 속성 다이제스트를 공급자에게 전송합니다. Pro는 KMS 통합을 제공하며, Enterprise PKCS#11 토큰 팩토리나 FIPS 모드 프로파일을 제공하지 않습니다. Pro 전용 배포에서 B-LT, B-LTA, PKCS#11 토큰, 또는 FIPS 모드 프로파일을 요청하는 구성은 누락된 Enterprise 구성 요소를 명시하는 메시지와 함께 실패-차단됩니다. Pro 서명 표면은 Security — NextPDF Pro를 참조하십시오.

Core 전용 배포에서 소프트웨어 서명자는 로컬 키 또는 Core 서명 전략 계약을 통해 제공된 키로 PAdES B-B 및 B-T를 생성합니다. Core에는 하드웨어 토큰 경로와 FIPS 모드 프로파일이 없습니다. Security — NextPDF Core를 참조하십시오.

PKCS#11 토큰 통합, 그 메커니즘 매핑, 그 세션 처리는 동작 수준에서만 설명됩니다. 내부 메커니즘 매핑 표, 내부 세션 복구 로직, 그리고 포스트퀀텀 마이그레이션 자료는 공개 표면의 범위 밖이며 여기에서 재현하지 않습니다.

NextPDF Enterprise는 PKCS#11 토큰, HSM, 또는 KMS와 통합됩니다. 서명 키를 직접 저장, 생성하거나 그 보안을 보장하지는 않습니다. 키 보안은 토큰, HSM, 또는 KMS, 배포, 그리고 운영자에 따라 달라지며 — NextPDF Enterprise 단독에 달려 있지 않습니다. 운영자는 토큰 프로비저닝, PIN 처리, 슬롯 구성, 네트워크 연결 HSM의 네트워크 보호, 그리고 신뢰 구성을 책임집니다. 키 보호 책임은 NIST SP 800-57 Part 1 Rev.5 §5.5.2를 따릅니다. NextPDF Enterprise는 이 문서에서 토큰 PIN 처리, 슬롯 구성 내부, 또는 벤더 자격 증명 자료를 노출하지 않습니다.

이 페이지는 암호화 서명 및 하드웨어 보안 모듈 통합에 관한 것입니다. FIPS 모드 정책은 규정 준수 보조 기능입니다. 법률 의견이나 인증이 아닙니다. 규제 의무에 대해서는 자체 준수 및 법률 자문에게 문의하십시오.

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

  • FIPS 가드는 각 해시, 서명 OID, 암호화 알고리즘, 키 강도를 활성 프리셋과 대조해 단언하고 허용되지 않는 선택에 대해 타입이 지정된 위반을 발생시킵니다.
  • 전원 투입 자가 시험은 프로세스당 한 번 실행되며 알려진 답 테스트 실패 시 리셋될 때까지 암호화 서비스를 거부합니다.
  • PKCS#11 토큰 서명자는 ext-pkcs11을 요구합니다. 확장이 없으면 타입이 지정된 작업 예외를 발생시킵니다.
  • 서명 경로는 실패-차단이며 더 약한 알고리즘으로 결코 대체하지 않습니다.