· kaynak Hacker News – Front Page (native)
MuPDF ve Foxit, AES-256 PDF anahtarlarını dokuz bit entropiden üretiyor
Yapılan bir güvenlik analizi, MuPDF'in AES-256 PDF şifrelemesinin en fazla dokuz bit rastgeleliğe dayandığını, Foxit'in ise anahtarları zaman damgalarından türettiğini ortaya koydu; bu da korumalı dosyaların parola bilinmeden çözülebilmesi anlamına geliyor.

Hacker News'in ana sayfasında öne çıkan, v12.sh güvenlik blogunda yayımlanan bir inceleme, bazı PDF uygulamalarının AES-256 dosya şifreleme anahtarlarını, tek tek denemek yeterli olacak kadar küçük bir rastgele durumdan türettiğini ortaya koydu. MuPDF'de etkili entropi dokuz bite kadar düşüyor; Foxit'in PDF okuyucusunda ise anahtar büyük ölçüde saatın bir fonksiyonu. Her iki durumda da AES-256 ile şifrelenmiş belgeler, iki paroladan hiçbirini bilmeyen biri tarafından çözülebiliyor.
PDF şifrelemesi nasıl çalışmalı
Revizyon 6 olarak bilinen modern PDF şifrelemesi, içeriği doğrudan parola ile şifrelemez. Analize göre uygulama, belgeyi şifreleyen rastgele bir 32 baytlık dosya anahtarı üretiyor; parola ve bir salt hash'lenerek dosya anahtarını saran ikinci bir anahtar türetiliyor. Kullanıcı parolası belgeyi açar, sahip parolası ise izinleri yönetir; ancak her ikisi de aynı dosya anahtarının kilidini açar ve izin kısıtlamaları yalnızca okuyucu tarafından uygulanır. Dolayısıyla bütün şeminin güvenliği, dosya anahtarının tahmin edilemez olmasına dayanır; bu uygulamaların tam olarak sunamadığı şey de bu özelliktir.
MuPDF: dokuz bit gerçek rastgelelik
1.28.5 öncesi MuPDF sürümleri, drand48 tipi bir lineer kongrüans üretecinin tohumunu, saniye cinsinden geçerli Unix zamanıyla bir kez belirliyordu. Kitaplık bir anahtar için rastgele baytlara ihtiyaç duyduğunda, bunları üretecin durumunun 17. ile 24. bitleri arasından alıyordu. LCG aritmetiği bitleri yukarıya taşıyıp aşağıya hiç taşımadığı için, durumun 24. bitinden yukarısı yok sayılabilir ve alttaki 16 bit sabit bir sabitle başlatılıyor. Geriye zaman damgasından dokuz bit kalıyor: 512 saniye arayla alınan zaman damgaları aynı bayt dizilerini üretiyor.
Yazarlar, 512 aday anahtarın tamamının eniyilenmemiş bir Python betiğinde bile yaklaşık 11 milisaniyede denenebildiğini gösterdi; kurtarılan anahtar, test belgesini iki paroladan hiçbiri olmadan çözdü. MuPDF ayrıca belge kimliğini de aynı üreteçten türetip trailer'da düz metin olarak saklıyor; bu da saldırgana doğru diziyi doğrulamak için pratik bir yol sunuyor.
Foxit: anahtar olarak saat
Foxit PDF Reader 2026.1.3.36551, dosya anahtarını; küçük endian 32 bitlik bir zaman damgası, pratikte sıfır çıkan 32 bayt başlatılmamış veri ve "there" sabit dizgesini SHA-256 ile hash'leyerek oluşturuyor. Belgedeki izinler bloğu bilinen düz metin içerdiği için, bir tahmini denemek tek bir hash ve tek bir AES blok şifre çözümü tutuyor; parola hash'leme ya da belge çözümü gerekmiyor.
Yazarların yazdığı çok iş parçacıklı Rust uygulaması, bir Ryzen 9 7950X üzerinde saniyede 370 ile 376 milyon arası deneme sürdü. Unix epoch'tan beri tüm zaman damgalarını taramak 4,85 saniye sürdü; yakın zamanda oluşturulmuş bir belge için kurtarma işlemi ise milisaniyeler mertebesinde tamamlanıyor.
Ortak atalı bir hata
Aynı zaman damgası tabanlı türetme, PDFium'un Mayıs 2014'teki ilk herkese açık commit'inde de görülüyor ve dosya başlığındaki bilgiye göre özgün kod Foxit'e ait. Araştırmacılar, bu örüntünün Foxit'te doğduğunu ve PDFium üzerinden başka PDF düzenleyicilerine yayılmış olabileceği sonucuna varıyor; bu da örüntünün birden çok yazılım paketinde ortaya çıkmasını açıklıyor.
OpenPDF ve iText de aynı örüntüyü gösteriyor
OpenPDF 3.0.5 ve iText 9.7.1, kriptografik rastgeleliklerini; milisaniye cinsinden bir zaman damgası ile JVM'in boş belleğini birleştiren bir dizgeyle ARC4 akışı tohumlayan bir IVGenerator sınıfı üzerinden geçiriyor. Aynı akım hem dosya anahtarını hem de düz metin olarak saklanan salt'ları üretiyor; bu da saldırgana tahminlerini sınayabileceği materyal veriyor. Durum uzayı burada MuPDF veya Foxit'e göre önemli ölçüde daha büyük, ancak analizde belirtildiği gibi, vaat edilen 256 bitlik güvenlik yine de kriptografik olmayan rastgelelik tarafından zayıflatılıyor.
Neden önemli
Anahtar, saldırganın tek tek deneyebileceği bir kaynaktan geliyorsa AES-256 hiçbir koruma sağlamaz. PDF şifreleme standardının 5. ve 6. revizyonları, doğrudan kullanıcı parolalarından türetilen eski anahtarlardan daha iyi olmak için tasarlanmıştı; ancak zayıf rastgele sayı üretimi bu yükseltmeyi sessizce etkisiz kıldı: altta yatan dosya anahtarı tahmin edilebildiğinde, belgeyi oluşturan kişinin parolasının güçlü olması anlamını yitiriyor. Bu durum, parola korumasına güvenilen gizli hukuki, tıbbi ve finansal belgeler için en fazla önem taşıyor; çünkü şifreli bir dosyayı sonradan ele geçiren herkes onu açabiliyor. Yazarlar, sorunların etkilenen üreticilere bildirildiğini belirtiyor, MuPDF'teki açığı 1.28.5 öncesi sürümlerle sınırlıyor ve etkilenen kullanıcıları yükseltmeye yönlendiriyor.
- #security
- #encryption
- #cryptography
- #mupdf
İlgili yazılar
- Claude Code denetiminde gizli bir cache'te 145.000 silinmiş iPhone fotoğrafı bulunduğu iddia edildi
- LiteLLM MCP kimlik doğrulama atlama CISA'nın istismar listesine girdi; düzeltme için 1.84.0 gerekiyor, 1.83.9 yetmiyor
- Hackerlar 41 bin DHS çalışanının kaydını yayınladı: Gizli ajanlar ve gözetim programları ortaya çıktı