iMessage называют неблокируемым, но это не совсем так

Начнем с главного. iMessage действительно опирается на Apple Push Notification service, то есть APNs. Это системный канал, через который iPhone получает удаленные уведомления от приложений. Банковские уведомления, статусы доставок, напоминания сервисов и многое другое в iOS в основном приходят через APNs.

iMessage называют неблокируемым, но это не совсем так
© It-world

WhatsApp и Telegram не смогут отправлять SMS

Отсюда и растут ноги у истории про «неблокируемость». Мол, iMessage это и есть пуши. Значит выключить его отдельно нельзя. Но APNs и iMessage это разные уровни. APNs является инфраструктурой доставки. iMessage является одним из сервисов, который этой инфраструктурой пользуется. Поэтому утверждение «если отключить iMessage, умрут все пуши» не совсем корректен.

Другое дело, что если перекрыть сам APNs, тогда действительно начнется эффект домино. Пропадут почти все уведомления приложений, а вместе с ними пострадает и iMessage. Технически APNs не выглядит как что-то экзотическое. Устройства обычно держат соединение с APNs по TCP 5223. Если оно не проходит, используется TCP 443 как запасной вариант. Для фильтрации это создает сложности. Грубая блокировка быстро упирается в обычный защищенный трафик, а попытка вмешиваться в него почти гарантированно принесет побочные эффекты.

Есть и второй момент, который часто недооценивают. Apple использует балансировку, и устройства не обязаны ходить на один и тот же публичный IP. В сетевых рекомендациях Apple фигурирует целый адресный блок 17.0.0.0/8, который принадлежит Apple. Если пытаться блокировать по IP, опять же придется резать слишком широко. А широкая блокировка начинает задевать не только уведомления и сообщения, но и другие сервисы Apple, которые крутятся рядом.

Роскомнадзор ограничивает работу WhatsApp в России

Почему же тогда так уверенно говорят, что iMessage «спрятан» в пушах. Потому что он APNs доставляет события и небольшой объем данных. В документах Apple есть конкретные цифры. Через APNs может проходить до 4 или 16 Кбайт в зависимости от версии iOS и iPadOS. Если сообщение больше или в нем есть вложение, данные шифруются и передаются отдельно через инфраструктуру iCloud. В итоге APNs для iMessage часто выступает как сигнал и короткая полезная нагрузка, а не как единственный путь доставки всего сообщения. Поэтому и получается, что «вырезать iMessage из пушей» не затрагивая сами пуши не совсем тривиальная задача.

Так можно ли заблокировать iMessage точечно? Теоретически да, но точечная блокировка обычно требует постоянной поддержки. Инфраструктура меняется, часть трафика идет как обычный TLS, есть риск случайно задеть соседние сервисы. На практике это требует длительной технической работы.

iMessage действительно можно заблокировать. Никакой «неприкосновенности» у него нет. Но самый простойспособ блокировки ударит по APNs, а значит по уведомлениям почти всех приложений на iPhone. Это слишком заметно для пользователей и слишком болезненно для бизнеса. Более аккуратные варианты возможны, но они сложнее и дороже в сопровождении.