Merhabalar
Flutter Firebase üzerinde çalışan bir uygulama geliştiriyorum içinde mesajlaşma kısmı olan.
Mesajları şifrelemek istiyorum ki Firebase tarafında plaintext olarak durmasınlar. Kullanıcı farklı bir cihazdan da giriş yaptığında eski mesajlarını olduğu gibi mesaj kurtarma anahtarı vs olmadan okuyabilmeli, yani şifreleme anahtarı vs cihazlar arasında senkron olmalı gibi birşey olacak sanırım (manuel QR/anahtar paylaşımı olmadan). Bunu en kolay nasıl sağlarım. Modellerle görüşmem sonrası kafam daha da karıştı ortal yol bulamadım
Sizler benzer özellikleri nasıl yapıyorsunuz?
Flutter Firebase kullandığım uygulamanın özelliği için yol lazım
8
●158
- 23-09-2026, 11:57:28Firebasede mesajları ciphertext olarak tutabilirsin.Ama kullanıcı yeni cihazdan hiçbir qr,recovery key veya parola olmadan eski mesajlarını okuyacaksa,şifreleme anahtarının bir şekilde sunucudan geri alınabilir olması gerekir,bu da gerçek e2ee olmaz.Gerçek e2ee istiyorsan cihazlar arası anahtar aktarımı veya kullanıcıya ait ek bir secret şart.Yani önce “firebase plaintext görmesin” mi,yoksa “sunucu bile okuyamasın” mı istediğini netleştirmen lazım.
- 23-09-2026, 12:03:59Arkadaşın dediği gibi önce ne istediğinizi beiirlemeniz gerek. Eğer amacınız DB'de şifreli gözüksün yeter diyorsan şifreleme anahtarını DB'de bir yerde tutulması lazım bu da yine güvenli olmaz. Ama mesajları kimse okuyamasın diyorsan işler değişir.dogacandoganer adlı üyeden alıntı: mesajı görüntüle
- 23-09-2026, 12:11:51dogacandoganer adlı üyeden alıntı: mesajı görüntüleLecter41 adlı üyeden alıntı: mesajı görüntüle
İstediğim şey şu şekilde : cihazlar arası anahtar aktarımı olmasın kullanıcı bu gibi işlerle uğraşmasın ama Firebasede de plaintext durmasın ( çünkü kullanıcıların bunlarla uğraşmaması gerekiyor ki bu appte uğraşmaz da ) - 23-09-2026, 12:20:50Mesajları neden şifreliyorsunuz ? Herhangi bir durumda mesajlar 3. şahsın eline geçmemesi için. Eğer mantığınız sadece şifreli gözüksün yeter olursa bu sefer şifreleme anahtarı da 3. şahsın eline geçebilir. Bu seferde mesajlar çözülebilir. e2ee en güvenilir yoldur. Detaylı araştırmanızı öneririm.Enes72 adlı üyeden alıntı: mesajı görüntüle
- 23-09-2026, 12:40:23Lecter41 adlı üyeden alıntı: mesajı görüntüle
Anladım hocam çok sağolun tabiki e2ee en güvenli yoldur biliyorum da kullanıcı şifreleme anahtarı yada mesaj kurtarma anahtarı vs her ne deliniyorsa kesinlikle onlarla uğraşmaması lazım farklı cihazdan oturum açma durumlarında falan.bu bilgi ışığında e2ee'den sonra en kolay ve mantıklı yol sizce nedir hocam - 23-09-2026, 13:29:23Bu durumda gerçek e2ee yerine transparent encryption daha uygun.Mesajları firestoreye yazmadan önce aes-gcm ile şifreleyip,kullanıcı/konuşma anahtarını backend+kms tarafında güvenli şekilde saklayabilirsin.Kullanıcı firebase auth ile giriş yaptığında anahtar arka planda alınır,cihaz değişse bile kullanıcı hiçbir şeyle uğraşmaz.Böylece firebasede plaintext durmaz ama backend gerektiğinde anahtara erişebildiği için e2ee sayılmaz.Enes72 adlı üyeden alıntı: mesajı görüntüle
- 23-09-2026, 13:44:13Sizin istediğiniz yapı buna benzer olmalı. Her cihazda mesajları görüntüleyebilir ekstra bir şey yapmasına gerek kalmaz. İsterseniz her sohbet için şifre anahtarı oluşturun ister tek anahtarla bütün mesajları şifreleyin. Orası size kalmışEnes72 adlı üyeden alıntı: mesajı görüntüle

User
├── encryptionKey
└── messages
├── ciphertext - 23-09-2026, 17:06:11dogacandoganer adlı üyeden alıntı: mesajı görüntüle
Lecter41 adlı üyeden alıntı: mesajı görüntüle
Tamamdır araştırayım teşekkürler bilgilendirme için
