لایه انتقال Android، همراه با کل اتصال بین سرور شما، باطنهای FCM، و دستگاههای کارخواه، بااستفاده از امنیت لایه انتقال (TLS) ایمن میشود. این کار رمزگذاری نقطه به نقطه قوی برای همه دادهها درحین انتقال فراهم میکند و از رهگیری آنها در شبکه محافظت میکند. این مدل امنیتی قوی برای اکثر برنامهها مناسب است. میتوانید جزئیات بیشتر را در سند معماری FCM پیدا کنید.
یکی از محدودیتهای رمزگذاری نقطه به نقطه این است که در کل مسیر رمزگذاری نمیشود و فقط فرستنده و گیرنده میتوانند پیام را رمزگشایی کنند. به همین دلیل است که FCM توصیه میکند برای ارتباطات حساس به حریم خصوصی، مانند پیامهای گپ یا تراکنشهای اصالتسنجی، از رمزگذاری سرتاسر استفاده کنید. برای اینکه بیشترین بهره را از رمزگذاری سرتاسر ببرید، باید آن را در سطح بالاتری مثل سرورها و کد برنامه پیادهسازی کنید.
افزودن رمزگذاری سرتاسر برای دادههای حساس
برای برنامههایی که دادههای بسیار حساس را مدیریت میکنند، مانند پیامهای خصوصی یا اطلاعات اعتباری شخصی، میتوانید بااستفاده از رمزگذاری سرتاسر (E2EE) یک لایه محافظتی اضافی اضافه کنید. این فرایند شامل رمزگذاری بار داده پیام در سرور شما قبلاز ارسال آن به FCM و رمزگشایی آن در برنامه شما در دستگاه کاربر است. این ویژگی با پیامهای داده FCM کار میکند، زیرا محمولههای اعلان استاندارد توسط سیستمعامل مدیریت میشوند و نمیتوانند قبلاز نمایش توسط برنامه شما رمزگشایی شوند.
توجه داشته باشید که FCM راهکار داخلی برای رمزگذاری سرتاسر ارائه نمیدهد. شما مسئول پیادهسازی این لایه امنیتی در برنامهتان هستید. کتابخانهها و پروتکلهای خارجیای برای این منظور طراحی شدهاند، مثل Capillary یا DTLS.
نمونه مفهومی
در اینجا نحوه تغییر بار داده FCM data هنگام استفاده از «رمزگذاری سرتاسر» نشان داده شده است.
قبلاز رمزگذاری (بار داده استاندارد):
{
"token": "DEVICE_REGISTRATION_TOKEN",
"data": {
"sender": "user123",
"message_body": "Your 2FA code is 555-123",
"timestamp": "1661299200"
}
}
پساز رمزگذاری (پایهبار رمزگذاری سرتاسر):
{
"token": "DEVICE_REGISTRATION_TOKEN",
"data": {
"encrypted_payload": "aG9va2Vk...so much encrypted gibberish...ZW5jcnlwdA=="
}
}
اگر رمزگذاری سرتاسری را بهدرستی پیادهسازی کرده باشید، برنامه کارخواه تنها طرفی است که میتواند بار داده رمزگذاریشده را رمزگشایی کند تا پیام اصلی را آشکار کند.
جایگزین: واکشی محتوا مستقیماً از سرور شما
اگر رمزگذاری سرتاسر برای برنامهتان مناسب نیست، میتوانید بهجای آن پیامهای داده خالی ارسال کنید. این پیامها بهعنوان سیگنالی برای برنامه عمل میکنند تا محتوا را مستقیماً از سرورهای شما واکشی کند. این یعنی دادههای حساس فقط بین برنامه شما و سرورهایتان منتقل میشود و برای انتقال داده، FCM را دور میزند.
یکیاز معایب این روش تأخیر احتمالی ناشی از اتصال برنامه به سرور شما برای بازیابی دادهها است. وقتی برنامهای پیام داده دریافت میکند، معمولاً فقط چند ثانیه فرصت دارد تا قبلاز رفتن به پسزمینه، اعلانی را نمایش دهد. ممکن است واکشی دادهها از سرور شما در این پنجره تکمیل نشود. موفقیت این واکشی داده به عواملی مانند اتصال دستگاه کاربر بستگی دارد.
بنابراین، برای موقعیتهایی که واکشی داده ممکن است خیلی طول بکشد، جایگزینهایی برای تجربه کاربری درنظر بگیرید. برای مثال، میتوانید اعلان عمومیای مثل «پیام جدیدی دارید» را نمایش دهید و سپس وقتی محتوای کامل بازیابی شد، آن را بهروز کنید.