55 318 досмотров устройств на границе.
92% из них — базовые досмотры. По политике CBP обоснованное подозрение требуется только для расширенных. Источник: CBP.
Stiger · iOS / iMessage
Отправь стикер с сообщением внутри. Если задан пароль, прочитает только тот, у кого есть Stiger Pro и тот же пароль. Для любопытного взгляда, листающего чат, это просто стикер.
Публичная бета в TestFlight. На проверке в App Store. Без аккаунтов. Без серверов. Открытая спецификация.
Почему сейчас
Досмотр устройств, варианты шифрования и доступ к мессенджерам отличаются от страны к стране и продолжают меняться. У каждого пункта ниже есть ссылка на официальный или технический источник. Stiger ничего из этого не меняет: это ещё одно место, куда можно положить сообщение, не похожее на сообщение.
92% из них — базовые досмотры. По политике CBP обоснованное подозрение требуется только для расширенных. Источник: CBP.
Apple больше не предлагает ADP — опциональное сквозное шифрование iCloud — новым пользователям в Великобритании. Privacy Guides связывает это с уведомлением о технических возможностях (technical capability notice) от властей страны. Источники: Apple Support, Privacy Guides.
Позиция Совета ЕС, ноябрь 2025: добровольное сканирование платформами становится постоянным, обязательные приказы об обнаружении не включены. Переговоры с Европарламентом продолжались. Источник: Совет ЕС.
Роскомнадзор ограничил Signal в августе 2024-го. В феврале 2026-го исключил домены WhatsApp из национальной системы DNS, а Telegram, по сообщениям, замедляли. Источники: BleepingComputer, 2024, BleepingComputer, 2026, gHacks.
ГУБОПиК МВД сообщает: подписка на Telegram-каналы и чаты, признанные экстремистскими, влечёт административную ответственность по ст. 19.11 — штраф, общественные работы или арест. Источник: заявление ГУБОПиК.
В годовом отчёте IACHR за 2025 год отмечены выборочные проверки телефонов в общественных местах и, около инаугурации 10 января, на блокпостах по всей стране. Источник: IACHR (ОАГ), глава IV.B.
На практике
В местах, где основные мессенджеры ограничены и телефоны могут проверять, но iMessage работает, стикер может нести ключ доступа, контакт или инструкцию — и поиск по ключевым словам ничего из этого не найдёт.
Партнёр, который листает твои сообщения. Родитель, который проверяет. Связь с другом снаружи, когда нужна такая, что не похожа на связь. Поставь пароль и включи блокировку по Face ID — и помни о пределах: приложение видно на телефоне, а кто знает твой код разблокировки, откроет и его.
Одноразовые пароли. Wifi для гостей. Доступ к серверу для друга. Код от подъезда. Отправляешь стикер — строка не попадает ни в историю чата, ни в превью на экране блокировки.
Подсказка к паролю, код от шкафчика, напоминание, которому не место в открытом тексте. Отправляешь стикер самому себе — он лежит в истории Сообщений и выглядит как ничто. Только не делай его единственной копией чего-то критичного: пересжатая картинка или забытый пароль — и всё потеряно.
«Скучаю» под стикером с кактусом. План на субботу, который общему чату видеть не обязательно. Бесплатно и без пароля — но без пароля прочитать может любой, у кого есть Stiger. Для важного поставь пароль.
Ключ к загадке в ARG. Записка от себя‑прошлого в капсулу времени. Пасхалка, спрятанная внутри открытки на день рождения. Стеганография не обязана быть «жизнь или смерть», чтобы быть кайфовой.
За 30 секунд
Находишь Stiger среди приложений iMessage, пишешь секрет, ставишь пароль, отправляешь. На другой стороне стикер снова превращается в текст.
Записано в симуляторе iOS, интерфейс в ролике английский.
Как это работает
Текст шифруется AES-256-GCM, ключ выводится из пароля через PBKDF2-SHA256, 600 000 итераций. Шифротекст встраивается в младший бит синего канала стикера, в порядке пикселей, перетасованном тем же паролем.
Без пароля — даже зная, какой канал и какой бит — спрятанные байты выглядят случайными: ни magic-байтов, ни поля длины, ничего, что говорило бы «Stiger». Но случайное — не то же самое, что нетронутое: статистический стегоанализ может понять, что внутри что-то спрятано. Что именно — нет.
На стороне iMessage Stiger отправляет каждый носитель как обычное вложение‑картинку, а не через API стикеров Apple. Это осознанный выбор — и проверенный: API стикеров перекодирует изображения в HEIC и уменьшает их при пересылке (я измерил: PNG 512×512 / 207 KB приходит к получателю как HEIC 320×320 / 12 KB), что уничтожило бы скрытое сообщение. Слово «стикер» здесь и в приложении — бытовое название для картинки, а не ссылка на фреймворк.
// из spec/stealth-v3.md
permKey = PBKDF2-SHA256(pwd, PERM_SALT)
mainKey = PBKDF2-SHA256(pwd, salt)
// оба: 600 000 итераций
STREAM = salt(16) | marker(4)
| maskedVer(1) | maskedRsv(1)
| nonce(12)
| AES-256-GCM(mainKey,
len(2) | msg | padding)
| tag(16)
EMBED = LSB(blue, STREAM)
в пиксели, перетасованные permKey
// ни magic-байтов, ни открытой длины Живая демо
Полная имплементация stealth-v3 в браузере. Картинка не уходит ни в какие сервисы — биты считаются прямо на этой странице. Открой DevTools → Network и проверь.
Челлендж
Всё на открытой спецификации — ни приложение, ни iPhone не нужны.
Шаг за шагом
Реальный stealth-v3 на тестовом стикере stealth-hello.png. Все байты ниже — то, что выдал production iOS-движок. Пароль публикуется в спецификации и здесь не секрет.
128×128 пикселей. Все 16 384 полностью непрозрачны (alpha = 0xFF), значит каждый даёт один бит. Вместимость — 2 048 байт.
PBKDF2-SHA256 над паролем (600 000 итераций) → permKey. Из него HMAC-counter поток, по нему Fisher–Yates перетасовывает [0, N).
3b8448c5 30bb162c 284012e5 09b6eb5f [10561, 1462, 14909, 15013, 11089, 2928, 9260, 12068] Идём по перестановке, собираем первые 22 байта. Они структурированы как salt(16) | marker(4) | masked_version(1) | masked_reserved(1).
eac76892 9b6426ba 9d888c3d de96c16d a5c1 e0f3 53 ad Ещё один PBKDF2 — теперь с тем salt из заголовка → mainKey. HKDF-SHA256 над mainKey даёт 34 байта: macKey (32) и mask (2).
9f6ce6e0 f4fe242d 7b2a25a7 e90b61d6 455d8201 842b3338 0ac206bf 235a7daa 50ad HMAC-SHA256(macKey, salt || masked_version || masked_reserved)[:4] должен совпасть с marker из заголовка. Сравнение в постоянном времени. Без правильного пароля computed выглядит как случайный шум — отсюда «неверный пароль неотличим от не-Stiger-стикера».
a5c1 e0f3 a5c1 e0f3 masked_version XOR mask[0] = 0x03
Оставшиеся байты LSB-потока — это nonce(12) | ciphertext | tag(16). Расшифровываем AES-256-GCM с mainKey и nonce.
bb76 cca9 8c65 16f6 30d6 33c5 1,998 bytes b29c 1512 a4c3 f6ad 3b4c 27f3 5ce7 8051 Внутри расшифрованного блока: u16-be длина | сообщение | случайный padding до конца ёмкости. Длина внутри шифра, не в открытом виде — поэтому стикеры одного размера всегда выглядят одинаково независимо от длины сообщения.
11 "hello world" 6eec f515 fdc0 f9e5 b516 5477 d79a 63ab … (1,985 байт случайного паддинга) Честность
Privacy-инструменты строят доверие через честность о том, чего они не умеют. Прочти, прежде чем доверять приложению что-то важное.
Фотография стикера — просто фотография. By design — скриншот переписки не утечка.
Чаще не пересжимает. Иногда пересжимает. Я тестирую, гарантировать не могу. Если такое — декод просто не проходит.
Утёкший пароль раскрывает все предыдущие сообщения. Меняй.
Если телефон разблокирован в чужих руках, никакое приложение не спасёт. Full-disk шифрование и биометрия.
Шифрование входит в Pro (для русскоязычных бесплатно, в остальных странах цена зависит от местных доходов). Без него сообщение лежит в стикере открыто: прочитает любой, у кого есть Stiger, а фиксированный заголовок выдаёт Stiger любому LSB-сканеру. Спрятано от тех, у кого нет приложения, — не то же самое, что зашифровано.
Обученные инструменты стегоанализа видят, что в стикере есть скрытые данные, а при криминалистическом разборе чата видно, что это вложения-картинки, а не нативные стикеры. С кем и когда ты переписываешься, Apple видит, как и в любом iMessage.
600 000 итераций PBKDF2 замедляют каждую попытку, но пароль из 6 символов всё равно подбирается за часы на обычных видеокартах. Используй длинную фразу и передавай её не через iMessage.
Клавиатура с полным доступом может отправлять каждое нажатие на свой сервер, и изнутри iMessage Stiger не может ей помешать. Отключи Full Access, прежде чем писать секреты. Поле пароля всегда получает системную клавиатуру.
Если в секрете есть место, Stiger показывает превью карты, и Apple Maps видит этот район — с IP того, кто читает. Для секрета-места это почти весь секрет. Чтобы место не попало к Apple, отправь его обычным текстом.
Полная threat model → THREAT_MODEL.md
Если в твоём сторе нет
Stiger открыт во всех регионах App Store. Если из твоего он когда-нибудь пропадёт, поможет смена региона в Apple.
В приложении Stiger
Расширение iMessage — место, где стикеры отправляются и читаются; именно там происходит кодирование. В самом приложении Stiger живёт остальное: paranoia guide, объясняющий каждую настройку безопасности и её компромисс, и таб Store, где можно взять ещё паков. Подписка и Store — модель монетизации проекта.
Потяни ползунок — так работает настоящий виджет в приложении.
Паки стикеров
В расширении есть паки — хакеры, шпионы, лето, любовные записки, мемы, полночь. Сообщение может нести любой стикер из любого.