İmza İhlalini Tespit Etme
İmza İhlalini Algılama
SignaturesCompromiseDetector bu kılavuzun giriş noktasıdır: imzalı bir belgenin revizyon geçmişini, içeriğin son imzadan sonra eklenip eklenmediğine dair göstergeler için inceler ve bulduklarını bir CompromiseCheckResult olarak raporlar. Bu, bilgi tabanının bu kümesi tarafından kapsanan güvenlik yüzeyidir — imza oluşturmayı veya uygulamayı, ya da belge şifrelemeyi kapsamaz; yalnızca bir belgede zaten mevcut olan imzaları inceler.
Bir İhlal Kontrolü Çalıştırma
SignaturesCompromiseDetector‘ı incelemek istediğiniz belgeyle oluşturun, ardından SignaturesCompromiseDetector.check()‘i çağırın. Kontrol, belgede zaten bulunan her imzayı dolaşır ve son imzalı revizyondan sonra eklenmiş imzasız baytları arar — bu, içeriğin sonradan eklenmiş olabileceğinin bir işaretidir — aynı zamanda daha sonraki, kapsayıcı bir imza tarafından eklenen belge güvenlik deposu ya da arşiv zaman damgası gibi meşru uzun vadeli doğrulama materyallerine tolerans gösterir.
Sonucun Yorumlanması
SignaturesCompromiseDetector.check(), dört özelliğe sahip bir CompromiseCheckResult döndürür:
CompromiseCheckResult.has_compromised_signatures— herhangi bir imzanın bir müdahale göstergesi gösterdiği durumdaTrue.CompromiseCheckResult.compromised—CompromiseCheckResult.has_compromised_signaturesöğesinin aynasıdır, yalnızca okunabilir bir kolaylık takma adı olarak sağlanır.CompromiseCheckResult.signatures_coverage— algılayıcının belgede incelediği imza sayısı.CompromiseCheckResult.reasons— belgenin ne zaman işaretlendiğini ve neden işaretlendiğini açıklayan kısa dizelerin listesi.
İmzası olmayan bir belge ya da hiç belge bulunmayan bir durum, CompromiseCheckResult.signatures_coverage değeri 0 olacak şekilde, tehlikeye girmemiş olarak raporlanır.
İpuçları ve En İyi Uygulamalar
CompromiseCheckResult.compromisedveCompromiseCheckResult.has_compromised_signaturesöğelerini birbirinin yerine geçebilen olarak ele alın — her zaman aynı değeri rapor ederler.CompromiseCheckResult.signatures_coverageöğesini, birFalsesonucuna güvenmeden önce kontrol edin:0kapsama, algılayıcının incelenecek imza bulamadığını, mevcut imzaların sağlam olduğu doğrulanmadığını gösterir.CompromiseCheckResult.has_compromised_signaturesTrueolduğundaCompromiseCheckResult.reasonsöğesini okuyun — liste, hangi sezginin tetiklendiğini açıklar; bu, sonucu bir gözden geçiren kişiye günlüğe kaydederken veya sunarken faydalıdır.SignaturesCompromiseDetectordeğişiklik geçmişini müdahale göstergeleri için inceler; kendisi kriptografik imza bütünlüğünü doğrulamaz, bu yüzden iş akışınızda bu önemli olduğunda belgenin kendi imza-doğrulama sonuçlarıyla eşleştirin.
Sık Karşılaşılan Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
CompromiseCheckResult.signatures_coverage, imzalı olduğunu bildiğiniz bir belge için 0 | SignaturesCompromiseDetector, bir belge olmadan oluşturuldu veya belge nesnesinin erişilebilir imzaları yok | Çağırmadan önce, SignaturesCompromiseDetector‘a iletilen belgenin imzalarını gösterdiğinden emin olun |
CompromiseCheckResult.reasons, bir açıklama beklediğiniz halde boş | CompromiseCheckResult.has_compromised_signatures, bu belge için False | Nedenler yalnızca bir ihlal göstergesi gerçekten bulunduğunda doldurulur; temiz bir sonuçta boş bir liste beklenir |
| Meşru bir şekilde güncellenmiş PDF (ör. eklenmiş uzun vadeli doğrulama zaman damgası olan) tehlikeli olarak işaretlenir | Sonradan eklenen öğe, sonraki bir imza tarafından tam olarak kapsanmamış ya da yalnızca doğrulama malzemesi olarak tanınmamıştır | Güncellemenin uygun bir kapsayıcı imza veya zaman damgası ile yapıldığını doğruladıktan sonra kontrolü yeniden çalıştırın ve belirli tetikleyici için CompromiseCheckResult.reasons öğesini inceleyin |
FAQ
CompromiseCheckResult.compromised aslında neyi kontrol eder?
Bu, CompromiseCheckResult.has_compromised_signatures ile aynı değeri rapor eder: SignaturesCompromiseDetector.check() belgenin imzaları arasında herhangi bir müdahale göstergesi bulup bulmadığı.
0 durumunda bir signatures_coverage, belgenin güvenli olduğu anlamına mı gelir?
Hayır — bu, incelenecek imza bulunmadığı anlamına gelir. SignaturesCompromiseDetector, göremediği imzalar hakkında rapor veremez, bu nedenle 0 kapsamı bir “kontrol edilecek bir şey yok” sonucudur, bütünlüğün teyidi değildir.
SignaturesCompromiseDetector kriptografik bir imza oluşturabilir veya doğrulayabilir mi?
Hayır. Bu sınıf yalnızca bir belgenin mevcut revizyon geçmişini, içeriğin son imzadan sonra eklenip eklenmediğine dair göstergeler için inceler. İmzaların oluşturulması, uygulanması veya kriptografik olarak doğrulanması bu sınıfın kapsamı dışındadır.
İmzadan sonra geçerli bir zaman damgası eklemek her zaman bir güvenlik ihlali tespitine yol açar mı?
Gerekli değil. Algılayıcı, kendisi sonraki bir imza tarafından kapsanan daha sonraki bir eklemeye veya yalnızca yeni içerik yerine doğrulama materyali ekleyen bir eklemeye tolerans gösterecek şekilde tasarlanmıştır. Beklenmeyen bir tespit görürseniz CompromiseCheckResult.reasons kontrol edin.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
SignaturesCompromiseDetector | Son imzadan sonra bir imzalı belgeyi müdahale göstergeleri açısından inceler |
SignaturesCompromiseDetector.check() | Kontrolü çalıştırır ve bir CompromiseCheckResult döndürür |
CompromiseCheckResult | Bir ihlal kontrolünün sonucu |
CompromiseCheckResult.compromised | CompromiseCheckResult.has_compromised_signatures için salt okunur takma ad |
CompromiseCheckResult.has_compromised_signatures | Bir manipülasyon göstergesinin bulunup bulunmadığı |
CompromiseCheckResult.signatures_coverage | İncelenen imzaların sayısı |
CompromiseCheckResult.reasons | Herhangi bir bulguyu açıklayan kısa dizeler |