UDF dosyasını imzaladıktan sonra üzerinde hiçbir değişiklik yapmadığım halde UYAP'a yüklerken 'Dokümanın bütünlüğü bozulmuş (Hash mismatch)' hatası veriyor, anti-virüs programı dosyayı bozuyor olabilir mi?
2 Cevap
Evet, tespitiniz ve şüpheniz teknik açıdan son derece haklıdır. UYAP Doküman Editörü (UDF) formatında oluşturulan elektronik imzalar, XML-DSig tabanlı XAdES yapısını kullanır. İmzalama anında belgenin ikili (binary) içeriğinin SHA-256 kriptografik özeti (Hash) alınır ve sertifikanızın özel anahtarıyla mühürlenir. İmzalanan dosyanın tek bir baytında, metaverisinde veya dosya sonu belirtecinde (EOF) meydana gelebilecek en küçük bir harici müdahale özet değerini bozar ve UYAP doğrulama sunucusu 'Hash Mismatch (Doküman Bütünlüğü Bozulmuş)' hatası vererek evrakı reddeder.
Bu soruna yol açan en yaygın sebepler ve çözüm yolları şunlardır:
- Antivirüs ve EDR Dosya Taramaları: UDF dosyaları aslında ZIP benzeri sıkıştırılmış bir XML arşividir. Bazı agresif antivirüs yazılımları (Kaspersky, Trend Micro, Windows Defender gerçek zamanlı tarama motorları), imzalanan arşivi incelerken dosyanın içine geçici tarama belirteçleri (ADS - Alternate Data Streams) ekleyebilir veya dosya erişim özniteliklerini değiştirebilir. UDF belgelerinizi sakladığınız klasörü antivirüs programınızın Dışlama / İstisna (Exclusions) listesine ekleyin.
- Bulut Senkronizasyon Araçları (OneDrive, Google Drive, Dropbox): Dilekçeyi Masaüstü veya Belgelerim gibi OneDrive tarafından otomatik yedeklenen bir dizinde imzalıyorsanız, bulut istemcisi dosya kaydedildiği anda senkronizasyon meta verisi basabilir ya da dosya kilidini tutabilir. İmzalama işlemini bulut senkronizasyonu olmayan yerel bir dizinde (örneğin C:\DavaEvraklari gibi) gerçekleştirin.
- UDF Editörünün Açık Kalması: İmzalamayı tamamladıktan sonra UDF editörünü kapatmadan dosyayı tarayıcı üzerinden portala yüklemeye çalışıyorsanız, programın otomatik kurtarma (autosave) motoru arka planda dosyaya dokunmuş olabilir. İmzalamanın ardından editörü tamamen kapatın.
- Hash Değişiminin Tespiti: Dosyada bir bozulma olup olmadığını teyit etmek için imzalama biter bitmez PowerShell terminalinde
Get-FileHash dosya.udf -Algorithm SHA256komutunu çalıştırarak hash çıktısını not edin. Portala yükleme hatası aldığınızda komutu tekrar çalıştırın; iki değer farklı çıkıyorsa arka planda bir yazılımın dosyayı değiştirdiği kesinleşmiş olur.
Bu sorun genellikle OneDrive veya benzeri otomatik yedekleme programlarından kaynaklanıyor. Masaüstündeki dosyayı imzaladığınız anda OneDrive arka planda dosyayı eşitlemeye çalışırken dosyanın özelliklerini değiştiriyor ve UYAP sistemi bunu tahrifat algılayıp hash uyuşmazlığı hatası veriyor. Dosyayı masaüstü yerine doğrudan yerel C sürücüsünde yedeklenmeyen bir klasöre alıp imzalayın ve imzaladıktan hemen sonra UDF editörünü kapatıp yükleyin, sorun çözülecektir.