Zaman damgası (timestamping), imzalama anını güvenilir bir üçüncü tarafın (TSA) kanıtıyla belgeleyen mekanizmadır. Kod imzalama sertifikalarının ömrü sınırlıdır; zaman damgası yoksa sertifika süresi dolduğunda eski imzalar da geçersiz görünür. Damgalı imzada ise doğrulayıcı "imza, sertifika geçerliyken atıldı" sonucuna varır.
Nasıl çalışır?
- İmzalama aracı imzanın özetini TSA'ya gönderir.
- TSA özeti ve kendi saatini birleştirip kendi anahtarıyla imzalar.
- Bu zaman damgası belirteci imza içine gömülür.
- Doğrulama sırasında sertifikanın o andaki geçerliliği değerlendirilir.
Zaman damgası, dosya içeriğini değil yalnızca özeti TSA'ya iletir; kaynak kodunuz dışarı çıkmaz.
Ne zaman kullanılır?
- Her kod imzalama işleminde; ücretsiz ve pratik bir ek adımdır.
- Uzun ömürlü yazılımlarda, sürücülerde ve kurumsal dağıtımlarda özellikle önemlidir.
- Sertifika iptal edildiğinde bile iptalden önceki damgalı imzaların değerlendirilmesinde rol oynar; sonuç platforma ve iptal nedenine bağlı olabilir.
signtool ile örnek
signtool sign /fd SHA256 /tr http://time.certum.pl /td SHA256 /a uygulama.exe
/tr RFC 3161 TSA adresidir, /td damganın özet algoritmasıdır. Eski /t seçeneği yerine /tr kullanın.
Pratik ipuçları
- Bir TSA'ya ulaşamazsanız birden fazla sunucuyu sırayla deneyen bir betik yazın.
- Kurumsal proxy arkasında TSA adresine izin verin.
- Damganın varlığını
signtool verify /pa /v dosya.exeçıktısında kontrol edin.
Sık yapılan hatalar
En yaygın hata, hızlı bir test için zaman damgasını atlayıp aynı komutu üretim yayınında da kullanmaktır. Bir diğeri, TSA geçici olarak yanıt vermediğinde işlemin sessizce damgasız imzayla devam etmesidir. Yayın betiğinizin damga eklenemezse hata verip durmasını sağlayın.
Ayrıntılı protokol için bilgi bankasındaki RFC 3161 yazısına, sertifika seçenekleri için kod imzalama sayfasına bakabilirsiniz.
Özet: Zaman damgası maliyetsiz bir adımdır ve imzanın ömrünü sertifikanın ömründen bağımsız kılar. Her imzada /tr ve /td seçeneklerini kullanmak, bu nedenle tartışmasız bir en iyi uygulamadır.