Güvenlik ve uyum
Mevzuat: kontrol değil, sınır
Yasakları çalışma zamanında engellemiyoruz — arayüzde hiç var etmiyoruz. Mevzuata aykırı işlem, reddedilen bir istek değil, sistemde bulunmayan bir işlemdir.
Sınırlar
Var olmayan işlem, ihlal edilemez
- 01Tasarruf döneminde teminat alanı ekranda yoktur — servis katmanı da reddeder.
- 02Çekiliş sonucunu düzenleme işlemi hiçbir rolde tanımlı değildir.
- 03Cayma işleminde kesinti alanı düzenlenemez.
- 04Havuzdan yalnızca üç çıkış tipi tanımlıdır; dördüncüsü yoktur.
- 05Kotayı aşan çekiliş başlatılamaz.
36 doğrulama kuralının tamamı bir mevzuat maddesine bağlıdır.
Çekiliş
Denetlenebilir çekiliş: hazır kanıt seti
Her çekiliş, kriptografik bütünlüğe sahip ve zaman damgalı beş parçalık kanıt setiyle kapanır.
- 01Değiştirilemez kayıt bandıÇekilişin tüm adımları değiştirilemez, zaman damgalı kayıt bandında tutulur.
- 02Dondurulmuş rapor kopyasıÇekiliş anındaki rapor dondurulur; sonradan üretilen hiçbir görünüm onun yerine geçemez.
- 03Görevler ayrılığı matrisiÇekilişi kimin hazırladığı, kimin onayladığı ve kimin ilan ettiği matriste kayıtlıdır.
- 04Tohum ve listeyle yeniden üretimSonuç, tohum değeri ve kilitli katılımcı listesiyle bağımsız olarak yeniden üretilebilir.
- 05Salt okunur denetçi profiliDenetçi, hiçbir kaydı değiştiremeyen salt okunur profille tüm kanıt setine erişir.
Kontroller
Uyum, konfigürasyon değil tasarımdır
- BDDK BS Tebliği yönelimiPlatform, BDDK’nın bilgi sistemleri tebliği beklentileri gözetilerek tasarlandı: iz kayıtları, erişim yönetimi, görevler ayrılığı, yedeklilik ve denetlenebilirlik gereksinimleri mimariye baştan işlendi. Denetim hazırlığı bir proje değil, günlük çalışma biçimidir.
- Yalnızca ekleme yapılan denetim iziFinansal olaylar ve idari eylemler değiştirilemez kayıtlar olarak tutulur; güncelleme veya silme yoktur. Çalışma zamanı veritabanı rolüne olay ve denetim tablolarında UPDATE/DELETE yetkisi verilmez. Kim, neyi, ne zaman, hangi yetkiyle yaptı — tamamı traceId ile uçtan uca izlenebilir.
- Dört göz ilkesiKritik işlemler — sözleşme onayı, kura sonucu ilanı, resmi rapor gönderimi, tarife değişikliği — hazırlayan ve onaylayan ayrımıyla çalışır. Hazırlayan kendi işlemini onaylayamaz (MSG-S-21); onay zinciri denetim izinde saklanır.
- KVKK / GDPR uyumuKişisel veriler amaç bazlı sınıflandırılır; erişim rol ve gerekçe ile sınırlanır. Aydınlatma, açık rıza ve veri sahibi hakları hem KVKK hem GDPR terminolojisiyle süreç olarak modellenir. Silme talepleri, finansal saklama yükümlülükleriyle çelişmeyecek şekilde anonimleştirme ile karşılanır.
- Kurum başına veri yerleşimiHer kurumun verisinin hangi ülkede/bölgede duracağı sözleşmede tanımlanır ve altyapı bu tercihe göre kurulur. Türkiye’de veri yerleşimi gerektiren kurumlar için yurt içi barındırma desteklenir.
- Kimlik ve erişimÜretimde OIDC tabanlı kimlik doğrulama (Authorization Code + PKCE), realm rolleri olarak izin kodları ve oturum politikaları. Geliştirici başlıkları dağıtılmış ortamlarda reddedilir.
Kontrol defteri
On dört kontrol, her biri bir mekanizmaya bağlı
Uyum bir madde listesi değil, çalışan bir mekanizmadır. Her satır bir kontrolü, onu uygulayan mekanizmayı, denetimde gösterilecek kanıtı ve dayanağını söyler.
| No | Kontrol | Mekanizma | Kanıt / kod | Dayanak |
|---|---|---|---|---|
| CTL-01 | Yalnızca ekleme yapılan defter | Çalışma zamanı veritabanı rolüne es.events ve audit.audit_log üzerinde UPDATE/DELETE yetkisi verilmez; düzeltme ters kayıtla. | (stream_type, stream_id, seq) · recorded_at | BDDK BS Tebliği · iz kayıtları |
| CTL-02 | Dört göz ilkesi | Hazırlayan ile onaylayan ayrımı; contract:approve izni kendi kurduğunuz sözleşmeyi onaylatmaz. Rapor hazırlama ve gönderme de ayrı kişiler. | MSG-S-21 | Görevler ayrılığı |
| CTL-03 | Kimlik doğrulama | OIDC Authorization Code + PKCE (S256), jeton ömrü 900 sn; geliştirici başlıkları dağıtılmış ortamda reddedilir. | MSG-G-12 | Keycloak 26 · realm tfs |
| CTL-04 | Rota → izin tablosu | Her yazma rotası bir izin koduna bağlıdır (party:create, contract:approve, lottery:run, delivery:manage…); eşleşmeyen istek reddedilir. | MSG-G-12 · realm rolleri | En az yetki |
| CTL-05 | Kurum izolasyonu | x-tenant başlığı ^[a-z0-9][a-z0-9-]{0,31}$ ile doğrulanır; kiracı başına ayrı Durable Object ve SQLite defteri, şirket içinde kurum başına izole yığın. | MSG-G-02 | Veri yerleşimi · izolasyon |
| CTL-06 | Mali durum kapısı | Onaylı özkaynak / toplam aktif kaydı yoksa ya da standart oran %3’ün altındaysa yeni sözleşme yazılmaz; giren ve onaylayan farklı roller. | MSG-S-56 · prudential:approve | MADDE 20 |
| CTL-07 | Ön bilgilendirme süresi | Ön bilgilendirme formu bir günden yeniyse sözleşme kurulamaz; kural motoru reddeder. | MSG-S-05 | MADDE 16/5 |
| CTL-08 | Mensup ve risk grubu sınırı | Mensuplarla sözleşme yasağı ve bir kişi ya da risk grubuyla yapılan sözleşmelerin özkaynağa oranla sınırlanması, kuruluşta denetlenir. | MSG-S-57 | MADDE 22/A |
| CTL-09 | Tahsis eşiği | Birikimin %40’ı ve vadenin %40’ı dolmadan sözleşme döneme giremez; gecikmiş taksiti olan dönem dışında kalır. | AllocationEvaluated | MADDE 21/2 |
| CTL-10 | İhtiyat fonu ve kapasite | Havuz bakiyesinin %5’i ayrılır; kapasite = bakiye × karşılama oranı, hazineden türetilir, elle girilmez. | deliveryCapacity | MADDE 30/1 |
| CTL-11 | Çekiliş bütünlüğü | Kilitli listenin SHA-256 özeti, kayıtlı tohum ve algoritma sürümü; dönem çekilişi tek kullanımlık; verifyLottery yeniden üretip karşılaştırır. | LotteryDrawn · expectedSeq 0 | Beş parçalık kanıt seti |
| CTL-12 | Satıcı ödeme süresi | Tahsisattan itibaren 10 iş günü; teslimat dosyasında izlenir, ödeme beş kaydı tek iş biriminde atar. | DeliveryDisbursed | MADDE 17/9 |
| CTL-13 | Kural seti yayımı | Yayım dosyalanmış doküman sürümüne referans ister ve her değer dokümandaki yetkili değerle birebir eşleşmek zorundadır. | MSG-S-92 | MADDE 15 |
| CTL-14 | Dokümantasyon kapısı | Gated sayfalar anahtar doğrulanmadan sunulmaz (private, no-store, noindex); anahtarların yalnızca SHA-256 özeti saklanır, kiracı askıya alınınca kapanır. | 401 · tfs_docs_key | Kontrol düzlemi |
Kodlar platformun üç dilli mesaj kataloğundan, maddeler Tasarruf Finansman Şirketlerinin Kuruluş ve Faaliyet Esasları Hakkında Yönetmelik’tendir; ifadeler tasarım hedeflerini tanımlar, sertifikasyon iddiası değildir.
Güvence katmanları
Uyumun taşıyıcısı mimarinin kendisidir
Süreç dokümanları değil, üç mimari karar uyumu taşır.
- Denetim izi işletme verisidirOlay defteri yalnızca ekleme yapılabilen tek doğruluk kaynağıdır: bakiyeler, raporlar ve ekranlar bu defterden türetilir. Silinemez, değiştirilemez, geçmişe dönük yeniden oynatılabilir.
- Zamansal kural sabitlemeHer sözleşme, kurulduğu andaki kural seti sürümüne sabitlenir. “Bu taksit hangi kurala göre hesaplandı?” sorusunun cevabı her zaman kesindir.
- Kurum izolasyon modeliYönetilen profilde her kurumun ayrı Durable Object’i ve ayrı SQLite defteri vardır; şirket içi profilde kurum başına izole yığın. Barındırma katmanı sağlayıcıdan bağımsız kurgulanır.
Sürüm
Sürekli güncel, asla habersiz
Platform sürekli güncellenir; N sürümünden geriye N-5’e kadar destek verilir. Kendi sürümünüzde yıllarca kalıp “sürüm borcu” biriktirmezsiniz. Her sürüm geçişi standart bir hattan geçer.
- 01Etki analizi
- 02Test
- 03Kabul
- 04Üretim
- 05Geri dönüş planı
- Takvim dışlama
- Sürüm geçişleri şu dönemlerde planlanmaz: Çekiliş günleri · Yüksek işlem dönemleri · Dönem sonu kapanışları
Kurulum
Kurulum profilleri
Nerede çalışacağına kurum karar verir; üç profilde de merkezî izleme ve standart geliştirme / test-UAT / üretim ortam hattı geçerlidir.
- Kurumun veri merkeziPlatform tamamen kurumun veri merkezinde, kurumun altyapısında çalışır (Docker Compose ya da Helm). Veri yerleşimi ve fiziksel kontrol tümüyle kurumdadır.
- Yurt içi özel bulutTürkiye’de barındırılan, kuruma özel izole özel bulut ortamı. Veri yurt içinde kalır; işletim yükü paylaşılır.
- Yönetilen barındırmaKurulum, izleme ve sürüm operasyonu Karya Bilişim tarafından yönetilir. Lisanslı kurumlar için MADDE 32 dış hizmet alımı sorusu hukuk görüşü gerektirir.
Güvenlik dokümantasyonu ve denetim desteği
Denetim öncesi teknik dokümantasyon, mimari şemalar ve kontrol matrisi için ekibimizle iletişime geçin.