İçeriğe geç

Zaman damgaları ve güvenilir zaman

Spec: RFC 3161 Spec: RFC 5816 Spec: ISO 32000-2, §12.8.5 Evidence: Standard-backed

Bir 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.

Bir 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.

  • İ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, 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.

  1. Hash the data Only a digest of the signature value (or the whole PDF, for a document timestamp) is computed — never the data itself.
  2. Send hash + nonce The digest and a fresh random nonce go to the Time-Stamp Authority.
  3. TSA returns a token A signed token binds the digest to the TSA’s genTime and echoes the nonce.
  4. Verify the token Status granted, nonce matches, message imprint matches, token signature verifies, time within tolerance.
  5. Conclude an upper bound The data provably existed before the TSA’s stated time — attested by a party that is not the signer.
Güvenilir bir zaman damgasının nasıl elde edildiği ve neyi kanıtladığı: TSA'ya bir karma ve bir nonce gönderilir, TSA o karmayı kendi zamanına bağlayan imzalı bir belirteç döndürür ve doğrulayıcı, bunu verinin o zamandan önce var olduğunun kanıtı olarak ele almadan önce bağlamayı doğrular.

Evidence: Standard-backed Tanım kesindir. Spec: ISO/IEC 18014-2, §3 bir zaman damgası hizmetini şu kanıtı sağlayan bir hizmet olarak tanımlar: bir veri öğesinin zaman içinde belirli bir noktadan önce var olduğuna dair kanıt — oluşturulma anı değil, bir üst sınır. Spec: ISO/IEC 18014-2, §7 belirtecin TSTInfo içeriğini tanımlar: bir mesaj izi (verilerinizin karması), bir oluşturma zamanı, bir seri numarası ve isteğe bağlı bir nonce. Spec: ISO/IEC 18014-2, §6 bir doğrulayıcının başarılı doğrulamada çıkarabileceği sonucu belirtir: veri öğesinin, belirteçteki zamandan önce var olduğu — ne fazlası ne eksiği.

PDF için, Spec: ISO 32000-2, §12.8.5 belge zaman damgasını belirtir: bayt aralığı, dosyanın tamamını kapsar; hariç tutulan tek öğe Contents değeridir. Bu karma, bir zaman damgası makamına gönderilir ve dönen RFC 3161 belirteci — Spec: RFC 5816 ile güncellendiği biçimde — Contents içine yerleştirilir. Bir imzayla aynı bayt aralığı disiplini, kimlik yerine zamana uygulanır. Spec: RFC 6960, §4.4.4 bunun uzun ömürlülük için neden önemli olduğunu da gösterir: güvenilir zaman, bir doğrulayıcının bir imzanın, sertifikanın süresi dolduktan sonra bile üretildiği gün güvenilir olduğunu kanıtlamasını sağlayan şeydir.

NextPDF’in motoru bir karma ve bir nonce gönderir, veriyi asla göndermez ve dönen belirteci kanıt olarak ele almadan önce durum, nonce, mesaj izi, belirteç imzası, içerik türü ve zaman toleransı açısından doğrular.

Bir 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.

Tuzak, 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.

NextPDF 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:

RFC 3161 timestamping (signature timestamp and document timestamp) — edition availability
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.

  • 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.
  • 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.