콘텐츠로 이동
getnextpdf.com

Enterprise 에디션안정성: 실험적

포스트 양자 HSM 서명(PQS) 프리뷰 능력 상태

프리뷰 능력 상태. 옵트인, 기본 꺼짐, fail-closed. 이것은 HSM 위임 포스트 양자 서명의 프리뷰입니다. 일반 공급되지 않고, AdES 호환이 아니며, FIPS 검증을 받지 않았고, 어떤 인증이나 적합성 주장도 하지 않습니다. 프리뷰는 여러분이 옵트인할 때까지 꺼져 있으며, 꺼져 있으면 서명 호출이 타입 지정 예외와 함께 fail-closed 처리됩니다.

NextPDF Enterprise는 PKCS#11 하드웨어 토큰을 통해 ML-DSA(FIPS 204)와 SLH-DSA(FIPS 205) 서명을 구동하는 실험적 포스트 양자 서명(PQS) 표면을 노출합니다. 그 경로는 Pkcs11Signer::signPqs()이며, 명시적인 서명자별 옵트인 ($enablePostQuantum)과, 별도로 프로세스 수준 env 플래그 (NEXTPDF_FEATURE_PREVIEW_PQS_HSM) 뒤에 게이트되어 있습니다. 둘 다 기본적으로 꺼져 있습니다.

이 페이지는 정직한 경계입니다. 프리뷰가 무엇을 하는지 — 실제 포스트 양자 서명 연산을 토큰에 위임합니다 — 와, 동등한 정직함으로 그것이 무엇이 아닌지를 진술합니다. 그것은 GA가 아니고, AdES가 아니며, FIPS 검증을 받지 않았고, FIPS, OASIS, 또는 ETSI에 대한 적합성 주장이 아닙니다. 포스트 양자 PDF 서명을 장기 보존을 위해 상호 운용 가능하게 만들 표준은 아직 도착하지 않았습니다 (표준 경계 참조).

이 능력은 NextPDF Enterprise(nextpdf/enterprise)에 출하되며 Enterprise 등급 라이선스 엔벨로프로 활성화됩니다. 그 자격이 없는 배포는 이 능력의 클래스를 로드하지 않습니다. 에디션 비교 및 라이선스 받기.

이는 Enterprise PKCS#11 하드웨어 토큰 서명자 위에 구축됩니다 — HSM 서명 참조. 고전(RSA / ECDSA) PKCS#11 서명 경로가 지원되는, 안정적인 Enterprise 능력입니다. 여기 설명된 포스트 양자 경로는 그 위에 얹힌 실험적 프리뷰입니다. NextPDF Enterprise는 Pro 기능 집합을 포함합니다.

프리뷰는 진정한 서명 연산을 구동합니다. 활성화되면 signPqs()는 토큰의 후보 PKCS#11 v3.1 포스트 양자 메커니즘으로 디스패치하고, 개인 키는 토큰 경계를 결코 벗어나지 않으며, 반환된 바이트는 수락되기 전에 선택된 파라미터 집합에 대한 FIPS 규정 서명 길이와 길이 검사됩니다.

그것은 동시에 프리뷰이며 일반 공급되는 제품 능력이 아닙니다.

  • PKCS#11 포스트 양자 메커니즘 및 파라미터 집합 식별자는 프로비저널입니다 — OASIS PKCS#11 v3.1이 포스트 양자 메커니즘 레지스트리를 확정하지 않았으므로, 사용된 값은 프로비저널로 추적되며 HSM 운영자는 활성화 전에 자신의 토큰 PQ 펌웨어가 그것과 일치하는지 확인해야 합니다.
  • NextPDF에는 포스트 양자 검증 경로가 존재하지 않으며, AdES 장기 보존을 위한 포스트 양자 서명을 등록하는 ETSI 스위트도 없으므로, 여기서 생성된 서명은 아직 상호 운용 가능하지 않으며 대부분의 PDF 뷰어는 검증 시점에 그것을 거부할 것입니다.
  • 동반 디스크립터 PqsCapabilityStatus는 이 사실들을 기계 판독 가능한 형태로 보고합니다. 모든 긍정 주장 불리언 — generallyAvailable, adesCompliant, verificationAvailable, conformanceClaimed — 은 false로 하드코딩되어 있으며 프리뷰 플래그가 켜져 있어도 false로 유지되고, 어떤 구성도 그중 하나를 켤 수 없습니다. (그것은 또한 recognitionOnly 플래그를 운반하며, true로 하드코딩되어 있어 알고리즘 인식이 결코 적합성 판정이 아님을 기록합니다. 이는 표면이 서명할 수 없다는 뜻이 아닙니다 — 서명은 위에 설명한 대로 signPqs()를 통해 일어납니다.)

NextPDF는 이미 토큰을 통해 실제 ML-DSA 또는 SLH-DSA 서명을 계산할 수 있습니다. 그럼에도 모든 적합성 불리언은 두 개의 기본 꺼짐 게이트 뒤에서 false로 하드코딩되어 유지됩니다. 서명은 나중에 그것을 검증할 수 있어야만 가치가 있습니다. 포스트 양자의 경우 아직 검증 경로도, 등록된 ETSI AdES 스위트도, FIPS 검증된 HSM 왕복도 없습니다. 이것을 일반 공급으로 출하하면 어떤 뷰어도 검증할 수 없고 어떤 아카이브도 신뢰할 수 없는 서명을 발급하게 됩니다. 그래서 설계는 바이트를 생성하는 것을, 누구든 그것에 의존해도 된다고 주장하는 것으로부터 분리하며, 어떤 프리뷰 플래그도 그 선을 흐릴 수 없습니다.

설계 배경: 장기 검증.

signPqs()Pkcs11PqsAlgorithm enum을 통해 알고리즘과 파라미터 집합을 선택합니다. 각 case는 NIST 파라미터 집합을 프로비저널 PKCS#11 메커니즘 / 파라미터 집합 식별자와, 심층 방어 길이 검사에 사용되는 FIPS 규정 서명 바이트 길이에 매핑합니다.

ML-DSA — FIPS 204(모듈 격자). 표시된 NIST 보안 강도 범주에서 주장되는 세 개의 파라미터 집합:

파라미터 집합NIST 범주서명 길이(바이트)
ML-DSA-4422420
ML-DSA-65 (권장 기본값)33309
ML-DSA-8754627

SLH-DSA — FIPS 205(상태 없는 해시 기반). SHA2 / SHAKE x 128 / 192 / 256 x small(s) / fast(f)로 형성되는 열두 개의 파라미터 집합. s 변형은 서명 크기를 최소화하고, f 변형은 서명 지연을 최소화합니다.

파라미터 집합 계열NIST 범주서명 길이(바이트)
SLH-DSA-{SHA2,SHAKE}-128s17856
SLH-DSA-{SHA2,SHAKE}-128f117088
SLH-DSA-{SHA2,SHAKE}-192s316224
SLH-DSA-{SHA2,SHAKE}-192f335664
SLH-DSA-{SHA2,SHAKE}-256s529792
SLH-DSA-{SHA2,SHAKE}-256f549856

두 개의 독립적인 게이트가 모두 열려 있어야 합니다. 둘 다 기본적으로 꺼져 있습니다.

  1. 프로세스 게이트. 프로세스가 부팅되기 전에(또는 상태를 읽기 전에 putenv()를 통해) NEXTPDF_FEATURE_PREVIEW_PQS_HSM=1을 설정하세요. 문자열 1에 대한 엄격한 동등성이 요구됩니다. 그 밖의 모든 값 — 0, true, yes, 빈 값 포함 — 은 꺼진 것으로 취급됩니다.
  2. 서명자별 옵트인. Pkcs11Signer 생성자에 $enablePostQuantum: true를 전달하세요.
use NextPDF\Enterprise\Security\Signature\Hsm\Pkcs11Signer;
use NextPDF\Enterprise\Security\Signature\Hsm\Pkcs11PqsAlgorithm;
use NextPDF\Enterprise\Security\Signature\Hsm\PqsCapabilityStatus;
use NextPDF\Enterprise\Security\Signature\Hsm\PqsPreviewFeature;
// 1. Open the process-level preview gate (default-off).
putenv(PqsPreviewFeature::ENV_PREVIEW_PQS_HSM . '=1');
// 2. The capability status is honest even with the gate open:
// generallyAvailable / adesCompliant / verificationAvailable stay false.
$status = PqsCapabilityStatus::current();
// 3. Construct the PKCS#11 signer with the per-signer opt-in.
$signer = new Pkcs11Signer(
libraryPath: '/usr/lib/softhsm/libsofthsm2.so',
slotId: 0,
pin: '1234',
certLabel: 'my-pqc-signing-cert',
enablePostQuantum: true,
);
// 4. Sign with a chosen parameter set. The returned bytes are length-checked
// against Pkcs11PqsAlgorithm::signatureLength() before being accepted.
$signature = $signer->signPqs(
data: $tbsBytes,
algorithm: Pkcs11PqsAlgorithm::MlDsa65,
);

isPostQuantumEnabled()는 서명자별 옵트인이 설정되었는지 보고하고, PqsCapabilityStatus::current()는 프로세스 수준 상태와 정직한 주장 불리언을 보고합니다.

표면은 fail-closed이며, 조용한 폴백이 아니라 이름이 붙은 타입 지정 예외를 통해 실패를 보고합니다.

  • 옵트인 부재. $enablePostQuantumfalse일 때 signPqs()가 호출되면, HsmOperationException을 던집니다. 어떤 서명도 일어나지 않습니다.
  • 컨텍스트 너무 김. 255바이트보다 긴 서명 컨텍스트 옥텟 문자열은 어떤 토큰 호출 전에 (FIPS 204 / FIPS 205 컨텍스트 한계에 따라) InvalidArgumentException을 던집니다.
  • 키 부재. 토큰에서 구성된 레이블과 일치하는 개인 키가 없으면, signPqs()HsmOperationException을 던집니다.
  • 길이 불일치. 토큰이 파라미터 집합에 대한 FIPS 규정 길이와 같지 않은 바이트 길이의 서명을 반환하면, signPqs()HsmOperationException을 던집니다 — 형식이 잘못된(절단되거나 과대한) 서명은 CMS SignedData 인코딩에 도달하기 전에 거부됩니다.
  • 토큰 오류. 모든 기저 PKCS#11 오류는 HsmOperationException으로 래핑됩니다.

프로세스 수준 env 플래그는 이 경계에 대해 아무것도 바꾸지 않습니다. 플래그가 켜져 있어도 능력 불리언은 false로 유지되고 서명 경로는 길이 검사되고 fail-closed로 유지됩니다.

다음 주장은 이 표면에 대해 이루어지지 않으며, 그것에서 파생된 어떤 문서, UI, 또는 마케팅에도 나타나서는 안 됩니다.

  • “GA” / “generally available”.
  • “AdES” / “PAdES-compliant” — 어떤 ETSI 스위트도 장기 보존을 위한 포스트 양자 서명을 등록하지 않습니다.
  • “FIPS-validated” — 이 경로에 대해 FIPS-140-3 검증된 포스트 양자 HSM 왕복이 확립되지 않았습니다.
  • FIPS, OASIS PKCS#11 v3.1, 또는 ETSI에 대한 “certified” 또는 “conformant”.
  • “production-ready”.

표면이 정직하게 무엇인가 하면, PKCS#11 토큰을 통해 ML-DSA / SLH-DSA를 구동하고 결과를 길이 검사하는, 옵트인이고 기본 꺼짐이며 fail-closed인 HSM 위임 포스트 양자 서명 프리뷰입니다. 그것이 무엇이 아닌가 하면, 일반 공급되거나, AdES 호환이거나, FIPS 검증을 받았거나, 인증된 서명 능력이 아닙니다.

관련된 표준들은 외부 기관이 관리하며, 프리뷰는 그 어느 것에 대한 적합성에도 아무런 입장을 취하지 않습니다.

  • 알고리즘 파라미터 집합과 서명 길이는 FIPS 204(ML-DSA)와 FIPS 205(SLH-DSA)를 따릅니다.
  • 토큰 메커니즘 식별자는 OASIS PKCS#11을 따릅니다. PKCS#11 v3.1의 포스트 양자 메커니즘 레지스트리는 아직 확정되지 않았으므로, NextPDF는 프로비저널 식별자를 사용합니다.
  • PDF 서명 장기 보존 프로파일은 ETSI EN 319 142-2(PAdES 확장 프로파일, CMS SignerInfo 위에 구축됨)와 암호 스위트 카탈로그 ETSI TS 119 312이며, 현재 RSA와 ECDSA만 프로파일합니다 — CAdES/PAdES를 위한 포스트 양자 스위트는 등록되어 있지 않습니다. 따라서 오늘 생성된 포스트 양자 PDF 서명은 아직 보존을 위한 AdES 호환이 아닙니다.

이 페이지에는 표준 텍스트가 재현되지 않습니다.

프리뷰는 보안 통제가 아닙니다. 이 경로로 생성된 포스트 양자 서명의 존재는 AdES 유효성을 확립하지 않고, 신뢰된 키를 의미하지 않으며, NextPDF가 검증할 수 없습니다 (포스트 양자 검증 경로가 없습니다). 서명 보증을 위해 이 프리뷰에 의존하지 말고, AdES 호환 또는 FIPS 검증 서명이 요구되는 곳에 그것을 배포하지 마세요. 표준이 도착할 때까지 프로덕션에서는 두 게이트를 모두 꺼 두세요.

심볼역할
Pkcs11Signer::signPqs()PKCS#11을 통한 옵트인, fail-closed HSM 위임 포스트 양자 서명. 비활성일 때, 키가 없을 때, 또는 서명 길이 불일치 시 HsmOperationException을 던집니다.
Pkcs11Signer::isPostQuantumEnabled()서명자별 $enablePostQuantum 옵트인이 설정되었는지 여부.
Pkcs11PqsAlgorithmML-DSA(FIPS 204)와 SLH-DSA(FIPS 205) 파라미터 집합의 enum. 각각을 프로비저널 메커니즘 id와 FIPS 규정 서명 길이에 매핑합니다.
PqsPreviewFeature프로세스 수준, 기본 꺼짐 env 게이트(NEXTPDF_FEATURE_PREVIEW_PQS_HSM).
PqsCapabilityStatus정직하고 기계 판독 가능한 상태: 모든 긍정 주장 불리언(일반 공급, AdES, 검증, 적합성)이 프리뷰 플래그와 무관하게 false로 하드코딩되어 있습니다.
HsmOperationExceptionfail-closed 경로에서 발생하는 타입 지정 예외.

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