📰 Hikayesi ve Doğuşu
Modern web mimarisinde kullanıcılar sisteme bir kez giriş yapar ve kendilerine uzun ömürlü bir oturum belirteci (token) teslim edilir. Ancak ilk giriş ile son istek arasında geçen sürede, N numaralı oturum isteğinin gerçekten ilk kullanıcıdan gelip gelmediğini doğrulayan kriptografik bir kanıt mekanizması bulunmaz. Çalınan çerezler, replay saldırıları ve oturum çatallanmaları (fork attacks) gibi güvenlik zafiyetleri tam olarak bu boşluktan beslenir. Bağımsız güvenlik geliştiricisi devsec_moh, JWT veya PASETO gibi popüler araçların yalnızca yetkilendirmeyi (authorization) doğruladığını, oturumun devamlılığını (continuity) garanti etmediğini fark ederek Session-continuity motorunu açık kaynak olarak geliştirdi.
⚡ Nasıl Çalışıyor & Mimari Detaylar
Session-continuity, bağımsız bir OIDC/JWT doğrulamasının ardından devreye girerek her geçiş için imzalı ve yalnızca ekleme yapılabilen (append-only) bir kanıt paketi üretir. Sistem, durağan anahtarlar yerine geçici (ephemeral) zorluklar ve sahiplik kanıtı (proof-of-possession) mekanizması çalıştırır. Her oturum halkası, bir önceki halkaya Merkle ağacı mantığıyla bağlanarak değiştirilemez bir kanıt makbuzu (receipt) haline getirilir. En dikkat çekici mimari avantaj ise harici güven otoritesi (Trust Authority) tasarımıdır; üçüncü taraflar ana merkeze bağımlı kalmadan oluşturulan oturum makbuzlarını çevrimdışı (offline) olarak doğrulayabilir. İsteğe bağlı sunulan 'Fork Protection' özelliği ise aynı oturum kökünden birden fazla zincir türetilmesini anında engeller.
💡 Neden Radarımıza Girdi?
Geleneksel web oturumu güvenliğinde çerezlerin çalınması senaryosu genelde felaketle sonuçlanır; zira sunucu token geçerli olduğu sürece isteği meşru sayar. Session-continuity, token çalınsa dahi zincirdeki ardışık kriptografik kanıt eşleşmediği anda saldırıyı etkisiz kılarak paradigmayı temelden değiştiriyor. Karmaşık altyapı bağımlılıkları gerektirmeyen hafif Node.js çekirdeği ve sıfır güven (Zero Trust) mimarisine getirdiği zarif matematiksel çözüm, projeyi radara almamız için fazlasıyla yeterli oldu.
🚀 Nasıl Denenir & Kaynaklar
Apache 2.0 lisansıyla sunulan v0.2.0 sürümünü yerel ortamınızda test etmek oldukça pratiktir. Node.js yüklü sisteminizde depoyu klonlayıp npm install yaptıktan sonra node bin/session-continuity.mjs authority-init --output ./authority komutuyla güven otoritesini başlatabilir ve node bin/demo.mjs ile oluşturulan kriptografik sertifikaları ./receipt/ dizini altında inceleyebilirsiniz. Kaynak kodlara ve mimari detaylara GitHub reposu üzerinden erişebilirsiniz.