İçeriğe geç
getnextpdf.com

Enterprise sürümkararlılık: Deneysel

Post-kuantum imzalama önizlemesi — Derinlemesine başvuru

Bu sayfa, NextPDF Enterprise içindeki post-kuantum imzalama (PQS) önizleme yüzeyinin sözleşme düzeyindeki referansıdır. Üç genel sembolü kapsar: Pkcs11PqsAlgorithm parametre kümesi enum’u, PqsPreviewFeature süreç geçidi ve PqsCapabilityStatus tanımlayıcısı. Ayrıca NEXTPDF_FEATURE_PREVIEW_PQS_HSM ortam geçidini de belgeler.

Bu yüzey deneyseldir ve varsayılan olarak kapalıdır. ML-DSA (FIPS 204) ve SLH-DSA (FIPS 205) algoritma tanımlayıcılarını, parametre kümelerini ve imza uzunluklarını tanır. Tanıma bir doğrulama kararı değildir. Post-kuantum doğrulama yolu yoktur. Hiçbir AdES, FIPS doğrulaması veya uygunluk iddiasında bulunulmaz ve önizleme bayrağı böyle bir iddia oluşturamaz. Tüketen imzalama giriş noktası Pkcs11Signer::signPqs(), yetenek sayfasında açıklanmıştır.

Bu yetenek NextPDF Enterprise (nextpdf/enterprise) ile birlikte gelir ve Enterprise katmanı lisans zarfıyla etkinleşir. Bu yetkilendirmeye sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve bir lisans edinin.

Lisans, Enterprise PKCS#11 yüzeyini bütün olarak etkinleştirir. İçindeki post-kuantum yol, lisans katmanından bağımsız olarak bir önizleme olmaya devam eder. Yine de iki bağımsız tercih gereklidir: burada belgelenen süreç geçidi ve Pkcs11Signer üzerindeki imzalayıcı başına yapıcı bayrağı.

SembolParametrelerVarsayılan davranışDöndürürFırlattığı veya başarısız olduğu durumNotlar
Pkcs11PqsAlgorithmdize destekli enum, 15 durumDurum başına bir FIPS 204 / FIPS 205 parametre kümesini adlandırırenum durumuDurum erişiminde hiçbir şeyDurum değerleri parametre kümesi adlarıdır, ör. ML-DSA-65.
Pkcs11PqsAlgorithm::isMlDsa()yokAile testiboolFırlatmazMlDsa44, MlDsa65, MlDsa87 için true.
Pkcs11PqsAlgorithm::isSlhDsa()yokisMlDsa() işlevinin olumsuzuboolFırlatmazOn iki SLH-DSA durumu için true.
Pkcs11PqsAlgorithm::mechanismId()yokAileyi aday PKCS#11 v3.1 PQ mekanizma kimliğine eşlerintÇalışma zamanında geçici Pkcs11 PQ sabitleri yoksa PHP ErrorCKM_ML_DSA veya CKM_SLH_DSA; her iki kimlik de geçicidir.
Pkcs11PqsAlgorithm::parameterSetId()yokDurumu OASIS parametre kümesi ayırıcısına eşlerintÇalışma zamanında geçici Pkcs11 PQ sabitleri yoksa PHP ErrorCKP_* değerleri; geçicidir.
Pkcs11PqsAlgorithm::signatureLength()yokDurum için FIPS tarafından zorunlu kılınan imza bayt uzunluğuint (pozitif)FırlatmazBeklenmeyen uzunlukta döndürülen bir imzayı reddetmek için imzalama yolu tarafından tüketilir.
Pkcs11PqsAlgorithm::nistCategory()yokİddia edilen NIST güvenlik gücü kategorisiintFırlatmaz1, 2, 3 veya 5 döndürür.
PqsPreviewFeaturedize destekli enum, 1 durumTek durum PREVIEW_PQS_HSM; sabit ENV_PREVIEW_PQS_HSMenum durumuDurum erişiminde hiçbir şeySüreç düzeyindeki önizleme geçidi.
PqsPreviewFeature::isEnabled()yokgetenv() değerini canlı okur; 1 dizesiyle katı karşılaştırma yaparboolFırlatmazDeğişkenin bulunmaması veya 0, true, yes dahil başka herhangi bir değer kapalı demektir.
PqsCapabilityStatus::__construct()dokuz adlandırılmış readonly alanRastgele bir tanımlayıcı örneği oluştururPqsCapabilityStatusFırlatmazcurrent() kurallı yapıcıdır.
PqsCapabilityStatus::current()yokÇevreleyen süreç için tanımlayıcıyı oluştururPqsCapabilityStatusFırlatmazHer iddia boole’si sabittir; yalnızca hsmRoundtripPreviewEnabled geçide göre değişir.
PqsCapabilityStatus::summary()yokTek satırlık durum metnistringFırlatmazİfade hiçbir kullanılabilirlik, arşivleme veya doğrulama iddiası taşımaz.
enum Pkcs11PqsAlgorithm: string
case MlDsa44 = 'ML-DSA-44';
case MlDsa65 = 'ML-DSA-65';
case MlDsa87 = 'ML-DSA-87';
case SlhDsaSha2_128s = 'SLH-DSA-SHA2-128s';
case SlhDsaShake_128s = 'SLH-DSA-SHAKE-128s';
case SlhDsaSha2_128f = 'SLH-DSA-SHA2-128f';
case SlhDsaShake_128f = 'SLH-DSA-SHAKE-128f';
case SlhDsaSha2_192s = 'SLH-DSA-SHA2-192s';
case SlhDsaShake_192s = 'SLH-DSA-SHAKE-192s';
case SlhDsaSha2_192f = 'SLH-DSA-SHA2-192f';
case SlhDsaShake_192f = 'SLH-DSA-SHAKE-192f';
case SlhDsaSha2_256s = 'SLH-DSA-SHA2-256s';
case SlhDsaShake_256s = 'SLH-DSA-SHAKE-256s';
case SlhDsaSha2_256f = 'SLH-DSA-SHA2-256f';
case SlhDsaShake_256f = 'SLH-DSA-SHAKE-256f';
public function isMlDsa(): bool
public function isSlhDsa(): bool
public function mechanismId(): int
public function parameterSetId(): int
public function signatureLength(): int
public function nistCategory(): int
enum PqsPreviewFeature: string
case PREVIEW_PQS_HSM = 'preview_pqs_hsm';
public const string ENV_PREVIEW_PQS_HSM = 'NEXTPDF_FEATURE_PREVIEW_PQS_HSM';
public function isEnabled(): bool
final readonly class PqsCapabilityStatus
public const string MATURITY_PREVIEW_EXPERIMENTAL = 'preview-experimental';
public const string MECHANISM_STATUS_PROVISIONAL = 'provisional';
public function __construct(
public bool $hsmRoundtripPreviewEnabled,
public bool $generallyAvailable,
public bool $adesCompliant,
public bool $verificationAvailable,
public bool $conformanceClaimed,
public bool $recognitionOnly,
public string $maturity,
public string $mechanismIdStatus,
public string $envGate,
)
public static function current(): self
public function summary(): string
  • Parametre kümesi kataloğu. NextPDF\Enterprise\Security\Signature\Hsm\Pkcs11PqsAlgorithm üç ML-DSA kümesini (FIPS 204) ve on iki SLH-DSA kümesini (FIPS 205 §11.p12, Table 2) numaralandırır. Her durum; geçici bir mekanizma kimliğine, bir parametre kümesi ayırıcısına, FIPS tarafından zorunlu kılınan bir imza bayt uzunluğuna ve iddia edilen bir NIST kategorisine eşlenir.
  • İmza uzunlukları. signatureLength(), FIPS 204 §4.p15 (Table 2) uyarınca MlDsa44, MlDsa65 ve MlDsa87 için 2420, 3309 ve 4627 bayt döndürür. SLH-DSA durumları, FIPS 205 §11 (Table 2) uyarınca düzeye ve varyanta göre 7856, 17088, 16224, 35664, 29792 ve 49856 bayt döndürür. Tüketen imzalayıcı, döndürülen bir imza farklı bir uzunluğa sahip olduğunda HsmOperationException fırlatarak FIPS 204 §x34 uzunluk reddi disiplinini yansıtır.
  • Kategoriler. nistCategory(), FIPS 204 §4.p9 uyarınca ML-DSA durumları için 2, 3 ve 5 döndürür. SLH-DSA durumları, güvenlik parametresi düzeyine göre 1, 3 ve 5 döndürür.
  • Süreç geçidi. PqsPreviewFeature::PREVIEW_PQS_HSM varsayılan olarak kapalıdır. isEnabled(), yalnızca NEXTPDF_FEATURE_PREVIEW_PQS_HSM ortam değişkeni tam olarak 1 dizesine eşit olduğunda true döndürür. Okuma her çağrıda canlıdır; hiçbir şey belleğe alınmaz.
  • Tamamlayıcı geçit uygulama. Süreç geçidi, Pkcs11Signer üzerindeki imzalayıcı başına $enablePostQuantum yapıcı tercihinden ayrıdır. İmzalama çağrısı, imzalayıcı başına tercih olmadan kapalı olacak şekilde başarısız olur. Süreç geçidi, gelecekteki herhangi bir gidiş-dönüş veya arşivleme davranışı için tek denetlenebilir sınır olarak vardır.
  • Dürüstlük değişmezi. NextPDF\Enterprise\Security\Signature\Hsm\PqsCapabilityStatus::current(), generallyAvailable, adesCompliant, verificationAvailable ve conformanceClaimed değerlerini sabit olarak false, recognitionOnly değerini ise true olarak kodlar. Hiçbir yapılandırma, yapıcı seçeneği veya ortam bayrağı bir iddiayı açık konuma getirmez. Yalnızca hsmRoundtripPreviewEnabled geçidi yansıtır.
  • Doğrulama yolu yok. NextPDF’in post-kuantum doğrulama yolu yoktur. Tanınan bir algoritma tanımlayıcısı veya iyi biçimlendirilmiş bir imza uzunluğu asla bir kabul kararı değildir.
  • Geçit değişkenini 0, true, yes, on veya boş bir dizeye ayarlamak geçidi kapalı bırakır. Yalnızca tam 1 dizesi onu etkinleştirir.
  • putenv() değişiklikleri, okuma canlı olduğundan bir sonraki isEnabled() çağrısında geçerli olur. Süreç ortasında değiştirilen bir geçit hemen gözlemlenir.
  • mechanismId() ve parameterSetId(), sabitleri Pkcs11 uzantı ad alanından çözer. Geçici post-kuantum uzantı sabitleri olmayan bir çalışma zamanı, çağrı anında bir PHP Error (tanımsız sabit) ile başarısız olur.
  • Mekanizma ve parametre kümesi kimlikleri geçicidir. OASIS, PKCS#11 v3.1 post-kuantum kaydını sonlandırmamıştır. Ürün yazılımı farklı kimlikler atayan bir token, PKCS#11 katmanında başarısız olur; operatörler önizlemeyi etkinleştirmeden önce ürün yazılımı kimliklerini doğrulamalıdır.
  • Tüketen imzalayıcı tarafından kabul edilen imzalama bağlamı, FIPS 204 imzalama giriş sözleşmesiyle (§x43.p2) eşleşerek 255 baytla sınırlıdır. Daha uzun bir bağlam, herhangi bir token çağrısından önce InvalidArgumentException fırlatır.
  • PqsCapabilityStatus::__construct() geneldir, bu nedenle elle oluşturulan bir örnek rastgele boole’ler taşıyabilir. Böyle bir örnek yalnızca bir değer nesnesidir. Herhangi bir imzalama davranışını değiştirmez. current(), kurallı, sabit kodlanmış yapıcıdır.
  • Tüketen imzalayıcıdaki rastgele-ye karşı deterministik seçim, FIPS 205 §x65.p7 semantiğini izler: riskten korunmalı (hedged) imzalama varsayılandır. Bayrak, her zaman kendi nonce’u aracılığıyla rastgeleleştiren ML-DSA için yoksayılır.

ML-DSA ve SLH-DSA, FIPS 204 ve FIPS 205 algoritmalarıdır, ancak bu önizleme hiçbir FIPS 140-3 doğrulama iddiası taşımaz. Bu yol için FIPS doğrulamalı bir post-kuantum HSM gidiş-dönüşü kurulmamıştır. Güvenlik derin referansında belgelenen Enterprise FIPS modu kripto politikası profili, klasik imzalama algoritmalarını geçit ardına alır; PQS yüzeyini doğrulanmış bir kümeye kabul etmez. FIPS modunu etkinleştirmek, post-kuantum imzalamayı FIPS doğrulamalı yapmaz. FIPS doğrulamalı bir imzanın gerekli olduğu yerlerde önizlemeyi dağıtmayın.

İddiaStandartMadde
ML-DSA-44/65/87, iddia edilen NIST kategorileri 2, 3, 5’i taşır.FIPS 204§4.p9
ML-DSA imza boyutları 2420, 3309, 4627 bayttır.FIPS 204§4.p15 (Table 2)
İmzalama bağlamı bayt dizesi 255 baytla sınırlıdır.FIPS 204§x43.p2
Yanlış uzunlukta bir imza veya anahtar reddedilmelidir.FIPS 204§x34
On iki SLH-DSA parametre kümesi onaylanmıştır.FIPS 205§11.p12 (Table 2)
SLH-DSA imza boyutları Table 2’yi izler (128s için 7856 bayt).FIPS 205§11.p6
Riskten korunmalı imzalama varsayılandır; deterministik bir varyant vardır.FIPS 205§x65.p7
CAdES/PAdES paket kataloğu yalnızca RSA ve EC-DSA’yı profillendirir.ETSI TS 119 312 V1.5.1§7.x7.p10 (Table A.1)
PKCS#11 PQ mekanizma kimlikleri geçicidir.OASIS PKCS#11 v3.1product-source grounded

Tüm maddeler başka sözcüklerle ifade edilmiştir. NextPDF, normatif metni yeniden üretmez. NextPDF hiçbir sertifikaya sahip değildir ve hiçbir sertifika vermez. Yukarıdaki ifadeler; tanımlayıcılar, uzunluklar ve sınırlar hakkında yapısal hizalama ifadeleridir. Bunlar uygunluk testi sonuçları değildir, üçüncü taraf tasdikleri değildir ve bir FIPS, OASIS veya ETSI uygunluk iddiası değildir. PqsCapabilityStatus bu duruşu kodda kodlar: conformanceClaimed false, adesCompliant false ve verificationAvailable her yapılandırmada false’tur. Bu önizleme tarafından üretilen bir imza, uzun süreli arşivleme için AdES uyumlu değildir ve çoğu PDF görüntüleyicisi bunu doğrulama anında reddeder.

  • OASIS PKCS#11 post-kuantum mekanizma kaydı sonlandırılmamıştır; burada kullanılan CKM_ML_DSA / CKM_SLH_DSA kimlikleri ve parametre kümesi sabitleri geçicidir ve bir spesifikasyon alıntısından değil, ürün kaynağından temellendirilmiştir.

  • Mevcut kilometre taşı, sahte (mock) test edilmiş hazır olma durumudur. Henüz gerçek bir post-kuantum ürün yazılımı HSM gidiş-dönüşü doğrulanmamıştır.

  • Üretimde her iki geçidi de kapalı tutun. Önizleme, klasik RSA/ECDSA PKCS#11 yolunun sahip olmadığı hiçbir üretim yeteneği eklemez.

  • Gerçek donanımla herhangi bir değerlendirme yapmadan önce, token ürün yazılımının mekanizma ve parametre kümesi kimliklerini geçici değerlere göre doğrulayın. Bir uyuşmazlık, NextPDF içinde değil PKCS#11 katmanında başarısız olur.

  • Araçlarda veya kullanıcı arayüzünde PQS durumunu gösterirken PqsCapabilityStatus::current() işlevini tek doğruluk kaynağı olarak kabul edin. Boole’lerini elle yeniden ifade etmeyin.

  • summary() çıktısı günlükler ve durum uç noktaları için güvenlidir; hiçbir kullanılabilirlik veya doğrulama iddiası taşımayacak şekilde ifade edilmiştir.

Bu sayfa yalnızca dışarıdan gözlemlenebilir davranışı ve desteklenen genel API yüzeyini belgeler. İç ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve talep önekleri kapsam dışıdır.