Bilgi bankasına dön

Tempy.email'i Gizlilik Öncelikli Tasarımla Nasıl Geliştirdik

Çoğu e-posta hizmeti mesajlarınızı veritabanlarında saklar, arama için indeksler, yedekler tutar ve süresiz olarak muhafaza eder.

Biz tam tersini yapıyoruz: Her şey bellekte yaşar. Zamanlayıcınız sona erdiğinde veriler kaybolur.

Geleneksel E-postanın Gizlilik Sorunu

Gmail, Outlook veya herhangi bir geleneksel e-posta hizmeti kullandığınızda:

  1. E-postalar diske kaydedilir → Mahkeme celbi, ihlal veya satış riski
  2. Arama için indekslenir → İletişimleriniz hakkında meta veri oluşturur
  3. Yedeklenir → Birden fazla kopya mevcut, maruz kalma artar
  4. Süresiz muhafaza edilir → 10 yıl önceki e-postalarınız hâlâ var
  5. Reklamlar için taranır → Hedefli reklam için içerik analiz edilir
  6. Loglar tutulur → IP adresleri, zaman damgaları, erişim kalıpları izlenir

Gerçekte hiçbir şeyi asla silmezsiniz.

"Sil"e bassanız bile veriler şuralarda olabilir:

  • Yedek kasetleri
  • Arama indeksleri
  • Sunucu logları
  • Uyumluluk arşivleri
  • Yasal saklama sistemleri

Yaklaşımımız: Yalnızca Bellek Mimarisi

tempy.email tek bir ilke üzerine inşa edilmiştir: RAM'de değilse, mevcut değildir.

Geleneksel E-posta:
Kullanıcı → Web Sunucusu → Veritabanı → Disk → Yedekler → Arşivler
(Veriler sonsuza dek yaşar)

tempy.email:
Kullanıcı → Web Sunucusu → Redis (yalnızca RAM) → Süresi dolar → Kaybolur
(Veriler 10 dakika yaşar)

Kalıcı Depolama Yok

Sahip OLMADIĞIMIZ şeyler:

  • ❌ PostgreSQL, MySQL veya disk tabanlı veritabanı yok
  • ❌ Dosya depolama yok (S3, disk, NAS)
  • ❌ Yedek yok
  • ❌ Arşiv yok
  • ❌ E-posta içerik logları yok
  • ❌ "Yumuşak silme" yok (silinmiş olarak işaretleyip veriyi tutma)

Sahip OLDUĞUMUZ şeyler:

  • ✅ Redis (bellek içi anahtar-değer deposu)
  • ✅ Her anahtarda TTL (Yaşam Süresi)
  • ✅ Otomatik süre dolumu

E-posta Depolama Nasıl Çalışır

Bir e-posta geldiğinde:

// TTL ile Redis'te e-posta saklama
await redis.set(
  `mailbox:${address}:emails`,
  JSON.stringify(email),
  'EX', 600  // 600 saniyede (10 dk) sona erer
);

10 dakika sonra:

  • Redis otomatik olarak anahtarı siler
  • Bellek serbest bırakılır
  • Veri tamamen kaybolur (silinmiş olarak işaretlenmez, gerçekten kaybolur)

Kurtarılacak bir şey olmadığı için "kurtarma" süreci yoktur.

Sunucu Logları Ne Olacak?

Loglama işlemini minimize ediyoruz:

Geleneksel sunucu logları:

2026-02-12 10:15:23 User [email protected] logged in from 203.0.113.5
2026-02-12 10:15:45 [email protected] opened email "Password Reset"
2026-02-12 10:16:12 [email protected] deleted 3 emails

tempy.email logları:

2026-02-12 10:15:23 Mailbox created (no email address logged)
2026-02-12 10:15:45 Email received (no content logged)
2026-02-12 10:25:23 Mailbox expired

Olayları kaydediyoruz, tanımlanabilir verileri değil.

Gizlilik Özellikleri

1. Kullanıcı Hesabı Yok

İsteseniz bile hesap oluşturamazsınız:

  • Kayıt formu yok
  • Şifre yok
  • "Hesabım" sayfası yok
  • Kullanıcı veritabanı yok

Neden: Hesaplar kimlik oluşturur. Kim olduğunuzu bilmek istemiyoruz.

2. İzleme veya Analitik Yok

Birçok "gizlilik öncelikli" hizmet hâlâ şunları kullanır:

  • Google Analytics
  • Facebook Pixel
  • Mixpanel
  • Hotjar

Biz kullanıyoruz: Yukarıdakilerin hiçbirini.

İzlediğimiz:

  • Toplam oluşturulan posta kutusu sayısı (sayaç)
  • Toplam işlenen e-posta sayısı (sayaç)

İzlemediğimiz:

  • Kim oluşturdu
  • Ne zaman oluşturuldu
  • Hangi IP'den geldi
  • Hangi tarayıcı kullanıldı

3. E-posta İçerik Taraması Yok

E-posta içeriğini şunlar için asla analiz etmiyoruz:

  • Reklamcılık
  • Makine öğrenimi eğitimi
  • Kalıp tespiti
  • İçerik sınıflandırması

E-postalar sistemimizden insanlar veya algoritmalar tarafından okunmadan geçer.

4. IP Loglama Yok

Kaydetmediğimiz:

  • IP adresiniz
  • Coğrafi konumunuz
  • ISP'niz
  • Cihaz parmak iziniz

Neden: "Anonimleştirilmiş" IP logları bile korelasyon saldırılarıyla çoğu zaman de-anonimleştirilebilir.

5. Üçüncü Taraf Hizmet Yok

Kullanmadığımız:

  • İzleme yapan CDN'ler (yalnızca gizlilik modunda Cloudflare)
  • Analitik platformları
  • Reklam ağları
  • Sosyal medya widget'ları
  • Üçüncü taraf yazı tipleri (Google Fonts yerel olarak sunulur)

Neden: Her üçüncü taraf hizmet potansiyel bir veri sızıntısıdır.

Teknik Uygulama

Redis Yapılandırması

// Tüm anahtarlar varsayılan olarak TTL'ye sahip
const DEFAULT_TTL = 600; // 10 dakika

// Posta kutusu anahtarı
await redis.setex(
  `mailbox:${address}`,
  DEFAULT_TTL,
  JSON.stringify({ created: Date.now() })
);

// E-posta anahtarı
await redis.rpush(`mailbox:${address}:emails`, emailJson);
await redis.expire(`mailbox:${address}:emails`, DEFAULT_TTL);

Otomatik Temizlik

Redis süre dolumunu otomatik olarak yönetir:

T+0: E-posta gelir → Redis'te saklanır
T+600s: TTL sona erer → Redis anahtarı siler → Bellek serbest kalır

Cron görevi yok. Manuel temizlik yok. "Yumuşak silme" yok.

E-posta Temizleme

E-postaları saklamadan önce HTML'yi şunları önlemek için temizliyoruz:

  • XSS saldırıları
  • İzleme pikselleri
  • Kötü amaçlı betikler
  • Gizlilik sızıntıları
var sanitizer = new HtmlSanitizer();
sanitizer.AllowedTags = ["p", "a", "b", "i", "ul", "ol", "li"];
// <img> yok, <script> yok, izleme yok
var cleanHtml = sanitizer.Sanitize(rawHtml);

Erişemeyeceğimiz Şeyler

İstersek bile (istemiyoruz), fiziksel olarak yapamayacağımız:

  1. Silinen e-postaları kurtarma → Yedek mevcut değil
  2. Geçmiş verileri görme → TTL her şeyi siler
  3. Kullanıcı davranışını izleme → Analiz edecek log yok
  4. Kullanıcıları tanımlama → Hesap yok, kaydedilen IP yok
  5. Veri taleplerine uyma → Teslim edecek veri yok

Bu bir politika kararı değil. Mimarisel bir durumdur.

Kabul Ettiğimiz Ödünler

Gizlilik öncelikli tasarım, sınırlamaları kabul etmek demektir:

Sunamayacağımız:

  • ❌ E-posta arama (indeksleme yok)
  • ❌ Uzun vadeli depolama (varsayılan 10 dk)
  • ❌ E-posta kurtarma (süresi dolunca gitti)
  • ❌ Kullanıcı hesapları (posta kutularını "kaydedemezsiniz")
  • ❌ Gerçek gelen kutunuza e-posta yönlendirme

Sunabileceklerimiz:

  • ✅ Tam gizlilik
  • ✅ Sıfır izleme
  • ✅ Anında silme
  • ✅ Veri ihlali riski yok (ihlal edilecek veri yok)
  • ✅ Gönül rahatlığı

"Gizlilik Odaklı" E-posta ile Karşılaştırma

Özellik ProtonMail Tutanota tempy.email
Şifreleme ✅ E2E ✅ E2E ⚠️ Yalnızca aktarım sırasında
Kalıcı depolama ✅ Evet ✅ Evet ❌ Hayır (10 dk TTL)
Kullanıcı hesapları ✅ Evet ✅ Evet ❌ Hesap yok
Veri celp riski ⚠️ Şifreli veri mevcut ⚠️ Şifreli veri mevcut ✅ Celp edilecek veri yok
IP loglama ⚠️ İsteğe bağlı ⚠️ İsteğe bağlı ❌ Asla
Kullanım alanı Kalıcı özel e-posta Kalıcı özel e-posta Tek kullanımlık/test

ProtonMail ve Tutanota kalıcı özel e-posta için mükemmeldir.

tempy.email, verinin hiç var olmamasını istediğiniz tek kullanımlık kullanım içindir.

Sonuç

Çoğu hizmet der ki: "Verilerinize bakmayacağız" Biz deriz: "Verilerinize bakamayız (yeterince uzun süre mevcut değil)"

Çoğu hizmet der ki: "İsterseniz sileriz" Biz deriz: "İsteseniz de istemeseniz de 10 dakikada otomatik silinir"

Çoğu hizmet der ki: "Gizlilik odaklıyız" Biz deriz: "Gizlilik bizim mimarimizdir"

Bu politikayla gizlilik değil, tasarımla gizliliktir.

Deneyin: Geçici bir adres oluşturun ve kendiniz görün. 10 dakika içinde o e-posta sonsuza dek kaybolacak. "Arşivlenmiş" değil. "Silinmiş" değil. Kaybolmuş.

Güncellendi Şubat 12, 2026