Nasıl çalışır
Damga'da üç parça vardır ve hiçbiri kullanıcının bilgisayarında dinleyen bir kapı açmaz:
| Parça | Nerede çalışır | Görevi |
|---|---|---|
| Damga sunucusu | https://damga.ondiso.net | Platformların API'si, imza sayfası, imza doğrulama, bildirimler |
| İmza sayfası | Kullanıcının tarayıcısı | Belgeyi, takılı e-imza USB'lerini ve sertifikaları gösterir; PIN'i alır ve şifreler |
| Damga uygulaması | Kullanıcının bilgisayarı (Windows, macOS, Linux) | e-İmza USB'sini tanır, PIN'i çözer, USB ile imzalar |
Bir imzanın yolculuğu
Platformunuz Damga sunucusu Tarayıcı (imza sayfası) Damga uygulaması
│ POST /sign-requests ─▶│ │ │
│◀── id, sign_url ──────│ │ │
│── kullanıcıyı sign_url'ye gönderir ───────────────────▶ │ │
│ │◀── "Damga'yı başlat" (launch) ──│ │
│ │ │── damga://baglan?… ──────────▶ │
│ │◀──────── hello + geçici genel anahtar, belge indirme ────────────│
│ │◀──────── e-imza USB'leri, sertifikalar ──────────────────────────│
│ │── cihaz listesi ──────────────▶ │ │
│ │◀── sertifika + şifreli PIN ─────│ │
│ │──────── imza komutu (şifreli PIN) ──────────────────────────────▶│
│ │◀──────── CAdES-BES imza ─────────────────────────────────────────│
│ │ imzayı belgeyle doğrular │ │
│◀── bildirim ──────────│── "Belge imzalandı" ──────────▶ │ │
│◀── kullanıcı return_url'ye döner ───────────────────────│ │
- Platform isteği açar. PDF, başlık, (isteğe bağlı) beklenen imzacının T.C. kimlik numarası ve dönüş adresi gönderilir. Damga belgeyi saklar, SHA-256 özetini alır ve tek kullanımlık bir sayfa bağlantısı üretir.
- Kullanıcı imza sayfasını açar. Sayfa belgeyi, isteyen platformu ve belgenin parmak izini (SHA-256'nın ilk 16 hanesi) gösterir.
- Damga uygulaması başlar. "Damga'yı başlat" düğmesi
damga://bağlantısını açar; işletim sistemi uygulamayı çalıştırır. Uygulama bu bağlantıya özel bir anahtarla Damga sunucusuna bağlanır, belgeyi indirir, özetini denetler ve takılı e-imza USB'lerini bildirir. Uygulamanın küçük penceresi de aynı parmak izini gösterir. - Kullanıcı sertifikasını seçer ve PIN'ini sayfaya yazar. Sayfa e-imza USB'sinin adını ve modelini, sertifikanın sahibini (ad soyad, maskeli T.C.), veren kurumu, bitiş tarihini ve PIN durumunu gösterir. Belgeyi başka birinin imzalaması gerekiyorsa o sertifika seçilemez.
- PIN şifrelenir. Sayfa PIN'i uygulamanın o bağlantı için ürettiği geçici anahtarla şifreler (ECDH P-256 + AES-256-GCM). Damga sunucusu yalnız şifreli zarfı taşır; PIN'i göremez.
- Uygulama e-imza USB'siyle imzalar. Zarfı açar, e-imza USB'sine PIN ile giriş yapar, belgeyi CAdES-BES (ayrık, SHA-256) olarak imzalar, USB'den çıkış yapar, PIN'i bellekten siler.
- Damga doğrular ve bildirir. İmza belgeyle birlikte OpenSSL ile doğrulanır; sertifikanın geçerliliği ve T.C. kimlik numarası denetlenir. Geçerliyse istek
completedolur, platforma bildirim gider, kullanıcı dönüş adresine yönlenir.
Hatalı PIN ve kilitlenme
e-İmza USB'lerinin çoğu üst üste 3 hatalı PIN'de kilitlenir. Damga bunu üç yerden izler:
- e-İmza USB'sinin kendisi: PKCS#11 token'ları "az hak kaldı" ve "son hak" bayraklarını bildirir; sayfada görünür.
- Uygulama: her sertifika için hatalı denemeleri bilgisayarda sayar (uygulama her imzada yeniden başladığı için); başarılı imzada sıfırlanır.
- Sunucu: o istekteki hatalı denemeleri sayar.
Üçünden biri bir sonraki denemenin tehlikeli olduğunu söylerse — yani 3. denemeden önce ya da e-imza USB'si "son hak" dediğinde — sayfa ayrı bir uyarı penceresi açar ve kullanıcıdan açıkça onay ister. Sunucu da bu onay olmadan imza komutunu kabul etmez. Kilitli e-imza USB'sine PIN hiç gönderilmez.
İsteğin durumları
| Durum | Anlamı | Son mu? |
|---|---|---|
pending |
İmza bekleniyor. Hatalı PIN, reddedilen imza gibi olaylar isteği bitirmez. | Hayır |
completed |
İmza atıldı ve doğrulandı. | Evet |
cancelled |
Kullanıcı vazgeçti ya da platform iptal etti. | Evet |
expired |
Süre doldu (varsayılan 15 dakika, en çok 60). | Evet |
Neyi nerede saklamalısınız?
Damga imzayı ve imzalayan bilgisini saklar, belgeyi ise sonuçlandıktan 30 gün sonra siler. Kalıcı arşiv sizin sisteminizdedir: PDF'i ve .imz dosyasını birlikte saklayın; ikisi birlikte her zaman openssl cms -verify ile ya da Damga'nın doğrulama API'siyle doğrulanabilir.