Push me, and then just touch me

Интересно, вот наверняка многие слышали про PUSH-сообщения. А многие ли знают как они работают? Отбросим 95% юзеров, которым это нафиг не сдалось и оставим пытливых и подозревающих.

Казалось бы, что в этих сообщениях необычного? Вылазят себе, делают свое нехитрое дело.

На самом деле работают они примерно так (картинка сворована со статьи на швабре):

  1. Сервер приложения (например мессенджер) отдает контент пользователю;
  2. Клиент подключается к серверу push-сообщений, регистрируется и получает ID;
  3. Клиент отправляет полученный ID на сервер и сервер привязывает конкретного пользователя к этому ID;
  4. Сервер отправляет сообщение клиенту через сервер сообщений используя полученный ранее ID.

Даже вот такие сообщения в браузерах на вашем ПК, тоже работают по этому принципу:

Получается, что все ваши уведомления, например, в ведроиде, идут через firebase cloud messaging от гугла. ВСЕ сообщения, если приложение не настроено по-своему, идут через отдельную систему обработки, и только оттуда могут попасть к вам на устройство. С версии 8 в ведроиде активно порицается использование не FCM для доставки пушей, что как-бы намекаэ.

Сервера отправки пушей на самом деле представляет собой классический пример информационного агрегатора и по-сути SaaS, занимающейся вполне конкретной задачей на собственных вычислительных мощностях. В первую очередь позиционируется, что пуши положительно влияют на энергопотребление девайсов, т.к. для поддержания работы 100500 приложений с функциями получения сообщений нужно иметь всего один открытый сокет для связи с пуш-сервером, и изредка обмениваться данными.

Казалось бы, такой несложный механизм как оповещение об уведомлениях не может таить в себе столь изощренный подход к передачи вашей личной информации. Как мы видим, может.

Иногда полезно задуматься о подобных вещах. Всех благ!