Подтвердить что ты не робот

GoogleAuthUtil как проверка подлинности устройства для iOS, чтобы проверить, что запросы исходят от устройства Apple

Google Auth Util позволяет разработчикам Android проверить, что запросы, полученные их серверами, поступают с устройства Android.

Устройство получает токен от Google на основе учетной записи Google, связанной с устройством, затем запросы с устройства отправляются с этим токеном на сервер, где сервер затем запрашивает у Google, действительно ли токен действителен. Любые ключи хранятся вне источника приложения, поэтому злоумышленники не могут взломать приложение и получить доступ к закрытым ключам и запросам fudge на сервер.

Я искал какое-то время, и кажется, что Apple не предлагает ничего подобного, но я надеялся, что есть что-то функционально подобное, которое я мог бы использовать для iOS.

4b9b3361

Ответ 1

Update

Хотя подразумеваемое предположение в вопросе кажется разумным, на самом деле это не так. Дальнейшие чтения источников Google показывают, что целью Auth Util (и более поздней Firebase) является аутентификация пользователя и защита сервера. Учитывая, что сервер видит только сетевой трафик, он может реплицировать трафик с другого клиента.

Кроме того, определение Android довольно размыто, поскольку OEM модифицирует базовую ОС в соответствии с их потребностями.

Вероятно, это неверно

Один из вариантов - использовать Apple Push Notification. Вы можете зарегистрировать устройство и указать уведомления для него. Когда ваше приложение загружается, он отправляет запрос на сервер с его маркером и получает то, что по существу является куки файлом сеанса через APN.

Одно предупреждение: он не зашифрован. Вы можете легко решить эту проблему, отправив случайно запрограммированный симметричный ключ в запросе. Получаемый файл cookie будет зашифрован на сервере и дешифрован с использованием того же ключа на устройстве iOS.

Это решает проблему хранения ключей в источнике и доказывает, что запросы поступают с устройства iOS.

Конечно, это можно упростить, создав сертификат, сохранив его в цепочке ключей и отправив секретный ключ на сервер для хранения во время регистрации. После первоначальной регистрации и проверки с использованием APN последующие сообщения могут быть подписаны с использованием открытого ключа id + сертификата устройства.

Одна из последних проблем заключается в том, что APN также может использоваться для регистрации устройств OSX. Мне не удалось выяснить, как их исключить (пока).

Отказ от ответственности: это был долгий день написания спецификаций. Я достаточно уверен в механизме первоначальной регистрации устройства iOS с использованием APN. Возможно, я ошибался в части шифрования. Если да, нежно промойте, пожалуйста. Забастовкa >