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:
- E-postalar diske kaydedilir → Mahkeme celbi, ihlal veya satış riski
- Arama için indekslenir → İletişimleriniz hakkında meta veri oluşturur
- Yedeklenir → Birden fazla kopya mevcut, maruz kalma artar
- Süresiz muhafaza edilir → 10 yıl önceki e-postalarınız hâlâ var
- Reklamlar için taranır → Hedefli reklam için içerik analiz edilir
- 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:
- Silinen e-postaları kurtarma → Yedek mevcut değil
- Geçmiş verileri görme → TTL her şeyi siler
- Kullanıcı davranışını izleme → Analiz edecek log yok
- Kullanıcıları tanımlama → Hesap yok, kaydedilen IP yok
- 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ş.