Zaman Damgası Doğrulama: .tsr Dosyası Adım Adım Kontrol
Zaman damgası doğrulama nasıl yapılır? .tsr dosyasını openssl ts ile belgeyle birlikte kontrol etme, çıktıyı okuma ve sık görülen hataların çözümü.
Zaman damgası doğrulama, bir belgenin belirli bir anda var olduğunu ve o andan beri değişmediğini, belgenin kendisi ile ayrı duran .tsr damga dosyasını birlikte kontrol ederek kanıtlama işlemidir. En güvenilir yol, openssl ts -verify komutunu belge, damga dosyası ve damga sağlayıcısının kök sertifikasıyla çalıştırmaktır; sonuç "Verification: OK" ise damga geçerlidir ve belgeye aittir.
Bu rehber, dijital onam kayıtlarını inceleyen kalite birimi çalışanları, hukuk ekipleri ve bilirkişilere yönelik uygulamalı bir anlatımdır. Komutlar Linux, macOS ve Windows'ta (openssl kuruluysa) aynı şekilde çalışır.
Önce kavram: damga neye vurulur?
RFC 3161 zaman damgasında sağlayıcıya belgenin kendisi gönderilmez. Belgenin SHA-256 özeti hesaplanır ve yalnızca bu özet gönderilir. Sağlayıcı, özeti o anki zamanla birleştirir, kendi sertifikasıyla imzalar ve bir yanıt döndürür. Bu yanıt .tsr uzantılı ayrı bir dosyadır.
Bunun iki pratik sonucu vardır:
- Damga belgenin içine gömülmez. PDF'i açtığınızda damgayı göremezsiniz; damga yanında duran ayrı dosyadadır. Belgeyi ve damgayı birlikte saklamanız gerekir.
- Sağlayıcı içeriği görmez. Hasta bilgisi içeren bir onam metni damga sağlayıcısına aktarılmaz; yalnızca geri döndürülemez bir özet gider. Bu, kişisel veri açısından da önemlidir.
Özete damga vurulmasının bir sonucu daha vardır: damga, belgenin her baytına bağlıdır. PDF'in görünüşte aynı kalması yeterli değildir; dosyanın meta verisi, yazı tipi gömme biçimi ya da sayfa sıkıştırması değişirse ekranda hiçbir fark görmeseniz bile özet değişir. Bu nedenle zaman damgası doğrulama işleminde "aynı görünen" değil, "bayt bayt aynı olan" dosya aranır. Dosyanın adını değiştirmek ise içeriğe dokunmadığı için özeti etkilemez; belge.pdf yerine başka bir ad kullanabilirsiniz.
eOnam'da her onam belgesine TÜRKTRUST nitelikli zaman damgası vurulur ve delil paketinde onam PDF'i, .tsr dosyası ve delil raporu birlikte yer alır. Bu yapının genel sistem içindeki yerini dijital onam sistemi rehberinde bulabilirsiniz.
Doğrulama için gerekenler
| Dosya | Örnek ad | Nereden gelir |
|---|---|---|
| Belge | belge.pdf | Onam sisteminden indirilen asıl PDF |
| Damga yanıtı | damga.tsr | Delil paketindeki zaman damgası dosyası |
| Kök sertifika | kok.pem | Zaman damgası hizmet sağlayıcısının yayımladığı kök (ve gerekiyorsa ara) sertifika |
| Araç | openssl | Linux ve macOS'ta genellikle hazır; Windows'ta Git for Windows ile birlikte gelir |
Kök sertifikayı her zaman sağlayıcının resmî kaynağından indirin. Doğrulamanın anlamı, damgayı bağımsız olarak güvendiğiniz bir köke bağlamaktır; sertifikayı damgayı sunan taraftan almak bu bağımsızlığı zayıflatır.
Adım adım zaman damgası doğrulama
Doğrulama üç adımdan oluşur: damgayı okumak, belgenin özetini bağımsız olarak hesaplamak ve ikisini sağlayıcının köküne bağlayan tam kontrolü çalıştırmak. İlk iki adım isteğe bağlı gibi görünse de, bir sorun çıktığında nedenini anlamanızı sağlar.
Adım 1: Damganın içeriğini okuyun
Doğrulamadan önce damganın ne söylediğine bakmak faydalıdır:
openssl ts -reply -in damga.tsr -text
Çıktıda dikkat edilmesi gereken alanlar şunlardır:
- Status: "Granted" olmalıdır; sağlayıcı talebi kabul etmiş demektir.
- Hash Algorithm: sha256 görmelisiniz.
- Message data: Damgalanan özetin onaltılık gösterimi. Bu değeri birazdan belgenin özetiyle karşılaştıracaksınız.
- Serial number: Damganın sağlayıcı tarafındaki benzersiz numarası.
- Time stamp: Damganın tarihi ve saati. Genellikle UTC olarak gösterilir; Türkiye saatine çevirirken bunu hesaba katın.
- TSA: Damgayı veren hizmet sağlayıcının kimliği.
Bu komut yalnızca damgayı okur, doğrulamaz. Birisi kendi ürettiği sahte bir dosyayı da bu komutla "okunur" hâle getirebilir. Asıl kontrol bir sonraki adımdadır.
Adım 2: Belgenin özetini hesaplayın
Belgenin SHA-256 özetini bağımsız olarak hesaplayın:
- Linux:
sha256sum belge.pdf - macOS:
shasum -a 256 belge.pdf - Windows:
certutil -hashfile belge.pdf SHA256 - Her platformda:
openssl dgst -sha256 belge.pdf
Çıkan 64 karakterlik değeri, birinci adımdaki "Message data" alanıyla karşılaştırın. Büyük/küçük harf ve boşluk farkları önemsizdir; karakter dizisi aynı olmalıdır. Eşleşme, belgenin damgalanan belgeyle bayt bayt aynı olduğunu gösterir.
Adım 3: Tam doğrulamayı çalıştırın
Asıl doğrulama komutu belge, damga ve kök sertifikayı birlikte kullanır:
openssl ts -verify -in damga.tsr -data belge.pdf -CAfile kok.pem
Bu komut üç şeyi aynı anda kontrol eder:
- Belgenin özetinin damgadaki özetle eşleşip eşleşmediğini,
- Damga üzerindeki imzanın bozulmamış olduğunu,
- Damgayı imzalayan sertifikanın verdiğiniz köke zincirlenip zincirlenmediğini.
Başarılı sonuçta çıktı Verification: OK olur. Sağlayıcının sertifika zincirinde ara sertifika varsa ve damga içinde yer almıyorsa, ara sertifikayı -untrusted ara.pem parametresiyle eklemeniz gerekebilir.
Hatırlatma: -data parametresine her zaman sistemden indirilen asıl dosyayı verin. E-postaya eklenip yeniden indirilmiş, bir görüntüleyicide "farklı kaydet" yapılmış ya da yazdırılıp taranmış bir kopya doğrulamayı geçemez; bu beklenen ve doğru davranıştır.
Birden çok belgeyi doğrulamak
Bir iç denetimde ya da bilirkişi incelemesinde onlarca belgeyi kontrol etmeniz gerekebilir. Bu durumda her belge ve damga çiftini aynı adla (ör. 12345.pdf ve 12345.tsr) bir klasöre koyup, doğrulama komutunu küçük bir kabuk betiğiyle döngü içinde çalıştırabilirsiniz. Betik her dosya için sonucu bir satır olarak yazdığında, "Verification: OK" dışındaki her sonuç ayrıca incelenecek belge listesini verir. Betiği ve çıktısını da inceleme kaydına eklemeyi unutmayın.
Sık görülen hatalar ve anlamları
| Mesaj (özetle) | Olası neden | Ne yapmalı |
|---|---|---|
| message imprint mismatch | Belge, damgalanan belge değil ya da değiştirilmiş | Asıl dosyayı yeniden indirin; farklı bir belgenin damgasını kullanıp kullanmadığınızı kontrol edin |
| unable to get local issuer certificate | Kök veya ara sertifika eksik ya da yanlış | Sağlayıcının güncel kök ve ara sertifikasını resmî kaynaktan indirin |
| certificate has expired | Kontrol, sertifikanın geçerlilik süresi dışında bir tarihe göre yapılıyor | Damga tarihinin sertifika süresi içinde olup olmadığını değerlendirin; uzun arşivler için yeniden damgalama politikası olup olmadığına bakın |
| Dosya okunamadı hataları | Dosya adı, yol veya biçim yanlış | .tsr dosyasının bozulmadan indirildiğinden ve doğru yolu verdiğinizden emin olun |
Komut satırı kullanmadan doğrulama
Her ilgili kişinin komut satırı kullanması beklenemez. Hasta, avukat ya da denetçi için daha kolay bir yol, belge numarası ya da belgenin özetiyle çalışan bir doğrulama sayfasıdır. eOnam'ın herkese açık belge doğrulama sayfası bu amaçla vardır: belge numarasını girerek ya da belgenin özetini yapıştırarak kaydın durumunu görebilirsiniz.
Bununla birlikte bir uyuşmazlıkta en güçlü kanıt, sistemin kendisine güvenmeyi gerektirmeyen bağımsız doğrulamadır. openssl ile yapılan kontrol, onam sistemi hiç var olmasa bile yalnızca belge, damga ve sağlayıcının kök sertifikasıyla tekrarlanabilir. Bu bağımsızlık mahkeme sürecinde neden önemlidir, elektronik delilin mahkemeye sunulması yazısında ayrıntılı ele aldık.
Uzun süreli saklamada damganın geçerliliği
Onam kayıtları uzun yıllar saklanır ve bir uyuşmazlık, damganın vurulmasından çok sonra ortaya çıkabilir. O zamana kadar damgayı imzalayan sertifikanın süresi dolmuş olabilir. Bu, damganın değersiz hâle geldiği anlamına gelmez: önemli olan, damganın imzalandığı anda sertifikanın geçerli olmasıdır. Ancak bazı doğrulama araçları varsayılan olarak bugünün tarihine göre kontrol yaptığı için "süresi dolmuş" uyarısı verebilir; bu uyarıyı damganın kendisinin bozuk olduğu şeklinde yorumlamayın.
Bu tür durumlar için üç alışkanlık faydalıdır:
- Damga sağlayıcısının kök ve ara sertifikalarını, damganın alındığı döneme ait olacak şekilde arşivinizde saklayın.
- Doğrulamayı düzenli aralıklarla yapıp sonuçlarını kayda alın; ileride "bu damga o tarihte de doğrulanıyordu" diyebilirsiniz.
- Çok uzun saklama gerektiren arşivlerde, kurumunuzun bilgi güvenliği politikasında yeniden damgalama gibi yöntemleri değerlendirin.
Yazılımınız üzerinden otomatik doğrulama
Kendi hasta yönetim yazılımınızda doğrulama yapmak isterseniz iki yol vardır. Birincisi, yukarıdaki openssl adımlarını yazılımınızın arka planında çalıştırmaktır. İkincisi, eOnam REST API'sindeki POST /v1/verify uç noktasına belge numarasını ({"id": ...}) ya da SHA-256 özetini ({"sha256": ...}) göndermektir. Ayrıntılar API belgelerinde yer alır; entegrasyonun genel mantığını onam API entegrasyonu yazısında anlattık.
Doğrulamayı kayda almak
Bir inceleme ya da denetim için doğrulama yaptıysanız, sonucu kayıt altına almak iyi bir uygulamadır:
- Kullandığınız komutları ve tam çıktılarını bir metin dosyasına kaydedin.
- Kök sertifikayı nereden ve ne zaman indirdiğinizi not edin.
- Belgenin hesapladığınız özetini ve damgadaki özeti yan yana yazın.
- Doğrulamayı kimin, hangi bilgisayarda ve hangi tarihte yaptığını belirtin.
Doğrulamayı bir bilirkişi ya da karşı tarafın teknik danışmanı da yapacaksa, kullandığınız openssl sürümünü not etmek de faydalıdır; farklı sürümler hata mesajlarını farklı ifade edebilir. Bu kayıt, başka bir kişinin aynı adımları tekrarlayıp aynı sonuca ulaşabilmesini sağlar. Tekrarlanabilirlik, teknik kanıtın ikna gücünün temelidir.
Özet kontrol listesi
- Asıl PDF'i ve
.tsrdosyasını sistemden indirin, üzerlerinde değişiklik yapmayın. - Sağlayıcının kök (ve gerekiyorsa ara) sertifikasını resmî kaynağından alın.
openssl ts -reply -in damga.tsr -textile damganın tarihini, özetini ve sağlayıcısını okuyun.- Belgenin SHA-256 özetini bağımsız bir araçla hesaplayıp damgadaki özetle karşılaştırın.
openssl ts -verify -in damga.tsr -data belge.pdf -CAfile kok.pemile tam doğrulamayı çalıştırın.- "Verification: OK" sonucunu ve kullandığınız adımları kayda alın.