DamgaOndiso

Güvenlik modeli

Damga'nın tasarımındaki ilke: imza kullanıcının e-imza USB'sinde atılır ve PIN kullanıcının bilgisayarından başka hiçbir yerde açık halde bulunmaz. Sunucu belgeyi, şifreli zarfları ve sonucu taşır.

Kim neyi görür?

Veri Platform Damga sunucusu İmza sayfası (tarayıcı) Damga uygulaması
Belge (PDF / XML) ✓ ✓ (30 gün) ✓ ✓ (bellekte)
TSA kimlik bilgileri — ✓ (config.php) — —
PIN — — (yalnız şifreli zarf) ✓ (yazılırken) ✓ (bir giriş süresince)
e-İmza USB'sindeki özel anahtar — — — — (USB'nin çipinden çıkmaz)
Tam T.C. kimlik no ✓ (imzadan sonra) ✓ maskeli ✓
İmza ✓ ✓ — ✓

PIN'in yolu

  1. Uygulama her bağlantıda yeni bir ECDH P-256 anahtar çifti üretir; özel anahtar yalnız uygulamanın belleğindedir, genel anahtar sunucu üzerinden sayfaya gider.
  2. Sayfa, WebCrypto ile kendi geçici anahtarını üretir; ortak sırdan HKDF-SHA256 ile bir AES-256-GCM anahtarı türetir ve PIN'i şifreler.
  3. Ek doğrulanmış veri olarak istek, sertifika ve komut kimliği bağlanır: zarf başka bir sertifika ya da başka bir komut için yeniden kullanılamaz.
  4. Sunucu zarfı araca bir kez teslim eder ve siler.
  5. Uygulama zarfı açar, e-imza USB'sine giriş yapar, imzalar, çıkış yapar ve PIN dizisini sıfırlar.

Sayfanın kendisi Damga sunucusundan gelir; bu yüzden kullanıcı PIN'i yalnız Damga'nın adresindeki sayfaya yazmalıdır. Sayfa başka sitelerin içine gömülemez (frame-ancestors 'none'), satır içi betik çalıştırmaz (sıkı CSP).

Bağlantılar ve anahtarlar

Anahtar Uzunluk Saklama Geçerlilik
API anahtarı 200 bit SHA-256 özeti Yenilenene dek
İmza sayfası anahtarı (sign_url'nin # sonrası) 192 bit SHA-256 özeti İstek süresince; yeni bağlantıyla geçersiz
Uygulama bağlantı anahtarı 256 bit SHA-256 özeti "Damga'yı başlat"a her basışta yenilenir

Sayfa anahtarı adresin # kısmındadır: tarayıcı onu sunucuya adres olarak göndermez, sunucu kayıtlarına ve Referer başlıklarına düşmez; sayfa açıldıktan sonra adres çubuğundan da silinir.

e-İmza USB'sini korumak

  • Kilitli e-imza USB'sine PIN gönderilmez.
  • e-İmza USB'si "son hak" dediğinde ya da o sertifikada 2 hatalı deneme varsa, sayfa ayrı bir onay ister; sunucu bu onay olmadan komutu kabul etmez.
  • Bir istekte en fazla 8 imza denemesi yapılabilir.

Uygulamanın güvenliği

  • Uygulama hiçbir kapıyı dinlemez; yalnız Damga sunucusuna HTTPS istekleri yapar ve yönlendirmeleri izlemez.
  • damga:// bağlantısı sıkı ayrıştırılır: yalnız https sunucular (geliştirmede localhost), kullanıcı adı / sorgu içeren adresler reddedilir.
  • Tanımadığı bir Damga sunucusuna bağlanmadan önce kullanıcıya sorar.
  • İndirilen belgenin SHA-256'sı sunucunun bildirdiğiyle karşılaştırılır; uygulama ve sayfa aynı parmak izini gösterir.
  • e-İmza USB'sinden ve siteden gelen metinler HTML olarak yorumlanmaz.

Zaman damgası ve iptal bilgisi

  • Zaman damgası sunucusunun (TSA) adresi ve kimlik bilgileri yalnız Damga sunucusunun config.php dosyasındadır. Damga uygulaması damgayı sunucudan ister (POST /agent/v1/{istek}/timestamp): yalnız o oturumun süren imza komutu için, komut başına sınırlı sayıda ve hız sınırıyla; gönderilen tek şey 32 baytlık bir SHA-256 özetidir.
  • Sunucu TSA yanıtını doğrular: durum, damgalanan özet, nonce, TSA imzası ve "Time Stamping" kullanımlı sertifika; tsa.ca_bundle tanımlıysa TSA zinciri. Verdiği damgaların özetini istekte saklar ve imzalı çıktıdaki damgaların bunlar olduğunu denetler: uygulama başka (ör. sahte ya da geriye tarihli) bir damga ekleyemez.
  • OCSP ve CRL bilgisini sunucu getirir ve imzalarını yayıncı CA'nın anahtarıyla doğrular; iptal edilmiş sertifikayla PAdES-B-LT imzası tamamlanmaz.
  • PAdES'te imzadan sonra eklenen artımlı güncellemeler dar bir beyaz listeden geçer: yalnız DSS (sertifika / OCSP / CRL akışları, VRI), belge zaman damgası, görünmez imza alanı, kataloğun /DSS ve /AcroForm'u, sayfanın /Annots'u değişebilir. Sayfa içeriği, yazı tipi, açıklama, eylem ya da nesne akışı ekleyen her güncelleme imzayı geçersiz kılar.

XML belgeler (XAdES)

  • XML'ler DOCTYPE / ENTITY tanımı içeremez (XXE ve "billion laughs" saldırılarına karşı); libxml ağa çıkmaz ve varlıkları yerine koymaz. Damga uygulaması da aynı belgeleri reddeder.
  • İmza doğrulamada XML'de tek bir ds:Signature olmalı, başvurulan Id'ler belgede tek olmalı ve imza belgenin tamamını kapsamalı (imza sarma / XSW saldırılarına karşı). Yalnız C14N / exclusive C14N ve enveloped dönüşümü kabul edilir; XPath / XSLT dönüşümleri ve dış başvurular reddedilir.

Sunucu

  • Sorgular parametre bağlamalıdır; tüm giriş alanları uzunluk ve biçim denetiminden geçer.
  • Araçtan gelen cihaz listesi güvenilmez veri sayılır ve süzülür.
  • Bildirimler HMAC-SHA256 ile imzalanır.
  • Yönetim paneli tek parola, CSRF koruması, SameSite=Strict oturum çerezi ve giriş denemesi sınırıyla korunur.
  • Belgeler web kökünün dışında, storage/ altında tutulur ve sonuçlanmadan 30 gün sonra silinir.

Hukuki not

Damga imzayı kullanıcının nitelikli elektronik sertifikası ve güvenli imza oluşturma aracı (USB e-imza aracı (token) ya da kart okuyucudaki akıllı kart) ile atar; Damga bir elektronik sertifika hizmet sağlayıcısı değildir. İmzanın 5070 sayılı Kanun kapsamında güvenli elektronik imza sayılması sertifikanın nitelikli olmasına bağlıdır. Sayfadaki "Nitelikli sertifika" etiketi sertifikanın keyUsage alanında nonRepudiation bulunduğunu gösterir.