Verify APIZaman Damgası Doğrulama

Zaman Damgası Doğrulama

RFC 3161 uyumlu zaman damgası token’larını doğrulama.

Endpoint

POST /api/v1/verify/timestamp

Request Parameters

ParametreTipZorunluVarsayılanAçıklama
timestampTokenMultipartFile-Zaman damgası token dosyası (.tst veya .ts)
originalDataMultipartFile-Orijinal veri (message imprint doğrulaması için, opsiyonel)
validateCertificateBooleantrueTSA sertifikası doğrulaması yapılsın mı

Response

{
  "valid": true,
  "status": "VALID",
  "timestampTime": "2024-11-08T10:30:00Z",
  "tsaName": "CN=KamuSM TSA",
  "digestAlgorithm": "SHA-256",
  "messageImprint": "a1b2c3d4...",
  "tsaCertificate": {
    "subjectDN": "CN=KamuSM TSA",
    "issuerDN": "CN=KamuSM Root CA",
    "serialNumber": "123456",
    "validFrom": "2024-01-01T00:00:00Z",
    "validTo": "2025-12-31T23:59:59Z"
  },
  "errors": [],
  "warnings": [],
  "verificationTime": "2024-11-09T12:00:00Z"
}

Örnek Kullanım

cURL

# Sadece token doğrulama (sertifika ve format kontrolü)
curl -X POST http://localhost:8086/api/v1/verify/timestamp \
  -F "timestampToken=@timestamp.tst"
 
# Orijinal veri ile message imprint doğrulaması
curl -X POST http://localhost:8086/api/v1/verify/timestamp \
  -F "timestampToken=@timestamp.tst" \
  -F "originalData=@document.pdf"
 
# Sertifika doğrulaması olmadan
curl -X POST http://localhost:8086/api/v1/verify/timestamp \
  -F "timestampToken=@timestamp.tst" \
  -F "originalData=@document.pdf" \
  -F "validateCertificate=false"

JavaScript (Fetch)

const formData = new FormData();
formData.append('timestampToken', timestampFile);
formData.append('originalData', originalDataFile); // Opsiyonel
formData.append('validateCertificate', 'true'); // Varsayılan: true
 
const response = await fetch('http://localhost:8086/api/v1/verify/timestamp', {
  method: 'POST',
  body: formData
});
 
const result = await response.json();
console.log(result);

Doğrulama Süreci

  1. Token Format Kontrolü: Zaman damgası token’ının geçerli bir RFC 3161 formatında olup olmadığı kontrol edilir
  2. İmza Doğrulama: Token’ın dijital imzası doğrulanır
  3. Sertifika Doğrulama (validateCertificate=true ise): TSA sertifikası güvenilir kök sertifikalara kadar doğrulanır
  4. Message Imprint Kontrolü (originalData sağlanmışsa): Token içindeki hash değeri ile verilen verinin hash’i karşılaştırılır
  5. Zaman Bilgisi: Token içindeki zaman damgası bilgisi çıkarılır

Doğrulama Seviyeleri

Minimal Doğrulama (Sadece token)

curl -X POST http://localhost:8086/api/v1/verify/timestamp \
  -F "timestampToken=@timestamp.tst"
  • Token format kontrolü
  • İmza doğrulaması
  • TSA sertifika doğrulaması
  • Kullanım senaryosu: Token’ın geçerli olup olmadığını kontrol etmek

Tam Doğrulama (Token + Orijinal Veri)

curl -X POST http://localhost:8086/api/v1/verify/timestamp \
  -F "timestampToken=@timestamp.tst" \
  -F "originalData=@document.pdf"
  • Minimal doğrulama
  • Message imprint doğrulaması
  • Kullanım senaryosu: Token’ın belirli bir veri için alındığını doğrulamak

TÜBİTAK KamuSM TSA

Türkiye’deki zaman damgası servisleri için KamuSM root sertifikaları kullanılır. Detaylar için TÜBİTAK Entegrasyonu sayfasına bakın.