Güvenlik
Bilgi güvenliği savunmamız çok katmanlıdır. Aşağıda uyguladığımız teknik ve operasyonel kontrollerin tam listesi yer almaktadır.
🔐 Şifreleme
Transit Şifreleme
TLS 1.2 / 1.3 — tüm trafik uçtan uca şifrelidir. Cloudflare Edge + Let's Encrypt sertifikaları, HSTS aktif, modern cipher suite'ler.
- • ECDHE-ECDSA-AES256-GCM-SHA384
- • ECDHE-RSA-AES256-GCM-SHA384
- • HSTS max-age 1 yıl
Off-site Backup Şifreleme
AES-256 client-side encryption (rclone crypt). Off-site yedek dosya adı + içeriği şifreli, Hetzner çalışanı dahi veriyi okuyamaz.
- • Filename + path encryption
- • AES-256 simetrik
- • Storage Box (Almanya, AB)
Dijital İmza
RSA-2048 imza algoritması, anahtar yönetim sistemi (KMS) içinde saklanır. Özel anahtar KMS dışına çıkmaz.
- • OpenBao Transit Engine
- • exportable=false
- • SHA-256 hash
Basit Elektronik İmza (SES) Altyapısı
İmza akışı varsayılan olarak eIDAS 910/2014 Art.25 / 5070 m.4 kapsamında Basit Elektronik İmza (SES) niteliğindedir. Kimlik doğrulama (telefon OTP + TC Kimlik/NVI) açıkken eIDAS Art.26 kapsamında Gelişmiş Elektronik İmza (AES) niteliği kazanır. Biyometrik veri toplanmaz.
- • Kullanıcı imza görseli (PNG bitmap)
- • Sistem ticari sertifika imzası (PAdES B-LTA)
- • TÜBİTAK KAMU SM RFC 3161 zaman damgası
🔑 Erişim Kontrolü
- ✓ JWT RS256 — kullanıcı kimlik doğrulama (Auth0'dan kendi imzaya geçildi).
- ✓ OAuth 2.0 — Google, Facebook, Twitter/X (Apple yakında).
- ✓ OTP doğrulama — e-posta + SMS, 6 haneli kod, 5 dakika geçerli, 5 deneme limiti.
- ✓ Iki faktörlü kimlik doğrulama (MFA) — tüm 14 yönetim panelinde zorunlu.
- ✓ Rol tabanlı erişim kontrolü (RBAC) — Kubernetes ve uygulama seviyesinde.
- ✓ Periyodik erişim incelemesi — 3 ayda bir review (ISO 27001 A.5.18).
- ✓ Yönetim paneli VPN-only — internal admin servisleri yalnızca OpenVPN üzerinden erişilebilir.
- ✓ Sealed Secrets — Kubernetes secret'ları git'te şifreli (bitnami-labs/sealed-secrets).
🌐 Ağ Güvenliği
WAF + DDoS Koruması
Cloudflare Web Application Firewall, 5 özel kural + standart OWASP. DDoS auto-mitigation. Bot management.
Network Segmentation
Kubernetes NetworkPolicy ile namespace izolasyonu. 9 yeni namespace'de default-deny-ingress + allowlist (lateral movement koruması).
VPN Erişim
OpenVPN ile yönetim panellerine VPN-only erişim. Sysadmin erişimi tüm sistem internetten izole.
Pod Security Standards
Kubernetes PSS restricted (yeni namespace'lerde). Kyverno policy enforcement (disallow latest tag, network policy zorunlu).
🛡️ Tehdit Tespiti ve Önleme
Antivirus
ClamAV cluster-internal — yüklenen tüm dosyalar upload anında taranır. EICAR test edilmiş, prod'da aktif.
Zafiyet Taraması
Trivy Operator v0.32.1 sürekli ConfigAuditReport + VulnerabilityReport. Trivy CI ile her image build'de zafiyet kontrolü.
Bağımlılık Güncellemeleri
Renovate (Mend GitHub App) — otomatik güvenlik güncellemeleri ve CVE patch.
Audit Log
Uygulama + KMS + Kubernetes API + template değişiklik audit. 5 yıl saklama (ISO 27001 A.8.15).
Penetration Testing
Yıllık 3rd party pentest (ISO 27001 ve SOC 2 sürecinin parçası). İlk pentest 2026 Q3'te planlanmıştır.
PII Log Maskeleme
Loki Alloy pipeline'ında otomatik PII redaction (e-posta, telefon, TCKN). IP adresleri son oktet maskelenir.
📊 7/24 İzleme ve Alerting
Prometheus + Grafana
Metrik toplama + 21 dashboard, 228 kart
Loki Log Aggregation
Tüm pod log'ları, PII otomatik maskelenir
GlitchTip Error Tracking
Real-time hata bildirimi (Sentry alternatifi)
AlertManager
42 aktif alert kuralı, on-call rotation
Backup Health Monitor
Saatlik kontrol + Mailgun alert
💾 4-Katmanlı Yedekleme
Felaket kurtarma stratejimiz 4 bağımsız katmandan oluşur. Her katmanın kendi rotasyon politikası vardır; biri arızalansa bile diğerleri devrede kalır.
Velero — Kubernetes Manifest + PVC
Daily 03:00 + Weekly Pazar 04:00 UTC, MinIO target, 7-30 gün retention
PostgreSQL pg_dump — 7 Database
6 saatte bir, MinIO pg-backup bucket, 7 gün retention
Proxmox vzdump — VM Snapshot
Daily 02:00 UTC, zstd compression, 2-daily + 1-weekly
Hetzner Storage Box — Off-site Encrypted Mirror
Daily 03:30 + 04:30 UTC, AES-256 client-side, AB lokasyon, 14 gün retention
4-8h
RTO (host kaybı)
6h
RPO (DB)
PASS
DR drill (Nisan 2026)
🔏 Yedek Bütünlüğü ve Zaman Damgalı Audit Trail
Yedeklerin sonradan değiştirilmediğini ve kayıtlı tarihte var olduğunu kanıtlamak için kriptografik bütünlük ve RFC 3161 trusted timestamp uygulanır. Her yedek dosyası için aşağıdaki kayıt tutulur (audit log forever retention):
SHA-256 Hash
Her PostgreSQL dump ve Proxmox VM yedek dosyası için bütünlük hash'i hesaplanır ve audit log'a kaydedilir. Sonradan değişiklik bit düzeyinde tespit edilir.
RFC 3161 TSA Zaman Damgası
Hash, TÜBİTAK KAMUnet TSA (Policy OID 2.16.792.1.2.1.1.5.7.3.1) tarafından imzalanır. Bağımsız 3rd party tarihi — yasal delil değerinde.
Off-site Mirror (Storage Box)
Audit log, Hetzner Storage Box'a (AB lokasyon, AES-256 client-side şifreli) günlük senkronlanır. Bağımsız konumda 3rd party "modtime" kaydı oluşur.
Doğrulama Komutu (örnek)
sha256sum yedek.dump
openssl ts -reply -in tsr.bin -text 9 Mayıs 2026'da prod'a alındı — pg_dump (her 6 saatte bir, 7 veritabanı) ve Proxmox vzdump (günlük, 412 mevcut yedek dahil retroactive). Velero, MinIO ve OpenBao için yayma çalışmaları planlanmaktadır. Mimari özet: KVKK m.12/16 (veri güvenliği + kayıt tutma), eIDAS Art.41 (trusted timestamp), ISO 27001 A.12.3.1 (yedek koruması), ISO 27701 6.5.3.4 maddelerine uygun süreçler.
🪪 Nitelikli E-İmza (QES) için Native Donanım Köprüsü
imzala-qes-helper — Native masaüstü köprüsü
USB token tabanlı nitelikli elektronik imza için kullanıcı cihazında lokal çalışan native bir köprü. Java JRE veya .NET gerekmez, ~15 MB boyutunda. Tarayıcı yalnızca cihaz içi yerel TLS bağlantısı üzerinden konuşur. macOS, Windows ve Linux için aşamalı dağıtım planlanmıştır.
🧱 Process Isolation
Kritik PKCS#11 işlemleri (sertifika ile imzalama, PIN doğrulama) ayrı bir code-signed işlem içinde çalışır; macOS'ta smartcard entitlement'lı olarak işletim sistemi yetkilendirme katmanından geçer.
- • Yalnızca izole bileşen token ile konuşur
- • Parent uygulama PIN'i görmez
- • İşletim sistemi yetkilendirmesi zorunlu
🧵 Race-Free PKCS#11 Çağrıları
Tüm PKCS#11 çağrıları helper içinde serialize edilir; çoklu iş parçacığı race koşulu önlenir. PKCS#11 spesifikasyonunun gerektirdiği tek thread garantisi sağlanır.
- • PKCS#11 reentrant değil
- • Serialize → race-free
- • Belirsiz davranış engellenir
🔐 PIN — Sıfır Bellek Tutma
Kullanıcı PIN'i browser'a, ağa veya log dosyalarına ASLA dokunmaz. Yalnızca işletim sistemi PIN diyaloğunda kullanıcının yerel cihazında kalır. İmza sonrası bellek sayfaları proaktif olarak temizlenir.
- • PIN dialog OS yetkilendirmesinde
- • imzala.org sunucuları PIN'i görmez
- • Özel anahtar token donanımından çıkmaz
🍎 macOS Smartcard Kısıtlaması
Apple'ın smart card altyapısında yıllardır bilinen, üreticisi tarafından bir türlü kapatılmayan kritik bir sorun (Apple bug #19374107) imza akışını mac'lerde zorlaştırıyordu. Bunu katmanlı bir mimari yaklaşımla aştık. macOS Apple Silicon dahil tüm modern Mac'lerde sorunsuz akış sağlanır.
- • Apple Silicon native arm64 hedef
- • Code-signed binary
- • PIN diyaloğu OS düzeyinde
📝 Audit Log
Helper lokal audit log'unda imza zamanı, sertifika SHA-256 thumbprint, sonuç durumu, kullanılan ESHS vendor bilgisi ve helper sürümü tutulur. Backend tarafında imza akışının her aşaması (talep → imza → zaman damgası → uzun-vade upgrade) zaman damgalı olarak kaydedilir. PIN içeriği veya özel anahtar değeri kayıt edilmez.
Helper Lokal
- • İmza zamanı + cert thumbprint
- • Vendor + sonuç durumu
- • Log rotation
Backend
- • İmza akışının her aşaması
- • 5 yıl saklama (ISO 27001 A.8.15)
- • PII scrubber pipeline
⚠️ Helper Yeni Bir Subprocessor Değildir
imzala-qes-helper kullanıcının kendi cihazında lokal çalışır. USB token PIN'i ve özel anahtar hiçbir sunucumuza, hiçbir alt-işleyenimize iletilmez — token'dan çıkmaz. Helper yalnızca imzayı oluşturduktan sonra sonucu (imza değeri + sertifika public bilgisi) browser üzerinden bizim backend'imize gönderir. Detaylı: Alt İşleyenler sayfası.
Tam teknik beyanname: QES / NES Native Helper Uyum Beyanı →
👥 Operasyonel Güvenlik
- ✓Tüm personel için NDA ve gizlilik sözleşmesi imzalı
- ✓Yıllık güvenlik farkındalık eğitimi (ISO 27001 A.6.3)
- ✓Incident response runbook — 5 fazlı yanıt + VERBİS bildirim şablonu (72 saat içinde)
- ✓Change management — GitOps + ArgoCD ile deklaratif deploy
- ✓Migration drift kontrolü — Prisma schema değişiklikleri deploy öncesi doğrulanır
- ✓Dual deploy gate — test ortamı 24h soak sonra prod'a alınır (asla doğrudan main'e push)
- ✓Tedarikçi güvenlik değerlendirmesi — Hetzner ISO 27001, Cloudflare SOC 2, Mailgun GDPR DPA
- ✓K8s API audit log — kim/ne/ne zaman, /var/log/kubernetes/audit.log
Güvenlik Açığı Buldunuz mu?
Sorumlu bir şekilde bildirin. 24 saat içinde dönüş yaparız. Geçerli açık bildirimleri için ödüllendirme programımız hazırlanmaktadır.
Lütfen detayı PGP/şifreli iletişim ile gönderin. Public disclosure öncesi 90 gün düzeltme süresi rica ederiz.
Son güncelleme: 21 Mayıs 2026 — Versiyon: 1.2 (biyometrik veri beyanı düzeltildi — toplanmamaktadır)