Безопасность и архитектура
Как на самом деле устроено обещание приватности.
Pulse утверждает, что ваши необработанные измерения никогда не покидают телефон. Это сильное и узкое утверждение, поэтому здесь сказано точно, что оно покрывает, что телефон всё же покидает, где лежат ключи, что хранят наши серверы, что всё ещё можем прочитать мы и Apple, и как всё это проверить самостоятельно.
Утверждение, сформулированное точно
Ваш пульс, вариабельность сердечного ритма, сон и движение читаются из Apple Health на вашем iPhone, там же истолковываются относительно вашей собственной скользящей нормы и превращаются в одну фразу. Ни одно измерение, ни один балл, ни один график и ни одна история не доходят до наших серверов, потому что в коде нет пути, который бы их отправил. Сама фраза при этом уходит: она написана для партнёра, она выведена из данных о здоровье и попадает к нему через ваше общее пространство iCloud. Эта разница и есть тема всей страницы.
Это более узкое обещание, чем «мы приватны», и именно его стоит проверять. Остальная часть страницы и есть проверка.
Четыре следствия из этого
- Мы не можем показать вам вашу историю здоровья в веб-панели, потому что её у нас нет.
- Мы не можем восстановить вашу переписку, если вы потеряли ключ и все устройства, потому что ключ никогда не был нашим.
- Мы не можем строить облачные функции поверх вашего содержимого, потому что наши серверы его не читают.
- Судебный запрос к нам достаёт служебные записи, а не медицинские: псевдонимные идентификаторы, токены уведомлений, настройки уведомлений, недолговечные журналы сервера и то, что вы прислали нам сами. Он не достаёт ни измерения, ни читаемого текста зашифрованного сообщения, потому что ни того, ни другого у нас нет.
Путь, который проходит день
Пять шагов. Первые три происходят на вашем телефоне, только четвёртый уходит хоть к кому-то, а пятый это единственный ответ, который может вернуться.
-
01
Измерено
Ваши Apple Watch, или браслет WHOOP когда выйдет эта поддержка, пишут измерения в Apple Health на вашем iPhone. Apple Health является базой данных на вашем телефоне, а не нашим сервисом.
-
02
Прочитано, с разрешения
Pulse читает те типы, которые вы разрешили на экране доступа к Health в iOS, и только их. Отзовите один — приложение продолжит работать с тем, что осталось.
-
03
Интерпретировано на устройстве
Сегодняшний день сравнивается с вашими же последними неделями кодом, который выполняется на вашем iPhone. На этом шаге нет сервера и нигде нет модели.
-
04
Переходит одна фраза
Готовая фраза, грубая метка настроения и выбранное вами отображаемое имя синхронизируются партнёру через iCloud, в пространство, общее ровно с одним человеком. Имя и фото зашифрованы сквозным шифрованием. Фраза и метка настроения таким шифрованием не защищены, поэтому Apple может их прочитать там, где они лежат.
-
05
Один ответ может вернуться
На следующее утро тот, о ком была подсказка, может ответить, помогло ли то, как партнёр был рядом, выбрав один из четырёх фиксированных вариантов. Обратно уходит только этот вариант, через то же общее пространство, без измерения и без свободного текста за ним.
Каждый фрагмент данных и его место
Три списка: что остаётся на вашем устройстве, что переходит в пространство, общее с партнёром, и что хранит наше приложение. У каждой записи сказано, что её защищает и где эта защита заканчивается.
На вашем устройстве, а не на наших серверах
В связке ключей iOS, читается только после того, как телефон был разблокирован хотя бы раз с момента включения. Строки о здоровье сознательно не попадают в вашу резервную копию iCloud. Ключ переписки является исключением и синхронизируется через связку ключей iCloud, чтобы им могли пользоваться ваши собственные устройства.
-
Пульс, пульс покоя, ВСР, сон, шаги, минуты тренировки и стояния, частота дыхания, кислород в крови, сеансы осознанности
Читается из Apple Health. Скользящая история за 90 дней остаётся на телефоне, чтобы приложение могло построить кривую.
-
Данные менструального цикла
Читаются, только если вы включите поддержку с учётом цикла («Осознание ритма»), выключенную по умолчанию; без неё подсказка вычисляется вообще без данных цикла. Зеркалирование в iCloud для него отключено в коде, поэтому сам журнал никогда не синхронизируется, а симптомы и заметки не покидают устройство вовсе. Фаза покидает его, только если вы дополнительно включите отдельный переключатель календаря цикла, у которого своя строка в таблице ниже.
-
Отрезки необычных сердечных сигналов
Замечаются на устройстве. Ничего не уходит, пока вы не одобрите конкретный момент, а фильтр убирает из формулировки числа и лексику цикла ещё до того, как что-либо может уйти. Тренировки и активная энергия читаются только для того, чтобы исключить нагрузку из этой проверки, и Pulse спрашивает не чаще трёх раз в день.
-
Ваш приватный ключ переписки
Создаётся на вашем устройстве, хранится в вашей связке ключей iCloud, чтобы им могли пользоваться ваши же другие устройства. К нам не загружается никогда.
-
Токены доступа и обновления WHOOP
Только если вы подключили браслет, для чего сперва должна выйти поддержка WHOOP. Лежат в связке ключей приложения с пометкой «только это устройство», поэтому не синхронизируются, и отзываются на стороне WHOOP при отключении.
-
Запись о вашем согласии и собственный список уведомлений приложения
Версионированная запись с отметкой времени о том, на что вы согласились; отозвать можно в любой момент. Отзыв немедленно останавливает всю обработку данных о здоровье.
Что переходит к партнёру
Через ваш собственный iCloud, в приватном пространстве, открытом одному поимённо названному участнику. Пространство не публично: ссылка на него бесполезна тому, чьей учётной записи iCloud нет в списке участников.
| Что | Защита |
|---|---|
| Дневная подсказка, предложенные жесты, грубая метка настроения, ваше отображаемое имя и фото и ваше местное время, если вы им делитесь, с живым статусом «скорее всего спит»; а когда ваши переключатели скрывают показание — нейтральная подсказка «пока ничего нового» вместо него | Общая зона iCloud, для партнёра только на чтение. Имя, фото и местное время зашифрованы сквозным образом. Подсказка и метка настроения выведены из данных о здоровье и не зашифрованы так, поэтому Apple может их прочитать. Подсказки истекают в конце дня. Статус сна живёт один час и тоже не защищён сквозным шифрованием. |
| Сообщения, фото, GIF, голосовые сообщения, жесты, просьбы, записи «Нашей истории», события календаря, список покупок, общие заметки, ответы на вопрос дня | Шифруются на вашем устройстве сквозным шифрованием. Ни мы, ни Apple их не читаем. |
| Записи списков просмотра и желаний: название, тип, ссылка, обложка, статус, а для идеи, сохранённой из реального места, его адрес и положение на карте; плюс день, от которого вы ведёте отсчёт | Открытым текстом внутри вашего общего пространства, поэтому Apple может их прочитать. Никогда не данные о здоровье. Комментарии, реакции и тихая оценка каждого зашифрованы сквозным шифрованием. |
| Вопрос дня и оба ответа | Каждый ответ шифруется на вашем устройстве сквозным шифрованием, как сообщение в чате; читаем только день, к которому он относится. Из общего пространства они исчезают в течение 48 часов. |
| Индикатор набора, отметки о прочтении и сигнал «держим вместе» | Передаются вживую, пока открыт чат, и нигде не хранятся. Сигнал удержания — это «да» или «нет» вообще без содержания. |
| Ваш календарь цикла и менструации, если вы включите этот переключатель: текущая фаза, дни этой менструации, дни, предсказанные для следующей, и окно овуляции | В открытом виде внутри вашей общей зоны, поэтому Apple может его прочитать. Это единственная строка в таблице с данными о здоровье, поэтому её переключатель отделён от всех остальных, выключен по умолчанию и убирает календарь с устройства партнёра в тот же момент, когда вы его выключаете. Симптомы и ваши записи не передаются никогда. |
Что Apple здесь может прочитать, а что нет
Ваше общее пространство находится в зоне внутри iCloud, поэтому всё из таблицы выше хранится у Apple. Переписка, фото, GIF, голосовые сообщения, жесты, просьбы, «Наша история», события календаря, записи Know Us, отправленные вами заметки «Несказанного» и то, что на них ответили, и комментарии к записи списка просмотра попадают туда уже как шифротекст, созданный вашим телефоном, и Apple может открыть его не больше нашего. Фраза дня, метка настроения рядом с ней, вопрос дня с обоими ответами, а также обычные записи списков просмотра и желаний и общий календарь цикла, если вы включили этот переключатель, защищены правилами доступа к пространству, а не этим шифрованием, то есть технически Apple способна их прочитать. Вот граница между тем и другим, и поэтому на этой странице нигде не написано, что никто ничего не видит.
Что наше приложение хранит намеренно
В приложении нет системы аккаунтов, поэтому на нашей стороне нет ни профиля, ни архива сообщений, ни медицинской карты. Ниже перечислено то, что приложение хранит сознательно. Обычные следы работы, то есть технические журналы, очереди и состояние ретранслятора, нужное открытому чату, существуют так же, как у любого размещённого сервиса, и последняя строка говорит об этом прямо, вместо того чтобы оставить вас гадать.
| Запись | Зачем она | Хранится до |
|---|---|---|
| Псевдонимный идентификатор iCloud, push-токен, платформа, три переключателя уведомлений и отпечаток ключа, который есть только у тебя и твоего партнёра; а также, только если ты включишь уведомления об объявлениях, этот выбор и язык приложения | Чтобы уведомление дошло до нужного телефона. | Вы удалите аккаунт в приложении, push-служба Google или Apple сообщит, что токен недействителен, или ваш телефон не обновлял его 180 дней. |
| Сообщение из формы связи: имя, почта, страна по желанию и то, что вы написали | Чтобы вам ответил человек. | Разговор закончится. Оно уходит письмом в наш ящик; в лог попадает только тема. |
| Сессионная кука сайта и CSRF-токен | Чтобы сайт работал. Строго необходимые; аналитических и рекламных кук не существует. | Завершится сессия браузера. |
| Административные аккаунты этого сайта и журнал их входов | Чтобы мы могли публиковать эти страницы. К приложению отношения не имеют: в нём нет входа. | Аккаунт будет удалён. Журнал входов хранится 12 месяцев. |
| Идея функции, присланная со страницы возможностей: название и всё, что вы добавили сами: описание, ссылка, имя, адрес эл. почты | Чтобы человек прочитал её, ответил вам и видел, что уже предлагали. | Вы просите её удалить или с идеей покончено. |
| Токены Live Activity, недолговечные технические журналы и состояние ретранслятора, нужное открытому чату | Чтобы жест дошёл до Dynamic Island, чтобы сайт работал и злоупотребления можно было разобрать, и чтобы два открытых чата говорили в реальном времени. | Токены исчезают, когда вы выключаете функцию, удаляете аккаунт или через 180 дней без обновления. Журналы удаляются через 14 дней. Переданные сигналы не записываются вовсе. |
| Отчёт о сбое, только если ты прочитал его и нажал «Отправить»: версия приложения и iOS, модель устройства, язык, последняя вкладка, технические детали и твоя заметка | Чтобы найти причину и исправить её. В нём никогда нет идентификатора iCloud, имени, показателей здоровья или сообщений. | 90 дней, затем удаляется автоматически. |
| Сколько раз открывалась каждая версия приложения: дневная сумма по сборке и по часу недели, без идентификатора и без записи на каждый телефон | Чтобы знать, какие версии ещё используются и когда можно отключить старую. | До 13 месяцев, затем дневные суммы удаляются автоматически. |
| Только если ты включишь «Помочь улучшить Pulse»: ежедневный список анонимных счётчиков (какие экраны и действия использовались и сколько раз), прибавляемый к дневной сумме | Чтобы видеть, какими частями Pulse пользуются. Не отправляются ни идентификатор, ни время, ни содержимое, поэтому счётчик нельзя ни связать с тобой, ни вынуть обратно. | До 13 месяцев в виде дневных сумм. Выключи настройку, и больше ничего не отправится. |
Чего здесь сознательно нет: ни одного значения здоровья, ни одного текста сообщения, ни одного имени из приложения, ни геолокации, ни рекламного идентификатора. Псевдонимный идентификатор остаётся псевдонимом и не даёт анонимности: пара таких показывает нам, что два аккаунта связаны, и это тот самый предел метаданных, о котором сказано ниже.
Модель шифрования
Названа, а не намёком, чтобы с ней можно было спорить.
- Согласование ключей
- Curve25519 через Apple CryptoKit. Каждый партнёр создаёт пару ключей на своём устройстве, и обе стороны напрямую договариваются об общем секрете. Ключевой материал ни в какой момент не проходит через наши серверы.
- Шифрование сообщений
- AES-GCM через CryptoKit, который не только шифрует, но и аутентифицирует: изменённый шифротекст не открывается вовсе, вместо того чтобы расшифроваться во что-то другое.
- Где живут ключи
- Ваш приватный ключ лежит в вашей связке ключей iCloud, привязан к вашему Apple ID и доступен вашим же устройствам. У нас нет копии и нет способа её запросить. Локально закэшированные показатели здоровья лежат в связке ключей устройства в классе «только это устройство», что держит их вне вашей резервной копии iCloud.
- Передача
- Зашифрованные пакеты идут через Apple CloudKit. Пока вы оба держите чат открытым, те же уже зашифрованные байты могут пойти быстрым путём через наш собственный ретранслятор реального времени. Он подписывает и передаёт и не хранит ничего. Запечатанные байты сообщения из чата могут также ехать внутри его push-уведомления, через наш сервер и Google Firebase Cloud Messaging, чтобы телефон партнёра открыл его ещё до запуска приложения; ни тот, ни другой не могут их прочитать, и наш сервер их не хранит.
- Уведомления
- Видимая часть пуш-уведомления намеренно без содержания: фиксированные заголовок и текст, написанные нашим сервером, плюс строка типа, но никогда не само сообщение. Пуш для сообщения из чата может также нести это сообщение в запечатанном виде, как описано в пункте «Передача»; никто между двумя телефонами не может его открыть. Просьба о чём-то личном никогда не написана на экране блокировки, где её прочтёт стоящий рядом.
- Вход в WHOOP
- Ваш телефон общается с WHOOP напрямую. Наш сервер выполняет только обмен токена, потому что WHOOP требует клиентский секрет, а секрет, вшитый в приложение для iOS, читается любым, кто его скачал. Из этого обмена не сохраняется ничего: ни токена, ни идентификатора пользователя WHOOP, ни строки в таблице. Перенаправление приходит на домен, заявленный этим приложением через Associated Domains, поэтому код авторизации не может перехватить другое приложение на устройстве.
Из журнала: Что сквозное шифрование значит для приложения на двоих
Кто ещё что-либо получает
Каждый получатель и то, что он на самом деле получает. Некоторые из них появляются только у тех, кто пользуется определённой функцией.
| Получатель | Что получает | Когда |
|---|---|---|
| Apple | Две разные вещи внутри вашего же iCloud: зашифрованные пакеты, которые Apple открыть не может, и читаемые записи общего пространства, которые может, то есть ваша фраза дня, метка настроения, записи списков просмотра и желаний и день, от которого вы ведёте отсчёт. Плюс доставка уведомлений. И только когда вы ими пользуетесь: Apple Карты (поиск мест, который вы вводите, и район, где вы планируете свидания) и iTunes Search API (название записи списка просмотра, когда телефон ищет обложку). | Всегда. Там и живёт ваше общее пространство. |
| Google (Firebase Cloud Messaging) | Push-токен и заголовок, текст и тип уведомления без содержимого; для сообщения из чата, возможно, и само сообщение, запечатанное сквозным шифрованием, которое Google открыть не может. Firebase Crashlytics тоже подключён, но лишь записывает сбой на вашем телефоне и отправляет отчёт, только если вы нажмёте «Отправить», когда приложение спросит после сбоя: стек вызовов, модель устройства, версию iOS и случайный идентификатор установки, но никогда данные о здоровье, содержимое сообщений или контакты. Аналитика и реклама Firebase в сборке отключены. | Когда вам отправляется уведомление, а после сбоя — только если вы нажмёте «Отправить». |
| GIPHY | Ваши поисковые запросы по GIF. Сама отправленная гифка идёт со сквозным шифрованием, как любое сообщение. | Только пока открыт поиск GIF. Не откроете — ничего не уйдёт. |
| WHOOP | Ваш собственный вход и ваши собственные измерения, которые телефон читает напрямую у WHOOP. | Только если вы подключили браслет, когда выйдет эта поддержка. |
| Fastmail | Письмо, которое вы нам написали. | Только если вы нам напишете. |
Проверено: в обеих кодовых базах отсутствует
- Ни одного аналитического SDK любого рода
- Ни одного рекламного SDK или SDK атрибуции
- Ни рекламного идентификатора, ни запроса на отслеживание, потому что отслеживать нечего
- Нет ни аналитического SDK, ни записи сессий, ни атрибуции. Отчёты о сбоях — единственное диагностическое исключение, и оно названо в таблице выше, а не тихо пропущено в этом списке. Два собственных счётчика из таблицы выше не являются SDK, не несут идентификатора и ничего не отправляют третьим лицам.
- Ни платёжного, ни подписочного процессора
- Ни генеративная, ни языковая модель не пишет и не читает ваши слова — ни в приложении, ни на сервере. Необязательное действие «Перевести» для сообщения использует встроенный перевод Apple.
От чего это вас не защищает
Часть, которую большинство страниц опускает, и здесь она намеренно самая длинная. Ничего из перечисленного не является отчётом об ошибке: это либо осознанный размен, либо известный предел, о котором лучше услышать от нас, чем обнаружить самому.
-
Фраза дня выведена из данных о здоровье, и она покидает телефон
Иначе нельзя: она написана для вашего партнёра. Она едет внутри вашего общего пространства iCloud рядом с меткой настроения и не шифруется отдельно, как переписка, то есть технически Apple способна её прочитать. Мы говорим это прямо, потому что «истолковано на устройстве» легко услышать как «о здоровье не уходит ничего», а верно только первое. Не едет то, что стоит за фразой: ни пульс, ни вариабельность, ни часы сна. Единственный показатель здоровья, способный уехать сам по себе, — календарь цикла: отдельный переключатель, выключенный по умолчанию, со своей строкой в таблице выше.
-
Мы видим метаданные, и шифрование их не убирает
Мы видим, что аккаунт существует, что два аккаунта связаны, что сообщение определённого размера прошло между ними в определённое время, и токен, нужный Apple для доставки. Мы храним минимум и ничего из этого не продаём, но «мы не можем прочитать вашу переписку» и «мы ничего о вас не знаем» — разные утверждения, и верно у кого угодно только первое.
-
Копии в календаре находятся вне шифрования
Если вы отражаете планы в календарь, Pulse пишет обычные записи календаря: названия, время, места и заметки, в читаемом виде. Календарь, синхронизируемый с iCloud, Google или Outlook, хранит их у этого сервиса, и их видят все, с кем вы им делитесь. Pulse спрашивает, прежде чем писать в такой календарь, но когда копия уже там, действуют правила этого календаря, а не наши. Мы говорим это прямо, потому что сам общий календарь зашифрован сквозным шифрованием и читатель обоснованно предположил бы то же о копии.
-
Некоторые общие записи намеренно открыты
Записи списков просмотра и желаний — название, тип, ссылка, статус, а для идеи из реального места ещё адрес и положение на карте — синхронизируются как обычные записи внутри вашего общего пространства, потому что они идут раньше обмена ключами, который защищает переписку. Так же передаётся день, от которого вы ведёте отсчёт. Apple может их прочитать; данных о здоровье в них не бывает. Комментарии и реакции к записям списка просмотра зашифрованы.
-
Apple лежит под всем этим
Ваше общее пространство лежит в зоне iCloud, ваши ключи в связке ключей iCloud, а ваши измерения в Apple Health. Зашифрованные записи непрозрачны для Apple ровно так же, как для нас. Остальная часть общего пространства такой защиты не имеет, как описано в двух строках выше. Пользоваться Pulse означает доверять Apple в этой мере, и архитектура, утверждающая иное, описывала бы другое приложение.
-
Мы не заявляем forward secrecy
Ключ переписки получается из согласования Curve25519 между вашими двумя ключами личности, а не из пошагового «храповика» на каждое сообщение, как у специализированного мессенджера. Поэтому forward secrecy мы не заявляем: закрытый ключ, снятый с устройства, смог бы открыть те сообщения, которые он защищал, а не только следующее. Мы предпочитаем назвать предел, а не позволять словам «сквозное шифрование» нести свойство, которого мы не построили.
-
Ваши ключи зависят от вашей учётной записи Apple
Ваш закрытый ключ лежит в связке ключей iCloud, чтобы до него доставали ваши собственные устройства. Именно это позволяет новому телефону работать без того, чтобы копия была у нас, и это же зависимость: тот, кто управляет вашей учётной записью Apple и может добавить к ней устройство, оказывается там, где мы помочь не в силах, потому что никакого нашего пароля на пути нет. Держите двухфакторную защиту этой учётной записи включённой.
-
Связывание оставляет короткий публичный след
Пока приглашение открыто, запись с псевдонимным идентификатором iCloud, выбранным вами отображаемым именем и коротким кодом доступна другим вошедшим пользователям контейнера iCloud приложения. Коды истекают через 48 часов, а записи вычищаются при принятии, при разрыве связи и при удалении аккаунта. Само общее пространство так не открыто: оно ограничено учётной записью партнёра в iCloud, поэтому подобранная ссылка ничего не откроет.
-
Точку уведомлений защищает ключ, который едет внутри приложения
То есть настоящим секретом он не является. Худший случай: кто-то сможет вызвать появление уведомления без содержания на телефоне, псевдонимный идентификатор которого он и так знает; точка возвращает счётчик доставок и не раскрывает о человеке ничего. Она ограничена по частоте, а её усиление проверкой каждого устройства стоит в списке, но не сделано.
-
Ваши собственные устройства и люди рядом с ними
Кто может разблокировать ваш телефон, тот может прочитать вашу переписку, и это верно для любого мессенджера. Включите блокировку Face ID внутри приложения, если для вас это важно. И точно так же сквозное шифрование защищает канал, а не человека, которому вы сами решили что-то отправить.
-
Партнёр не всегда безопасный человек
Pulse сделан для двух людей, которые выбрали друг друга, и ничто в нём не отличает партнёра, который за вас переживает, от партнёра, который вас контролирует. Если вас вынуждают установить приложение, снова включить обмен или отдать телефон, эту задачу шифрование не решает. Пауза и разрыв связи делаются одним касанием, паузу можно сделать незаметной, и объяснять её вы никому не обязаны.
-
Пауза останавливает то, что будет, а не то, что уже пришло
Пауза останавливает всё новое и может сделать это, не сообщая партнёру. Назад она не дотягивается: фраза или сообщение, которые уже пришли, лежат на его устройстве, и никакая наша кнопка их не вернёт. Разрыв связи убирает общие записи и по той же причине не может очистить чужой телефон. Так ведёт себя любой мессенджер, и знать это лучше до того дня, когда это станет важно.
-
Независимого аудита пока не было
Проверку, из которой собрана эта страница, мы провели сами, по собственному коду, в перечисленные ниже даты. Это больше, чем намерение, и меньше, чем внешний аудит, и назвать это иначе было бы первой нечестной фразой на странице. Независимую проверку мы намерены заказать и поставим здесь её дату, когда это произойдёт.
-
Связь может оборваться без того, чтобы кто-то из вас её оборвал
Pulse следит за общим пространством партнёра, потому что явное прощание можно пропустить: они могут завершить связь, пока ваш телефон офлайн, и без этой проверки устройство навсегда осталось бы «на связи» ни с кем. Поэтому общее пространство, которое остаётся недоступным, со временем трактуется как завершённая связь, а ваши данные остаются. Мы говорим об этом здесь, потому что решение принимает приложение за вас, и потому что однажды мы приняли его совсем неверно: более ранняя версия срабатывала после трёх проверок, примерно через минуту, а так как завершение на одном телефоне убирает ровно то, за чем следит другой, короткий сбой мог разъединить обоих за считанные минуты. Теперь нужно семь непрерывных суток, одно обнаружение обнуляет отсчёт, а то, чего приложение не может определить, включая офлайн, вообще не считается.
Как проверить это самому
Вам не обязательно верить нам на слово, и на iOS по большей части и не приходится.
-
01
Включите отчёт о конфиденциальности приложений
В настройках iOS, в разделе «Конфиденциальность и безопасность», отчёт о конфиденциальности приложений фиксирует, к каким доменам обращается каждое приложение и каких датчиков касается. Попользуйтесь Pulse неделю и прочитайте, что там записано. Вы ищете отсутствие аналитических и рекламных доменов.
-
02
Прочитайте экран разрешений Health
Настройки, затем Health, затем «Доступ к данным и устройства», затем Pulse. Там перечислен каждый тип, который приложение может читать и записывать. Отзовите любой и посмотрите, как приложение продолжит работать с меньшим.
-
03
Посмотрите ярлык конфиденциальности в App Store
Apple требует, чтобы ярлык соответствовал коду, и наш заявляет имя, псевдонимный идентификатор пользователя и токен устройства — всё помечено как функциональность приложения и ничто не помечено как отслеживание.
-
04
Посмотрите трафик сами
Если вы из тех, у кого есть прокси, направьте его на приложение. Вы увидите iCloud, нашу точку уведомлений, наш ретранслятор пока открыт чат, GIPHY если откроете поиск GIF, Apple Карты когда ищете место, поиск iTunes от Apple когда список просмотра ищет обложку, и WHOOP если подключали браслет. Чего вы не увидите, так это измерения.
-
05
Спросите нас о конкретном
Расплывчатые вопросы о приватности везде получают расплывчатые ответы. Конкретный вопрос о конкретном потоке получает от нас конкретный ответ, и если ответ неудобный, он всё равно будет дан.
Когда это проверяли в последний раз
Каждая запись содержит либо проверку выпущенного кода против того, что утверждают эта страница и политика, либо исправление самих утверждений, вместе с тем, что было найдено и изменено.
-
2 июля 2026
Полная проверка обоих репозиториев. Найдено и исправлено: неполный список получателей, утверждение «мы ничего не храним», неверное в отношении записи для уведомлений, и удаление аккаунта, которое эту запись не убирало. Тогда же исправлен ярлык конфиденциальности в App Store.
-
24 июля 2026
Проверка ретранслятора реального времени и двух новых функций. Ретранслятор раскрыт как дополнительный путь передачи, и прямо сказано, что вопрос дня не шифруется сквозным шифрованием, как переписка.
-
29 августа 2026
Проверка общего списка просмотра и импорта из WHOOP. WHOOP добавлен как поимённо названный получатель для тех, кто подключает браслет, и задокументировано, что превью ссылок и обложки запрашивает только устройство отправителя.
-
13 сентября 2026
Проверка текстов всего сайта, а не новая проверка кода, поэтому дата выше не изменилась. Исправлены утверждения, ставшие шире архитектуры: фраза дня, описанная так, будто она остаётся на устройстве; вопрос дня, названный на странице возможностей сквозно зашифрованным, как переписка; перечень серверных данных, названный полным, но без идей функций и токенов Live Activity; и ответ про судебные запросы, из которого следовало, что у нас нет вообще ничего. Взгляд Apple на общее пространство описан прямо, а к пределам добавлены forward secrecy, учётная запись Apple, давление со стороны близкого человека и пауза.
Нашли что-то?
Ответственное раскрытие приветствуется, и мы указываем автора. Напишите на [email protected] с деталями, достаточными для воспроизведения, и дайте нам разумное время до публикации. Платной программы вознаграждений у нас нет: мы слишком малы, чтобы обещать это честно, но и юриста к вам не отправим.
Прочитайте остальное.
Политика конфиденциальности несёт юридическую версию всего, что выше, включая ваши права и порядок их реализации.