Android Taşıma Katmanı ile sunucunuz, FCM arka uçları ve istemci cihazlar arasındaki bağlantının tamamı Taşıma Katmanı Güvenliği (TLS) kullanılarak korunur. Bu sayede, aktarım sırasında tüm veriler için güçlü bir uçtan uca şifreleme sağlanır ve veriler ağda ele geçirilmeye karşı korunur. Bu güçlü güvenlik modeli, uygulamaların büyük çoğunluğu için uygundur. FCM Mimarisi belgelerinde daha fazla bilgi bulabilirsiniz.
Noktadan noktaya şifrelemenin sınırlamalarından biri, mesajın yalnızca gönderen ve alıcı tarafından çözülebileceği tüm yol boyunca şifrelenmemesidir. Bu nedenle FCM, sohbet mesajları veya kimlik doğrulama işlemleri gibi gizlilik açısından hassas iletişimler için uçtan uca şifreleme kullanılmasını önerir. Uçtan uca şifrelemeden en iyi şekilde yararlanmak için bu özelliğin sunucularınız ve uygulama kodunuz gibi daha yüksek bir düzeyde uygulanması gerekir.
Hassas veriler için uçtan uca şifreleme ekleme
Özellikle hassas verileri (ör. özel mesajlar veya kişisel kimlik bilgileri) işleyen uygulamalarda uçtan uca şifreleme (E2EE) ile ek bir koruma katmanı ekleyebilirsiniz. Bu işlem, ileti yükünün FCM hizmetine gönderilmeden önce sunucunuzda şifrelenmesini ve kullanıcının cihazındaki uygulamanızda şifresinin çözülmesini içerir. Bu, FCM veri mesajlarıyla çalışır. Standart bildirim yükleri işletim sistemi tarafından işlenir ve görüntülenmeden önce uygulamanız tarafından şifresi çözülemez.
FCM'nın uçtan uca şifreleme için yerleşik bir çözüm sunmadığını unutmayın. Bu güvenlik katmanını uygulamanıza eklemek sizin sorumluluğunuzdadır. Bu amaçla tasarlanmış Capillary veya DTLS gibi harici kitaplıklar ve protokoller vardır.
Kavramsal Örnek
Uçtan uca şifreleme kullanıldığında FCM data yükünün nasıl değiştiğini aşağıda görebilirsiniz.
Şifrelemeden Önce (Standart Yük):
{
"token": "DEVICE_REGISTRATION_TOKEN",
"data": {
"sender": "user123",
"message_body": "Your 2FA code is 555-123",
"timestamp": "1661299200"
}
}
Şifrelemeden sonra (E2EE yükü):
{
"token": "DEVICE_REGISTRATION_TOKEN",
"data": {
"encrypted_payload": "aG9va2Vk...so much encrypted gibberish...ZW5jcnlwdA=="
}
}
Uçtan uca şifrelemeyi doğru şekilde uyguladıysanız şifrelenmiş yükün şifresini çözerek orijinal mesajı gösterebilecek tek taraf istemci uygulamadır.
Alternatif: İçeriği Doğrudan Sunucunuzdan Getirme
Uçtan uca şifreleme uygulamanız için uygun değilse bunun yerine boş veri mesajları gönderebilirsiniz. Bu mesajlar, uygulamanın içeriği doğrudan sunucularınızdan getirmesi için bir sinyal görevi görür. Bu, hassas verilerin yalnızca uygulamanız ile sunucularınız arasında taşındığı ve veri aktarımı için FCM'nın atlandığı anlamına gelir.
Bu yöntemin dezavantajı, uygulamanın verileri almak için sunucunuza bağlanmasından kaynaklanan olası gecikmedir. Bir uygulama veri mesajı aldığında, genellikle arka plana alınmadan önce bildirim göstermek için yalnızca birkaç saniyesi olur. Sunucunuzdan veri getirme işlemi bu süre içinde tamamlanmayabilir. Bu veri getirme işleminin başarısı, kullanıcının cihaz bağlantısı gibi faktörlere bağlıdır.
Bu nedenle, veri getirme işleminin çok uzun sürebileceği durumlarda kullanıcı deneyimi alternatiflerini göz önünde bulundurun. Örneğin, "Yeni bir mesajınız var" gibi genel bir bildirim gösterip tüm içerik alındıktan sonra bildirimi güncelleyebilirsiniz.