← Back to list

JWT ve PASETO’yu Unutun: Node.js’te Güvenliği “Aegiss-Token” ile Yeniden Tanımlayın

Node.js uygulamalarınızda token çalınmalarına son veren, kendi kendini savunan (self-defending) ve sıfır bağımlılıklı yeni nesil token…

Salih Gültekin · 2026-02-25 00:41 · 50 claps · 2.8 min read
#security-token #token #aegis #aegiss-token #jwt
Open on Medium ↗
Wiki topics: 🌐 · Web Development

JWT ve PASETO’yu Unutun: Node.js’te Güvenliği “Aegiss-Token” ile Yeniden Tanımlayın

Node.js uygulamalarınızda token çalınmalarına son veren, kendi kendini savunan (self-defending) ve sıfır bağımlılıklı yeni nesil token kütüphanesi ile tanışın: Aegiss

Web güvenliği dünyasında yıllardır standart haline gelen bir alışkanlığımız var: Kimlik doğrulama için JWT (JSON Web Token) kullanmak. Ancak JWT’nin esnekliği, aynı zamanda onun en büyük zayıflığı. Algoritma karmaşaları, çalınan token’ların başka cihazlarda kolayca kullanılabilmesi ve güvenlik açıklarına davetiye çıkaran yapısı, geliştiricileri yeni arayışlara itti. PASETO bu sorunların bir kısmını çözse de, hala eksik bir parça vardı: Aktif Savunma ve Bağlam Zorunluluğu (Context Binding).

İşte tam bu noktada, Node.js ekosistemi için tamamen güvenlik odaklı, sıfır bağımlılığa sahip (zero-dependency) ve kendi kendini savunan bir kütüphane geliştirdim: **aegiss-token**.

Peki ama neden Aegiss? JWT veya PASETO kullanmak yerine neden Aegiss-Token’a geçmelisiniz? Gelin teknik detaylara ve sunduğu devrim niteliğindeki çözümlere yakından bakalım.

Neden JWT veya PASETO Değil? (Kıyaslama)

Klasik token yapılarının neden artık yetersiz kaldığını anlamak, Aegiss’in çözdüğü problemleri görmek açısından kritik.

1. JWT’nin “Çok Fazla” Esnek Olması

JWT, geliştiriciye hangi algoritmayı kullanacağını seçme özgürlüğü verir. Ancak bu özgürlük, geçmişte alg: none zafiyeti veya asimetrik (RSA) anahtarların simetrik (HMAC) olarak doğrulanması gibi felaketlere yol açtı.

  • Aegiss-Token’ın Çözümü: Algoritma seçimi yoktur. İmzalama için modern ve ultra güvenli Ed25519, şifreleme yardımcıları için ise ChaCha20-Poly1305 sabit (hardcoded) olarak gelir. Yanlış konfigürasyon yapma ihtimaliniz sıfırdır.

2. Token Çalınması (Pass-the-Hash / Replay Attacks)

Bir saldırgan kullanıcının JWT’sini veya PASETO’sunu (örneğin XSS ile) çalarsa, dünyanın öbür ucundaki farklı bir cihazdan sisteme giriş yapabilir. Standart token’lar “bu token kime ait?” diye sorar ama “bu token nereden kullanılıyor?” diye sormaz.

  • Aegiss-Token’ın Çözümü (Context Binding): Aegiss, oluşturulan her token’ı istemcinin IP adresi ve User-Agent bilgisine kriptografik olarak bağlar. Eğer token çalınır ve başka bir IP’den veya tarayıcıdan istek yapılırsa, doğrulama anında (constant-time check ile) reddedilir.

3. Aktif Savunma Eksikliği

JWT sadece bir formattır. Kötü niyetli biri saniyede binlerce sahte token deneyerek brute-force saldırısı yapabilir. JWT kütüphaneleri bu durumu umursamaz.

  • Aegiss-Token’ın Çözümü (Self-Defending): Aegiss, yerleşik bir Express middleware ile gelir. Aynı IP adresinden art arda 10 kez (varsayılan) geçersiz token denenirse, kütüphane o IP adresini 15 dakikalığına otomatik olarak engeller (HTTP 429 döndürür).

4. JSON Şişkinliği vs CBOR

JWT ve PASETO, payload’u JSON olarak tutar. Bu durum gereksiz bir veri büyüklüğü yaratır.

  • Aegiss-Token’ın Çözümü: Payload, binary ve son derece kompakt bir format olan CBOR ile kodlanır. Daha az bant genişliği, daha hızlı işlem.

Kurulum ve Hızlı Başlangıç

Aegiss, Node.js >= 18 sürümlerini destekler ve dışarıdan hiçbir bağımlılık (NPM paketi) içermez.

npm install aegiss-token

1. Anahtar Çifti Oluşturma

Sistemi kullanmaya başlamak için bir kereye mahsus güvenli anahtarlarımızı üretiyoruz:

const { generateKeys } = require('aegiss-token');
// Bu anahtarları güvenli bir ortam değişkenine (.env) kaydedin
const { publicKey, privateKey } = generateKeys();

2. Token İmzalama (Login Senaryosu)

Kullanıcı giriş yaptığında, anlık IP ve User-Agent bilgisini alarak token’ı mühürlüyoruz.

const { sign, getClientInfo } = require('aegiss-token');
app.post('/login', (req, res) => {
  // İstemci bağlamını al (IP + User-Agent)
  const clientInfo = getClientInfo(req);  

  const token = sign(
    { userId: 'user_123', role: 'admin' }, // Kendi datanız
    privateKey,
    { clientInfo, expiresInSeconds: 3600 } // 1 saat geçerli
  );

  res.json({ token });
});

3. Middleware ile Rotaları Koruma

Aegiss’in yerleşik middleware’i, hem doğrulamayı yapar hem de brute-force saldırılarına karşı IP’yi bloke eder. Başarısız durumlarda saldırgana ASLA detaylı hata vermez (sadece “Invalid token”), böylece bilgi sızıntısını önler.

const { createVerifyMiddleware } = require('aegiss-token');
// Sadece geçerli, süresi dolmamış ve AYNI IP/User-Agent'tan gelenler geçebilir!
app.get('/api/protected', createVerifyMiddleware(publicKey), (req, res) => {
  res.json({ 
    message: 'Gizli veriye ulaşıldı', 
    user: req.aegiss.userId 
  });
});

İsteğe Bağlı: Token İptali (Revocation) ve Logout

Kullanıcı çıkış yaptığında token’ı anında geçersiz kılmak Aegiss ile çok kolaydır. Sadece bir Set veya veritabanı kontrolü sağlamanız yeterli:

const revokedJtis = new Set();

app.post('/logout', createVerifyMiddleware(publicKey, { revokedJtis }), (req, res) => {
  // Token'ın benzersiz ID'sini (jti) iptal listesine ekle
  revokedJtis.add(req.aegiss.jti);
  res.json({ ok: true, message: "Çıkış başarılı, token iptal edildi." });
});

Sonuç

Web uygulamalarınızda “giriş yapıldı” demek artık yeterli değil; “doğru kişi, doğru cihazdan işlem yapıyor” diyebilmelisiniz. aegiss-token, algoritmik kafa karışıklıklarını ortadan kaldıran, token çalınmalarını IP+User-Agent bağlamı ile işlevsiz hale getiren ve sunucunuzu otomatik olarak savunan modern bir yaklaşımdır.

Eğer Node.js ile (özellikle Express, Next.js API rotaları vb.) uygulama geliştiriyorsanız, projelerinize yeni bir güvenlik katmanı eklemek için Aegiss’i hemen deneyebilirsiniz.

💻 Projeyi GitHub’da inceleyin ve Yıldız verin: [https://github.com/slhgltkn/aegiss#readme]

📦 NPM üzerinden indirin: [https://npmjs.com/aegiss-token]

Projeyi denedikten sonra düşüncelerinizi ve PR’larınızı bekliyorum! Güvenli kodlamalar! 🚀

Salih Gültekin **salihgultek.in**


메타데이터
post_id
4e91a41a07aa
slug
jwt-ve-pasetoyu-unutun-node-js-te-güvenliği-aegiss-token-ile-yeniden-tanımlayın-4e91a41a07aa
url
https://medium.com/@salihgultekin/jwt-ve-pasetoyu-unutun-node-js-te-g%C3%BCvenli%C4%9Fi-aegiss-token-ile-yeniden-tan%C4%B1mlay%C4%B1n-4e91a41a07aa
canonical_url
https://medium.com/@salihgultekin/jwt-ve-pasetoyu-unutun-node-js-te-g%C3%BCvenli%C4%9Fi-aegiss-token-ile-yeniden-tan%C4%B1mlay%C4%B1n-4e91a41a07aa
author_url
https://medium.com/@salihgultekin
status
ok
fetched_at
2026-06-27 18:20:27