حذف واسطهٔ پوش، طرفهای دخیل در تحویل را تغییر میدهد؛ فرادادهٔ مسیریابی را ناپدید نمیکند.
حریم خصوصی اعلانهای اندروید فقط به رمزنگاری خود گفتوگو بستگی ندارد. یک سرویس پوش میتواند بدون دریافت متن خوانای چت، اعلان را مسیریابی کند، اما همچنان در تحویل مشارکت دارد. اتصال مستقیم آن واسطهٔ مشخص را حذف میکند، ولی فراداده را از سرور پیامرسان یا شبکه پاک نمیکند.
بنابراین مقایسهٔ مفید این نیست که «FCM همهچیز را لو میدهد و سوکت همهچیز را پنهان میکند». پرسش این است: چه دادهای به هر طرف میرسد، طراحی انتخابشده در پسزمینه چقدر قابلاعتماد است و کاربر چه چیزی را میتواند بررسی کند؟
FCM چه چیزی حمل میکند؟
Firebase Cloud Messaging میان پیامهای اعلان که پلتفرم میتواند نمایش دهد و پیامهای داده که کد برنامه پردازش میکند تمایز میگذارد. محموله ممکن است متن خوانای اعلان، دادهٔ رمزنگاریشده یا فقط سیگنالی حداقلی باشد که به برنامه میگوید بهروزرسانیها را دریافت کند. پیامدهای حریم خصوصی این طراحیها متفاوت است. انواع پیام FCM.
مستندات Firebase حفاظت TLS میان سرور فرستنده، FCM و دستگاه را توضیح میدهد، اما میگوید FCM بهطور خودکار رمزنگاری سرتاسری در سطح برنامه ارائه نمیکند. محمولههای حساس به حفاظت مناسب بالاتر از لایهٔ انتقال نیاز دارند. در پیامرسان خصوصی، این حفاظت باید مرز موردنظرِ نقاط پایانی پیامرسان را حفظ کند؛ رمزنگاری داده در سروری که از قبل متن روشن را میداند، مدل اعتماد متفاوتی است. راهنمای رمزنگاری FCM.
شناسههای مسیریابی چه چیزی را ثابت میکنند و چه چیزی را نه؟
پوش هدفمند به شناسهای برای نمونهٔ مربوط از برنامه نیاز دارد. این با شناسهای دائمی و همگانی برای یک شخص یکسان نیست. ثبتها میتوانند تغییر کنند یا منقضی شوند؛ راهنمای فعلی Firebase هم ثبتهای مبتنی بر نصب و هم توکنهای قدیمی را پوشش میدهد. مستندات مدیریت ثبت.
ارائهدهندهٔ پوش ناگزیر در پردازش درخواستها و تحویل مشارکت میکند. این موضوع ملاحظات فراداده ایجاد میکند، اما نگهداری دقیق، پیوند با حساب و دامنهٔ دید به مستندات یا اندازهگیری نیاز دارد. از یک اعلان عمومیِ «پیام جدید» نتیجه نگیرید که فرستنده و گیرندهٔ انسانی و کل گراف روابط اجتماعی خودبهخود آشکار میشوند.
همبستگی زمانی میتواند در مدل تهدید نگرانکننده باشد، بهویژه وقتی ناظر چند جریان ترافیک مرتبط را میبیند. دقت آن به مشاهدات موجود، پردازش دستهای، فعالیت پسزمینه و عوامل دیگر وابسته است. «ممکن است سرنخی فراهم کند» معادل «همهٔ مکالمهها را بهآسانی بازسازی میکند» نیست.
مقایسهٔ FCM و همگامسازی مستقیم
| پرسش طراحی | پوش از طریق FCM | همگامسازی مستقیم پسزمینه |
|---|---|---|
| آیا واسطهٔ پوش شخص ثالث دخیل است؟ | بله | برای آن اتصال مستقیم، نه |
| آیا میتوان متن خوانای چت را از آن واسطه دور نگه داشت؟ | بله، با طراحی مناسب محموله | پیامرسان همچنان به رمزنگاری سرتاسری مناسب نیاز دارد |
| آیا سرور برنامه دادهٔ اتصال یا تحویل را میبیند؟ | اغلب؛ به معماری بستگی دارد | بله، مستقیماً به کلاینت خدمت میدهد |
| آیا تحویل فوری تضمین میشود؟ | نه | نه |
| چه چیزی باید آزمایش شود؟ | محتوای محموله، چرخهٔ عمر توکن، تأخیرها و راهکار جایگزین | محدودیتهای سیستمعامل، رفتار اتصال مجدد، هزینهٔ باتری و تأخیرها |
پرسوجوی دورهای مستقیم یا سوکت میتواند وابستگی به ارائهدهندهٔ پوش را کاهش دهد. این روشها ناشناسبودن خودکار ایجاد نمیکنند و مانع مشاهدهٔ تمام رویدادهای مرتبط توسط سیستمعامل، شبکه یا زیرساخت خود برنامه نمیشوند.
چرا WorkManager ابزار انتقال پیام فوری نیست؟
اندروید برای مدیریت منابع، کار پسزمینه را محدود میکند. WorkManager کار ماندگار را در چارچوب همین محدودیتها زمانبندی میکند؛ آوردن نام آن در معماری به این معنا نیست که اتصال پیوسته فعال میماند یا هر پیام فوراً میرسد. تنظیمات سازنده، محدودیت باتری و وضعیت برنامه اهمیت دارند. محدودیتهای کار پسزمینه در اندروید.
غیرفعالکردن محدودیتهای مصرف انرژی ممکن است قابلیت اطمینان و مصرف باتری را تغییر دهد، اما معافیتهای گسترده را کورکورانه اعمال نکنید. حالت پشتیبانیشدهٔ برنامه را روی دستگاه واقعی آزمایش کنید. حذف اجزای گوگل خودبهخود به برنامهها استفاده از سازوکار تحویل جدید را یاد نمیدهد؛ ممکن است برخی قابلیتها از کار بیفتند.
لیوارا دربارهٔ اعلانها چه میگوید؟
مستندات امنیتی لیوارا میگوید اعلان پوشِ پیام رمزنگاریشده شامل جزئیات پیام یا نامها نیست. همچنین میگوید سرویس، فرادادهٔ عملیاتی و توکنهای پوش را ذخیره میکند. اینها ادعاهای محصولاند، نه مدرکی مبنی بر اینکه لیوارا از FCM استفاده نمیکند یا فرادادهٔ تحویل از همهٔ واسطهها پنهان است.
مستندات عمومی را باید در کنار مدل تهدید خواند. این مقاله در جایی که چیزی اثبات نشده، ادعای گزینهٔ آزمایششدهٔ همگامسازی مستقیم، برتری اندازهگیریشدهٔ مصرف باتری یا سیاست مشخص نگهداری لاگ نمیکند.
بررسی عملی اعلان
از یک پیام آزمایشی بیخطر استفاده کنید. آنچه هنگام بازبودن قفل گوشی، قفلبودن، آفلاینبودن و سپس اتصال مجدد ظاهر میشود مقایسه کنید. پیشنمایش دستگاههای پیوندخورده و برنامههای دارای دسترسی به اعلان را جداگانه بررسی کنید. تنظیم صفحهٔ قفل، نمایش محلی را کنترل میکند؛ لزوماً محمولهٔ پوش در سمت سرور را تغییر نمیدهد.
توسعهدهندگان باید محمولههای آزمایشی را بررسی و فقط حداقل دادهٔ تشخیصی را ثبت کنند. تحویل را در وضعیتهای واقعی باتری و اتصال اندازه بگیرید و معنای دقیق «ارسالشده»، «پذیرفتهشده»، «تحویلشده» و «نمایشدادهشده» را مستند کنید. روشنبودن این مرزها هم حریم خصوصی و هم قابلیت اطمینان را بهتر میکند.



