İçeriğe geç
getnextpdf.com

Güvenlik ve imzalama hataları

Bu sayfa, NextPDF\Security ad alanı ağacındaki güvenlik-alanı istisnalarını belgeler. Her giriş, sınıfı adlandırır, ne zaman fırlatıldığını belirtir, getContext() yönteminin döndürdüğü alanları listeler ve bir kurtarma adımı verir.

Bu sınıfların çoğu, NextPdfException sınıfını genişleten ve ContextAwareExceptionInterface arayüzünü uygulayan SecurityException sınıfını genişletir. Bu, getContext(): array yönteminin günlüklemeye veya uygulama performansı izleme (APM) işlem hatlarına yönlendirebileceğiniz yapılandırılmış, gizli-içermeyen tanılamalar döndürmesi demektir. Her güvenlik-alanı hatasını tek bir blokta yakalamak için SecurityException türünü yakalayın; türlü yüküne ihtiyaç duyduğunuzda belirli bir alt sınıfı yakalayın.

Bu ağaçtaki birkaç sınıf, SecurityException yerine doğrudan RuntimeException sınıfını genişletir. Bunlar aşağıda işaretlenmiştir; getContext() yöntemini sunmazlar ve çoğu, uygulama kodunda yakalamayı beklememeniz gereken dahili denetim-akışı sinyalleri olarak belgelenmiştir.

YönDavranış
Temel sözleşmeNextPdfException::getContext() [] döndürür; alt sınıflar onu geçersiz kılar.
Gizli hijyeniİletiler ve bağlam, ham anahtar materyalini, düz metni, PIN’leri ve başlatma vektörü (IV) baytlarını içermez. Anahtarlar yalnızca bir parmak izi öneki olarak yüzeye çıkar.
SecurityExceptionSoyut temel; kendine ait alan taşımaz. Alt sınıflar yükü tanımlar.
  • Ne zaman fırlatılır. Asla doğrudan fırlatılmaz; güvenlik alanı için soyut temeldir. Tek bir catch (SecurityException $e) bloğunun kimlik-doğrulamalı-şifreleme bütünlük hatalarını, nonce-yeniden-kullanım savunmalarını, PDF/A-karşı-şifreleme bağını, anahtar-yönetimi hatalarını ve PKI hatalarını yakalayabilmesi için vardır.
  • Bağlam alanları. Kendine ait alan yoktur. Boş varsayılanı NextPdfException sınıfından devralır; alt sınıflar yükü doldurur.
  • Çözüm. Eyleme dönük işleme için somut alt sınıfı yakalayın ya da kaba güvenlik-olayı yönlendirmesi için SecurityException türünü yakalayın.

Şifreleme ve kimlik-doğrulamalı-şifreleme hataları

“Şifreleme ve kimlik-doğrulamalı-şifreleme hataları” başlıklı bölüm

Bunlar, AES-GCM (Galois/Counter Mode) şifreleyicisi ve PDF/A koruması tarafından fırlatılır. Belirti-öncelikli rehberlik için Şifreleme ve izinler sayfasına bakın.

  • Ne zaman fırlatılır. İlişkili veriyle kimlik-doğrulamalı-şifreleme (AEAD) şifre çözme işlemi, kurcalama dışı bir nedenle başarısız olur: kesilmiş şifreli metin, eksik bir IV ya da bütünlük denetiminin gerçekten çalışması için yeterli materyal olmadığı durumda API sınırında sağlanan yanlış bir anahtar. Bu bir yapılandırma veya taşıma hatasıdır, bir güvenlik olayı değil.
  • Bağlam alanları. algorithm (örneğin AES-256-GCM), reason (örneğin ciphertext shorter than IV+tag).
  • Çözüm. Şifreli metnin, IV’nin ve anahtarın eksiksiz ve doğru çerçevelenmiş olduğunu doğrulayın; bunu kurcalama olarak ele almayın. TamperedDataException ile karşılaştırın.
  • Ne zaman fırlatılır. AEAD kimlik-doğrulama etiketi doğrulamada başarısız olur. Etiket, şifreli metni artı ilişkili kimlik-doğrulamalı veriyi (AAD) kapsar; şifrelemeden sonra ikisinden biri değiştirildiyse temeldeki openssl_decrypt() false döndürür. Bu ayrı alt tür, bir çerçeveleme hatası yerine güvenlik-olayı-düzeyinde bir uyarı yüzeye çıkarmanıza olanak tanır.
  • Bağlam alanları. algorithm, ciphertext_length (reddedilen şifreli metnin uzunluğu, IV ve etiket hariç).
  • Çözüm. Kurcalama ya da yanlış anahtar/IV olarak ele alın. Körü körüne yeniden denemeyin; şifreli metnin kaynağını araştırın. ISO/TS 32003:2023 §5.2 ve NIST SP 800-38D §6.5 uyarınca, başarısız bir etiket denetimi, verinin özgün olmadığı anlamına gelir.
  • Ne zaman fırlatılır. AES-GCM’den, aynı anahtar ve IV çiftiyle iki kez şifrelemesi istenir. Şifreleyici, örnek başına monoton bir sayaçla ve derinlemesine savunma olarak, yayılan her (anahtar-parmak izi, IV) çiftinin bir çalışma zamanı karma kümesiyle savunur. Sayaç çakışmaları yapısal olarak dışladığından, bu tetiklenme, üretimde asla oluşmaması gereken kritik-öncelikli bir hata göstergesidir. Bir anahtar/IV çiftini yeniden kullanmak, tüm anahtar akışını tehlikeye atar (ISO/TS 32003:2023 §5.2 NOT 2; NIST SP 800-38D §8.3).
  • Bağlam alanları. key_fingerprint_prefix (SHA-256(key) değerinin ilk 8 onlu altılı karakteri), iv_length (ISO/TS 32003 için her zaman 12), reason (hashset-collision ya da counter-rollover; sayaç-yenen bir yeniden düzenleme hatasını 2^63 sayaç eşiğinden ayırır) ve iv_fixed_field_hex (IV sabit alanı; yalnızca sağlandığında mevcut, kendi anahtarı altında bildirilir ve asla anahtar parmak izi olarak yanlış etiketlenmez).
  • Çözüm. Hemen iptal edin ve anahtarı döndürün. Bir kusur raporu açın; bu, kötü çağıran girdisini değil, şifreleyicideki bir hatayı gösterir.
  • Ne zaman fırlatılır. Belirli bir AES-GCM anahtarı için tercihe bağlı bir NIST SP 800-38D §8.3 kullanım-güvenliği çağrı sayısına ulaşılır. Bu, spesifikasyonun önerdiği sınırı (anahtar başına yaklaşık 2^32 çağrı), şifreleyici içindeki mimari sınırlardan daha erken uygulamak isteyen çağıranlar için derinlemesine savunmalı bir telemetri kancasıdır. Varsayılan olarak tetiklenmez; onu yalnızca assertWithinSafetyBound() yardımcısı fırlatır.
  • Bağlam alanları. key_fingerprint_prefix, invocation_count (geçerli encrypt() sayısı, sınırda veya üzerinde), invocation_limit (tercihe bağlı sınır).
  • Çözüm. Kümülatif çakışma ve sahtecilik olasılığı ihmal edilebilir olmaktan çıkmadan önce belge anahtarını döndürün (yeni anahtar materyaliyle yeni bir şifreleyici oluşturun) ya da hizmeti sürdürmeyi reddetmek için çağıran ilkesini genişletin.
  • Ne zaman fırlatılır. Bir PDF/A-etiketli belge üzerinde bir şifreleme işlemi denenir. PDF/A ailesi (PDF/A-2, PDF/A-3, PDF/A-4) şifrelemeyi tek biçimli olarak yasaklar: ISO 19005 §6.1.3 uyarınca Encrypt anahtarı fragmanda yer almamalıdır ve ISO 19005-4:2020 Ek A ve B bunu değişiklik olmadan devralır. PDF/A ile şifrelemenin izin verilen hiçbir bileşimi yoktur.
  • Bağlam alanları. pdfa_mode (örneğin pdfa4, pdfa3), encryption_operation (reddedilen çağrı, örneğin useAesGcm).
  • Çözüm. Şifrelenmiş bir belge üretmek için enablePdfA() çağrısını çıkarın; arşivleme belgesi üretmek için şifreleme çağrısını çıkarın. PDF/A ve PDF/UA doğrulama sayfasına bakın.
  • Ne zaman fırlatılır. Yapılandırılmış bir kripto ilkesi, bir çekirdek imzalama, şifreleme veya karma işleminin seçtiği bir algoritmayı, anahtar gücünü ya da şifreyi reddeder. Bu, uygunluk uygulaması (örneğin FIPS 140-2/3, eIDAS ya da özel kurumsal ilke) için güvenli-biçimde-başarısız-olan sınırdır ve herhangi bir imza veya şifreli metin üretilmeden önce CryptoPolicyEnforcer tarafından fırlatılır; böylece ilkeyi ihlal eden bir işlem asla onaylanmamış bir yapıt yayamaz. Dar bir OpenSSL işlem hatasından ve bir imzalama-ilkeli hatasından farklıdır: bu, başka türlü geçerli bir isteğin ilke reddidir. NIST SP 800-131A Rev. 2 ve ISO/IEC 19790:2025 §7 ile uyumludur.
  • Bağlam alanları. policy (ilke adı, örneğin FIPS 140-3 Strict), category (hash, signature, encryption ya da key-strength), item (reddedilen öğe, örneğin bir nesne tanımlayıcısı (OID), şifre adı ya da rsa/1024), reason.
  • Çözüm. Adlandırılmış ilkenin onayladığı bir algoritma, anahtar uzunluğu ya da şifre seçin ya da sahibiyseniz ilkeyi ayarlayın. Yapılandırılmış bağlamı belgelenmiş uygunluk çalışma kitabına yönlendirin.

Aynı adlı iki sınıf vardır. Tek bir catch (SecurityException $e) bloğunun her ikisini de yakalaması için SecurityException kökünü paylaşırlar ancak farklı yükler taşırlar. Belirli bir biçime ihtiyaç duyduğunuzda tam nitelikli adla içe aktarın.

KeyManagementException (yaşam döngüsü: NextPDF\Security\Exception)

“KeyManagementException (yaşam döngüsü: NextPDF\Security\Exception)” başlıklı bölüm
  • Ne zaman fırlatılır. Bir anahtar-yönetimi işlemi, anahtar bir imzalama veya şifreleme ilkeli tarafından tüketilmeden önce başarısız olur: Privacy-Enhanced Mail (PEM), PKCS#12 ya da PKCS#11 anahtar ayrıştırma hataları; anahtar-türetme (HKDF, PBKDF2, scrypt) hataları; yanlış bir anahtar-şifreleme anahtarında AES Key Wrap (RFC 3394) reddi; bozuk Distinguished Encoding Rules (DER) döndüren bir donanım güvenlik modülü (HSM); ya da bir Ed25519 tohum uzunluğu uyuşmazlığı.
  • Bağlam alanları. operation (örneğin load_pem, kek_derive, key_wrap), key_type (örneğin RSA, EC-P256, Ed25519, AES-256), reason. Ham anahtar materyali asla dahil edilmez.
  • Çözüm. Adlandırılan işlemi ve anahtar türünü inceleyin, kaynak anahtar materyalini veya türetme girdisini düzeltin ve yeniden deneyin.

KeyManagementException (imzalama yolu: NextPDF\Security\Signature\Exception)

“KeyManagementException (imzalama yolu: NextPDF\Security\Signature\Exception)” başlıklı bölüm
  • Ne zaman fırlatılır. Bir imzalayıcı sağlayıcı bir anahtar-yönetimi hatasıyla karşılaşır: istenen anahtar sürümü bilinmiyor, devre dışı, imha için zamanlanmış, imzalama izni yok ya da başka türlü kullanılamaz. RsaPssSigner ve LocalKeySignerProvider canlı anahtar hatalarında bunu fırlatır. Adlandırılmış yapıcılar: unknownKeyVersion() ve keyVersionDisabled().
  • Bağlam alanları. providerId, keyVersion, reason. Erişimciler: providerId(), keyVersion(), reason().
  • Çözüm. Anahtarı döndürün veya yeniden izinlendirin ya da kullanılabilir bir anahtar sürümü seçin, sonra yeniden deneyin. İmzalama ilkelinin kendisinin başarısız olduğunu işaret eden SignatureFailedException türünden farklıdır.

Erişilemeyen seviyeler ve eksik yetenekler hakkında belirti-öncelikli rehberlik için İmza ve zaman damgası hataları sayfasına bakın.

SignatureFailedException (R4-13: NextPDF\Security\Exception)

“SignatureFailedException (R4-13: NextPDF\Security\Exception)” başlıklı bölüm
  • Ne zaman fırlatılır. Bir kriptografik imzalama işlemi başarısız olur: bir RSA, ECDSA ya da Ed25519 imza ilkeli false veya yanlış uzunlukta çıktı döndürür; bir HSM ya da PKCS#11 belirteci başarı-dışı bir durumla yanıt verir; Cryptographic Message Syntax (CMS) SignedData derlemesi hatalı bir sertifika ya da zincirde başarısız olur; ya da bir Ed25519 gidiş-dönüş öz-doğrulaması başarısız olur. Yeni kod, eski PAdES-bağlı imza istisnası yerine bu R4-13 alt türünü tercih etmelidir.
  • Bağlam alanları. operation (örneğin sign, verify, build_cms), algorithm (örneğin rsa-pkcs1v15-sha256, ed25519), reason. Erişimciler: getOperation(), getAlgorithm(), getReason().
  • Çözüm. İşlemi ve algoritmayı okuyun, girdiyi (anahtar, sertifika zinciri ya da arka uç kullanılabilirliği) düzeltin ve yeniden deneyin. ETSI EN 319 142-1 güvenli-biçimde-başarısız-olan anahtar-işleme duruşuyla uyumludur.

SignatureFailedException (SPI: NextPDF\Security\Signature\Exception)

“SignatureFailedException (SPI: NextPDF\Security\Signature\Exception)” başlıklı bölüm
  • Ne zaman fırlatılır. Bir SignerProviderInterface uygulaması, bir imzalama işlemini anahtar-yönetimi olarak sınıflandırılmayan herhangi bir nedenle tamamlayamaz: arka uç sürücü hatası, hatalı anahtar materyali ya da kurtarılamayan HSM G/Ç. Bu, her ilkelin null, false ya da boş bir dize döndürmek yerine hata durumunda fırlattığı güvenli-biçimde-başarısız-olan imzalama sözleşmesi için yakala-her-şeydir. Adlandırılmış yapıcı: forProvider().
  • Bağlam alanları. providerId, reason. Erişimciler: providerId(), reason().
  • Çözüm. Sağlayıcı kimliğini ve nedeni inceleyin, sağlayıcı arka ucunu veya anahtar materyalini düzeltin ve yeniden deneyin. “Anahtar bozuk” ile “ilkel başarısız oldu” durumlarını ayırmak için KeyManagementException ile bu tür arasında dallanın.
  • Ne zaman fırlatılır. İstenen PAdES uygunluk seviyesi, geçerli çalışma zamanı altyapısı altında (çoğunlukla B-T ve üzeri için eksik bir zaman damgası yetkilisi) karşılanamaz ve çağıran düşürme izni vermemiştir. Varsayılan, güvenli-biçimde-başarısız-olmaktır: motor, daha yükseğini bildirirken sessizce daha düşük bir seviye üretmek (ki bu eIDAS-düzeyinde bir gerileme olurdu) yerine reddeder. ETSI EN 319 142-1 §6 ile uyumludur. Bu sınıfın (SecurityException değil) doğrudan NextPdfException sınıfını genişlettiğine dikkat edin.
  • Bağlam alanları. requestedLevel, highestAchievableLevel, reason. Erişimciler: requestedLevel(), highestAchievableLevel(), reason().
  • Çözüm. Eksik altyapıyı tanımlamak için reason alanını okuyun ve sağlayın (örneğin bir zaman damgası yetkilisi yapılandırın) ya da ulaşılabilir en yüksek seviyeyi bilerek kabul etmek için PadesOrchestrator bileşenine allowDegradation: true değerini geçirin.
  • Ne zaman fırlatılır. SignerProviderRegistry::get() yöntemine, kayıtlı olmayan bir sağlayıcı kimliği sorulur. PSR-11 NotFoundExceptionInterface arayüzünü uygular; bu nedenle kayıt, PSR-11 konteyner sözleşmesine uyar. Adlandırılmış yapıcı: forId(). Bu sınıf RuntimeException sınıfını genişletir ve getContext() yöntemini sunmaz.
  • Bağlam alanları. Yok. Kayıtlı olmayan kimlik iletide görünür.
  • Çözüm. İstemeden önce sağlayıcıyı beklenen kimlik altında kaydedin ya da kayda geçirdiğiniz kimliği düzeltin.

Bunlar RuntimeException sınıfını genişletir ve getContext() yöntemini sunmaz. SHAKE256, bazı ISO/TS 32001 yollarının gerektirdiği SHA-3 genişletilebilir-çıktı işlevidir.

  • Ne zaman fırlatılır. Özet zamanında, seçilen sağlayıcı isteği karşılayamadığında. Adlandırılmış yapıcılar: noBackend() (bu ana bilgisayarda, denenen tüm katmanlarda çalışan bir SHAKE256 arka ucu yok) ve ffiCallFailed() (FFI-bağlı bir OpenSSL EVP çağrısı, örneğin soyulmuş bir libcrypto yapısından başarı-dışı bir durum döndürdü).
  • Bağlam alanları. Yok. İleti, denenen katmanları veya başarısız sembolü adlandırır.
  • Çözüm. OpenSSL 3.x mevcut olacak şekilde ext-ffi yükleyin ya da hash_algos() içinde shake256 sunan bir PHP yapısına yükseltin. Bir kullanıcı alanı Keccak yedeği kasıtlı olarak gönderilmez.
  • Ne zaman fırlatılır. Bir SHAKE256 sağlayıcı yapıcısından, yetenek araştırması başarısız olduğunda; bu nedenle sağlayıcı örneklenemez. Bu bir denetim-akışı sinyalidir: sağlayıcı kaydı onu yakalar, katman etiketini kaydeder ve bir sonraki katmanı dener. Uygulama koduna asla kaçmamalıdır. Adlandırılmış yapıcı: forTier().
  • Bağlam alanları. Yok. İleti, katmanı ve nedeni adlandırır.
  • Çözüm. Doğrudan çağıran tarafından eyleme dönük değildir; tüm katman zinciri tükenirse, kayıt bunun yerine operatöre dönük düzeltmeyi taşıyan Shake256NotAvailableException::noBackend() yüzeye çıkarır.

Bunlar, /AuthCode altında saklanan ISO/TS 32004 belge-düzeyi mesaj kimlik doğrulama kodunu (MAC) kapsar. Her ikisi de NextPdfException sınıfını genişletir ve getContext() yöntemini geçersiz kılar.

  • Ne zaman fırlatılır. Güvenli biçimde başarısız olarak, MAC belirteci okuyucusu tarafından, bir CMS AuthenticatedData MAC belirteci yapısal olarak hatalı biçimlendiğinde ya da kabul edilen ISO/TS 32004 kümesinin dışında bir algoritma bildirdiğinde. Adlandırılmış yapıcılar: malformed() ve algorithmMismatch(). @internal olarak işaretlenmiştir.
  • Bağlam alanları. status (DocumentMacVerificationStatus değeri, ya MalformedToken ya da AlgorithmMismatch). Genel salt okunur özellik: $status.
  • Çözüm. Belgeyi doğrulanmamış olarak ele alın. Hatalı bir belirteç veya kabul edilen kümenin dışında bir algoritma, MAC’in güven kuramayacağı anlamına gelir; içerik korunuyormuş gibi devam etmeyin.
  • Ne zaman fırlatılır. Güvenli biçimde başarısız olarak, bir belge-düzeyi MAC doğrulaması güvenilir bir duruma ulaşamadığında: eksik veya hatalı bir /AuthCode, kabul edilen kümenin dışında bir algoritma, bir açma hatası ya da bir MAC uyuşmazlığı (kurcalama). Doğrulayıcının verify() yöntemi dallanma için açık bir sonuç döndürür; bu, “içeriğe güven” kodunun doğrulanmamış bir belgenin ötesine asla geçememesi için assertVerified() tarafından fırlatılan istisna-akışı karşılığıdır. Adlandırılmış yapıcı: fromResult().
  • Bağlam alanları. status (DocumentMacVerificationStatus değeri). Genel salt okunur özellik: $status.
  • Çözüm. Belge içeriğine güvenmeyin. Bir kurcalamayı (MAC uyuşmazlığı) bir yapılandırma sorunundan (eksik veya hatalı /AuthCode, algoritma uyuşmazlığı) ayırmak için status değerini inceleyin.

Bunlar, RFC 5280 sertifikalandırma-yolu doğrulamasını kapsar. Temel tür ve alt sınıfları güvenli biçimde başarısız olur.

  • Ne zaman fırlatılır. RFC 5280 yol doğrulayıcısından katı-kip bir hata. Daha dar alt sınıflar (ChainLengthExceededException, UnsupportedExtensionException) için son-olmayan temeldir; böylece bu türü yakalayan işleyiciler, Liskov yerine koyma yoluyla onları da yakalar. SecurityException sınıfını genişletir.
  • Bağlam alanları. getContext() yöntemini geçersiz kılmaz (boş varsayılanı devralır). Yapılandırılmış nedenleri, dondurulmuş genel salt okunur dizi özelliği $reasons (kural-adı artı açıklama dizelerinden oluşan boş olmayan bir liste) içinde taşır.
  • Çözüm. Başarısız olan kuralı tanımlamak için $reasons değerini okuyun, sertifika zincirini düzeltin ve yeniden doğrulayın. Herhangi bir yol-doğrulama hatasını tek biçimli olarak işlemek için bu türü yakalayın.
  • Ne zaman fırlatılır. Yol doğrulayıcısından, uzunluğu yapılandırılmış tavanı aşan bir zinciri yürümesi istenir. Üst sınır, herhangi bir ayrıştırma başlamadan önce uygulanır; böylece kötü amaçlı bir tedarikçi, doğrulayıcıyı ikinci dereceden bir işe sürükleyemez ya da keyfi olarak derin bir zincirle kaynakları tüketemez. Varsayılan 10 tavanı, PKIX-CMP profilini (RFC 4210 §5.3.18) izler; gerçek dünya zincirleri 5 ila 6 girişe sığar. PkiPathValidationException alt sınıfı.
  • Bağlam alanları. Boş getContext() değerini devralır; chain_length_exceeded: supplied=<n> cap=<n> neden dizesi, üst öğenin $reasons değerine iletilir. Genel salt okunur özellikler: $supplied, $cap.
  • Çözüm. Tavan içinde bir zincir sağlayın ya da meşru biçimde daha uzun bir zincir bekleniyorsa yapılandırılmış üst sınırı yükseltin.
  • Ne zaman fırlatılır. Yol doğrulayıcısı, uygulaması henüz gerçekleştirilmemiş kritik bir X.509 uzantısıyla karşılaşır. RFC 5280 §4.2 uyarınca, tanınmayan kritik bir uzantı güvenli biçimde başarısız olmalıdır; kritik bir uzantıyı sessizce atlamak bir güvenlik gerilemesi olacağından, hem katı hem de hoşgörülü kipler burada güvenli biçimde başarısız olur. Doğrulayıcı, zincir oluşturmayı, AKI/SKI eşleştirmeyi, anahtar kullanımını, genişletilmiş anahtar kullanımını, temel kısıtlamaları, sona ermeyi ve imza doğrulamayı kapsar; başka herhangi bir kritik öğe burada yüzeye çıkar. PkiPathValidationException alt sınıfı.
  • Bağlam alanları. Boş getContext() değerini devralır; yapılandırılmış nedenler üst öğenin $reasons değerine iletilir. Genel salt okunur özellikler: $extensionOid (noktalı OID, örneğin ad kısıtlamaları için 2.5.29.30), $extensionName, $clauseRef (RFC 5280 hükmüne ve ertelenmiş-öğeler günlük girişine işaretçi).
  • Çözüm. Hoşgörülü kipte, gerçek yol-doğrulama hatalarını yutmadan daha kaba bir ilkeye geri dönmek için bu belirli alt sınıfı yakalayın. Hangi uzantının doğrulamayı engellediğini görmek için $extensionOid ve $clauseRef değerlerini PKI sınama düzeneklerinize karşı denetleyin.
  • Ne zaman fırlatılır. Hem OCSP hem de sertifika iptal listesi (CRL) uç noktaları, kesin bir karar olmadan tükenir: OCSP taşıma hatası veya hatalı yanıt ve CRL taşıma hatası veya hatalı CRL; her iki devre kesici de açık ya da her iki önbellek de eksik. Katı kip bunu güvenli-biçimde-başarısız olarak ele alır; hoşgörülü kip onu yakalar ve revocation = null ile bir PSR-3 uyarısı yayar. SecurityException sınıfını genişletir.
  • Bağlam alanları. getContext() yöntemini geçersiz kılmaz (boş varsayılanı devralır). Durumu, genel salt okunur özellikler $ocspState ve $crlState (her biri varsayılan olarak unknown) içinde taşır.
  • Çözüm. Bir iptal kaynağına erişilebilirliği geri yükleyin, devre kesicilerin kapanmasını bekleyin ya da önbelleği ısıtın, sonra yeniden deneyin. Bir uzun-vadeli-doğrulama yapıtı elde etmek için bunu bastırmayın; iptal öne sürümü o seviyenin bir parçasıdır.
  • Ne zaman fırlatılır. Bir RFC 6960 §4.2.2.2 BasicOCSPResponse imzası, yanıtlayıcının sertifikasına karşı kriptografik doğrulamada başarısız olur. Ayrıştırıcı, signatureAlgorithm (RSA-PSS, ECDSA ya da RSA-PKCS1v15) kodunu çözer ve tbsResponseData üzerinde signature değerini doğrular; herhangi bir hata, çağıranların yapısal olarak geçerli ancak kriptografik olarak kurcalanmış bir yanıtı hatalı-DER bir yanıttan ayırabilmesi için bu türlü istisnayı fırlatır. Son-olmayan; böylece alt akış paketleri daha özel alt sınıflar yayımlayabilir. SecurityException sınıfını genişletir.
  • Bağlam alanları. getContext() yöntemini geçersiz kılmaz (boş varsayılanı devralır). Hata etiketini, genel salt okunur özellik $reason (örneğin signature_mismatch, responder_cert_not_in_bundle, unsupported_signature_algorithm) içinde taşır; serbest metinli detail iletiye katlanır.
  • Çözüm. $reason değerini inceleyin. responder_cert_not_in_bundle için doğru güven çıpası paketini ve yanıtlayıcı sertifikasını sağlayın. signature_mismatch için yanıtı güvenilmez olarak ele alın. İmza ve zaman damgası hataları sayfasına bakın.
  • Ne zaman fırlatılır. RFC 3161 zaman damgası yetkilisi (TSA) iletişiminde ya da yanıt ayrıştırmasında bir hata: TSA bir hata durumu döndürür, HTTP isteği başarısız olur ya da ASN.1 yanıtı ayrıştırılamaz. TSA hata hiyerarşisinin temelidir ve son-olmadığından doğrulama hataları onu genişletebilir. NextPdfException sınıfını genişletir.
  • Bağlam alanları. getContext() yöntemini geçersiz kılmaz (boş varsayılanı devralır).
  • Çözüm. Herhangi bir TSA-hata yolu için TsaException türünü yakalayın. TSA erişilebilirliğini ve uç noktanın iyi-biçimli bir RFC 3161 yanıtı döndürdüğünü doğrulayın.
  • Ne zaman fırlatılır. Bir RFC 3161 TimeStampToken belirtecinin CMS doğrulaması, zorunlu doğrulama adımlarından herhangi birinde başarısız olur: RFC 5816 §3 ESSCertIDv2 bağı, RFC 5652 §11 imzalı-öznitelikler bütünlüğü, RFC 3161 §2.4.2 producedAt tazeliği ya da RFC 5652 §5.4 SignerInfo imzası. Güvenli biçimde başarısız olur; denetim işlem hatlarının iletileri grep’lemeden yeniden-yürütmeyi saat kaymasından ve sertifika-uyuşmazlığından ayırabilmesi için türlü bir adım ayırıcısı taşır. TsaException alt sınıfı; böylece eski catch (TsaException) işleyicileri tetiklenmeye devam eder.
  • Bağlam alanları. step (başarısız olan işlem hattı Step değeri) ve message. Erişimci: getStep().
  • Çözüm. Bir geliştirici (yanlış yapılandırılmış TSA sertifikası veya kayma toleransı) ya da güvenlik (şüpheli MITM veya yeniden yürütme) tarafından eyleme dönüktür. Başarısız olan aşamayı yerelleştirmek için step değerini okuyun ve ilgili girdiyi veya güven yapılandırmasını düzeltin.
  • Ne zaman fırlatılır. Bir DER yürüyüşünün hatalı veya kesilmiş bir sınıra çarptığını belirten, TSA belirteci doğrulayıcısı içindeki düşük seviyeli yürüyücülerin fırlattığı dahili sinyal. Her zaman genel doğrulama sınırında yakalanır ve doğru adım ayırıcısını taşıyan bir TsaTokenVerificationException içine yeniden sarılır; asla çağıran koduna sızmaz. RuntimeException sınıfını genişletir; @internal olarak işaretlenmiştir.
  • Bağlam alanları. Yok.
  • Çözüm. Çağırana dönük değildir. Bunun yerine sarmalanmış TsaTokenVerificationException türünü işleyin.

Bunlar RuntimeException sınıfını genişletir ve getContext() yöntemini sunmaz. Her ikisi de güvenli-biçimde-başarısız-olan kod çözücülerdir.

  • Ne zaman fırlatılır. Ad-kısıtlamaları kod çözücüsü, sadakatle kod çözemediği uygulanabilir bir GeneralSubtree öğesiyle karşılaşır. RFC 5280 §4.2.1.10, bir güvenen tarafın uygulanabilir bir ad kısıtlamasını işlemesini ya da sertifikayı reddetmesini gerektirir; önceki sessiz düşürmeyi bu türlü hataya çevirmek, kabul edilen ad kümesini sessizce genişletecek bir fail-open durumunu önler. Kapsam, uygulanabilir ad biçimleriyle sınırlıdır (directoryName, dNSName, iPAddress, rfc822Name, uniformResourceIdentifier); uygulanamayan biçimler yok sayılabilir kalır ve onu asla fırlatmaz. Adlandırılmış yapıcı: undecodableEnforceableBase(). @internal olarak işaretlenmiştir.
  • Bağlam alanları. Yok. Günlüğe-güvenli bir ayrıntı dizesi iletide taşınır.
  • Çözüm. Uygulayıcı, güvenli-biçimde-başarısız-olan bir name_constraints: nedeni yüzeye çıkarır ve zincir reddedilir. Sertifikanın ad-kısıtlamaları kodlamasını araştırın; uygulamayı gevşetmeyin.
  • Ne zaman fırlatılır. qcStatements uzantısı yapısal olarak hatalı biçimlendiğinde: kesilmiş DER, yanlış bir etiket ya da bir uzunluk taşması. Kod çözücü güvenli biçimde başarısız olur ve uzantının ne söylediğini kesinlikle belirleyemediğinde kısmi veya sezgisel bir sonuç döndürmek yerine fırlatır. @api olarak işaretlenmiştir.
  • Bağlam alanları. Yok.
  • Çözüm. Yalnızca hatalı kodlamayı tolere etmeyi amaçlıyorsanız onu açıkça yakalayın; aksi hâlde sertifikanın nitelikli-sertifika ifadelerini belirlenemez olarak ele alın ve sertifikayı reddedin ya da yeniden düzenleyin.
  • Ne zaman fırlatılır. Bir PKCS#11 v3.1 oturum-yönetimi kusuru. Her adlandırılmış yapıcı, belirli bir kusur sınıfına ve bir PKCS#11 CKR_* dönüş değerine eşlenir; bu, türlü $kind ayırıcısı üzerinden sunulur, böylece çağıranlar kırılgan ileti eşleştirmesi yerine kararlı bir enum-dizesine göre dallanır. Yapıcılar şunları içerir: cryptokiNotInitialized(), userNotLoggedIn(), userAlreadyLoggedIn(), operationNotInitialized(), operationActive(), mechanismNotAllowed(), tokenDisconnected(), concurrentSessionLimitExceeded(), sessionAlreadyClosed(), stateTransitionInvalid(), osLockingRequired(), loginTtlExpired() ve signOperationTtlExpired(). SecurityException sınıfını genişletir.
  • Bağlam alanları. getContext() yöntemini geçersiz kılmaz (boş varsayılanı devralır). Türlü türü, genel salt okunur özellik $kind içinde taşır; bu, KIND_* sabitlerinden biridir (örneğin KIND_USER_NOT_LOGGED_IN, KIND_TOKEN_DISCONNECTED, KIND_LOGIN_TTL_EXPIRED). Yuva ve oturum tanımlayıcıları, mekanizma ve TTL değerleri iletide görünür. PIN’ler ve sertifika baytları asla dahil edilmez.
  • Çözüm. $kind değerine göre dallanın. user_not_logged_in için bir imzalama işlemini başlatmadan önce kullanıcı PIN’i ile oturum açın. token_disconnected için yuvadaki tüm oturumları yetim olarak ele alın. TTL türleri için yeniden kimlik doğrulayın ya da işlemi yeniden başlatın. mechanism_not_allowed için yapılandırılmış mekanizma izin-listesini genişletin veya izin verilen bir mekanizma seçin.