Uçtan uca şifrelemeyle mesaj verilerinizin güvenliğini sağlama

Android Taşıma Katmanı ile sunucunuz, FCM arka uçları ve istemci cihazlarınız arasındaki bağlantının tamamı Taşıma Katmanı Güvenliği (TLS) kullanılarak güvenli hale getirilir. Bu, aktarım halindeki tüm veriler için güçlü bir uçtan uca şifreleme sağlayarak verilerin ağda ele geçirilmesini önler. Bu güçlü güvenlik modeli, uygulamaların büyük çoğunluğu için uygundur. Daha fazla bilgiyi FCM Mimarisi dokümanında bulabilirsiniz.

Noktadan noktaya şifrelemenin sınırlamalarından biri, iletinin 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 gizliliğe duyarlı iletişimlerde uçtan uca şifreleme kullanılmasını önerir. Uçtan uca şifrelemeden en iyi şekilde yararlanmak için bu şifrelemenin 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şlemde, mesaj yükü FCM adresine gönderilmeden önce sunucunuzda şifrelenir ve kullanıcının cihazındaki uygulamanızda şifresi çözülür. Bu özellik, FCM veri mesajlarıyla çalışır. Standart bildirim yükleri, işletim sistemi tarafından işlendiği için gösterilmeden önce uygulamanız tarafından şifresi çözülemez.

FCM'da uçtan uca şifreleme için yerleşik bir çözüm bulunmadığını unutmayın. Bu güvenlik katmanını uygulamanıza eklemek sizin sorumluluğunuzdadır. Bu amaç için tasarlanmış harici kitaplıklar ve protokoller vardır. Örneğin, Capillary veya DTLS.

Kavramsal Örnek

E2EE kullanılırken FCM data yükünün nasıl değiştiği aşağıda açıklanmıştır.

Ş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 şifrelemenizi doğru şekilde uyguladıysanız istemci uygulaması, şifrelenmiş yükün şifresini çözerek orijinal mesajı ortaya çıkarabilen tek taraftı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, arka plana alınmadan önce genellikle yalnızca birkaç saniye içinde bildirim göstermesi gerekir. 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österebilir ve tam içerik alındıktan sonra bu bildirimi güncelleyebilirsiniz.