Zaman damgaları ve güvenilir zaman
Spec: RFC 3161RFC 3161Spec: RFC 5816RFC 5816Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5
Bir bakışta
“Bir bakışta” başlıklı bölümBir zaman damgası, “bu ne zaman imzalandı” bilgisini kaydetmez. Daha dar kapsamlı ama daha güçlü bir şeyi kanıtlar: Belirli bir veri parçasının, imzalayan kişi dışındaki bir tarafın tasdikiyle, belirli bir andan önce var olduğunu kanıtlar. Güvenilir zamanın asıl değeri bu ayrımda yatar ve bu ayrım sıklıkla yanlış anlaşılır.
Bu neden önemli
“Bu neden önemli” başlıklı bölümBir imzanın içindeki imzalama zamanı, imzalayan kişinin bilgisayarının öne sürdüğü zamandır. Saat, kazara veya kasıtlı olarak yanlış ayarlanmış olabilir. Ne zaman bilgisinin tek kanıtı imzalayan kişinin kendi beyanıysa, imzalayan kişi bir belgeyi istediği gibi geçmiş veya ileri tarihliymiş gibi gösterebilir. Dün iptal edilmiş bir sertifikayla atılan imza, geçen yıl atılmış gibi gösterilebilir. “Ne zaman” bir ayrıntı değildir. Süresi artık dolmuş veya iptal edilmiş bir sertifikayla atılan imzanın hâlâ geçerli sayılıp sayılmayacağını belirler. Güvenilir zaman yanlışsa, üzerine inşa edilen her uzun vadeli geçerlilik iddiası çöker.
Kısa özet
“Kısa özet” başlıklı bölüm- İmzalayan kişinin kendi imzalama zamanı bir iddiadır, kanıt değildir. Kolayca sahte olarak üretilebilir.
- Bir RFC 3161 zaman damgası, bir Zaman Damgası Makamından (TSA) gelen ve verilerinizin bir karmasını TSA’nın zamanına bağlayan imzalı bir belirteçtir.
- Kanıtladığı şey kesindir: veriler, TSA’nın belirttiği zamandan önce vardı. Tam oluşturulma anını değil, bir üst sınırı kanıtlar.
- Belirteç, sizin nonce değerinizi ve mesaj izinizi geri yansıtır; bu sayede yeniden oynatma mümkün olmaz ve farklı verilere ait olamaz.
- Bir belge zaman damgası, aynı mekanizmayı PDF’nin tamamına uygular ve altında yer alan her şeyi — imzayı ve gömülü doğrulama kanıtını — güvenilir bir ana sabitler.
NextPDF buna nasıl yaklaşır
“NextPDF buna nasıl yaklaşır” başlıklı bölümNextPDF, bir zaman damgasını yalnızca alınacak değil, doğrulanacak bir şey olarak ele alır. Bir belirteç talep etmek, işin daha küçük kısmıdır. Motorun yaklaşımı, doğrulanmamış bir belirtecin kanıt sayılmayacağı yönündedir.
Motor bir imzaya zaman damgası eklerken, TSA’ya verilerin bir karmasını ve taze, rastgele bir nonce gönderir; verinin kendisini asla göndermez. Dönen belirteç daha sonra, onu anlamlı kılan tüm özellikler açısından denetlenir: makamın durumu “granted” olmalıdır, belirteçteki nonce gönderilenle eşleşmelidir, belirteçteki mesaj izi gönderilen karmayla eşleşmelidir, belirtecin kendi kriptografik imzası doğrulanmalıdır, belirtecin içerik türü zaman damgası türü olmalıdır ve belirtilen zaman kabul edilebilir bir tolerans içinde kalmalıdır. Her sapma, türü belirtilmiş bir nedenle kesin başarısızlık sayılır. “Yeterince yakın görünüyor” diye bir yol yoktur. Bir belge zaman damgası da aynı kuralı izler; yalnızca tek bir imzanın değerine değil, dosyanın tamamına uygulanır.
İki taraf, bilinçli olarak simetriktir. Motor bir imzaya zaman damgası eklediğinde, TSA’ya gönderdiği iz, imzalayan kişinin imza değerinin karmasıdır; daha sonra bu zaman damgasını doğruladığında ise aynı karmayı yeniden hesaplar ve belirtecin izinin bununla eşleşmesini şart koşar. NextPDF, doğrulama tarafını, imza değerini zorunlu bir girdi olarak alan özel bir verifySignatureTimestamp adımı olarak sunar — böylece bir imza zaman damgası, neyi kapsadığını gerçekten denetlemeden asla “doğrulanmış” olamaz. Bu adım; boş bir girdide, tanınmayan veya zayıf (SHA-1) bir iz algoritmasında, bozuk bir izde veya imza değerini bağlamayan bir karmada kapalı biçimde başarısız olur. Bu nedenle, farklı bir girdiyi karmalayan bir motor sürümünün ürettiği bir belirteç, tasarım gereği bağlamayı kanıtlayamaz.
- Hash the dataOnly a digest of the signature value (or the whole PDF, for a document timestamp) is computed — never the data itself.
- Send hash + nonceThe digest and a fresh random nonce go to the Time-Stamp Authority.
- TSA returns a tokenA signed token binds the digest to the TSA’s genTime and echoes the nonce.
- Verify the tokenStatus granted, nonce matches, message imprint matches, token signature verifies, time within tolerance.
- Conclude an upper boundThe data provably existed before the TSA’s stated time — attested by a party that is not the signer.
Uygulamalı örnek
“Uygulamalı örnek” başlıklı bölümBir zaman damgası belirtecini elle oluşturmazsınız. Önemli olan, güvenin eklendiği noktadır. Bir TSA, yapılandırdığınız ve koruduğunuz bir unsurdur; çünkü onun zamanı sizin kanıtınız olur.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// Asking for any level at or above B-T requires a TSA.$level = SignatureLevel::PAdES_B_T;$level->requiresTimestamp(); // true → a Time-Stamp Authority must be supplied
// The TSA endpoint, its transport security, and its trust anchor are// deployment-supplied. The engine sends a hash plus a fresh nonce — never the// document — and verifies the returned token before the signature is accepted.// A token that fails any check (status, nonce, imprint, signature, time)// is a hard error, not a warning.Önemli nokta, motorun belgeyi değil bir karma göndermesidir; bu sayede TSA içeriğinizi asla görmez. Yanıtı da doğrular. Kimliğini doğrulayamadığınız bir TSA, güvenilir zaman değildir. Yalnızca başka bir saattir.
Yaygın yanlış anlama
“Yaygın yanlış anlama” başlıklı bölümTuzak, bir zaman damgasını “bu, tam olarak bu tarihte saat 14:32’de imzalandı” şeklinde okumaktır. İmzalama olayının üzerinde çalışan bir kronometre değildir. Verilerin, üçüncü tarafça belirlenen bir üst sınır olan TSA’nın zamanından önce var olduğunu kanıtlar. Oluşturulma, o andan önce herhangi bir zamanda gerçekleşmiş olabilir. İkinci tuzak, herhangi bir zaman damgası sunucusunun size güvenilir zaman verdiğini varsaymaktır. İmzasını doğrulayamadığınız veya makamına güvenmediğiniz bir belirteç hiçbir şeyi kanıtlamaz. Güvenmek için hiçbir nedeninizin olmadığı bir saattir. Güvenilir zaman, bir sunucudan bir sayı istemekten değil, kimliğini doğrulayabildiğiniz bir TSA’dan ve doğruladığınız bir belirteçten gelir.
Sınırlar ve kapsam
“Sınırlar ve kapsam” başlıklı bölümNextPDF isteği oluşturur, yalnızca bir karma gönderir ve dönen belirteci doğrular. Arkasındaki makama kefil olmaz. TSA’nın doğruluğu ile kendi sertifikasının geçerliliği ve güvenilirliği, motorun değil, hizmetin ve dağıtım yapılandırmanızın özellikleridir. Bir zaman damgası bir karmayı bir zamana bağlar. Verilerin anlamı, imzalayan kişinin kimliği veya imzalayan kişinin sertifikasının geçerli olup olmadığı hakkında hiçbir şey söylemez. Bunlar, İmzayı doğru biçimde doğrulama bölümünde ele alınan ayrı denetimlerdir. Motor, güvenilmez bir TSA’yı güvenilir kılamaz. Bu sayfa ayrıca bir zaman damgası için belirli bir yasal ağırlık öne sürmez; bu, TSA’nın durumuna ve yargı bölgesine bağlıdır. Güvenilir zamanın, bir imzayı onlarca yıl boyunca doğrulanabilir tutmak için nasıl yeniden kullanıldığı, Uzun vadeli doğrulama bölümünde ele alınmaktadır.
Zaman damgalamanın katmana göre kullanılabilirliği:
| Edition | Availability |
|---|---|
| Core | Not in this edition |
| Pro | PAdES B-T — dağıtım tarafından sağlanan bir TSA ile, imza değeri üzerinde doğrulanmış bir RFC 3161 zaman damgası. |
| Enterprise | Gömülü doğrulama kanıtını sabitlemek ve arşivsel yenileme döngüsünü yürütmek için B-LT ve B-LTA tarafından kullanılan belge zaman damgasını ekler. |
İlgili belgeler
“İlgili belgeler” başlıklı bölüm- Uzun vadeli doğrulama — belge zaman damgasının gömülü kanıtı nasıl mühürlediği ve zaman içinde nasıl yenilendiği.
- PAdES temel profilleri — imza zaman damgasının (B-T) ve belge zaman damgasının (B-LTA) seviye ilerlemesinde nerede yer aldığı.
- Nitelikli imzalar, açıklandı — nitelikli bir zaman damgasının eIDAS güven tablosuna nasıl oturduğu.
Sözlük
“Sözlük” başlıklı bölüm- Zaman damgası (RFC 3161) — bir TSA’dan gelen ve bir verinin karmasını TSA’nın zamanına bağlayarak verinin o zamandan önce var olduğunu kanıtlayan imzalı bir belirteç.
- Zaman Damgası Makamı (TSA) — zaman damgası belirteçleri veren güvenilir bir hizmet.
TSTInfo— belirtecin içerik yapısı: mesaj izi, oluşturma zamanı, seri numarası ve isteğe bağlı nonce.- Mesaj izi — zaman damgası eklenen verinin, belirteçte geri yansıtılan karması.
- Nonce — istekle birlikte gönderilen ve belirteçte geri yansıtılan taze, rastgele bir değer; bu sayede yanıt yeniden oynatılamaz.
- Belge zaman damgası — PDF’nin tamamı üzerinde (RFC 5816 ile güncellendiği biçimde) bir RFC 3161 zaman damgası; imzayı ve kanıtını güvenilir bir ana sabitler.