[Из песочницы] Авторизация без авторизации: не собираем персональные данные

Новости информационной безопасности




[Из песочницы] Авторизация без авторизации: не собираем персональные данные

В эпоху тотального слива данных интернет-гигантами и уголовного преследования в цифровой среде пользователи боятся оставлять какую-либо информацию о себе. Тем более, если речь идет о VPN-сервисе, где вводить свои персональные данные пользователь не хочет даже при регистрации, а обеспечивать доступ к сервису на различных платформах нужно быстро и без лишней информации. Мы создавали наш сервис GuruVPN под девизом “народный VPN”, поэтому было очень важно сделать максимально простой и анонимный способ установки и верификации пользователей.
nkzdtf0cxzj31cjo_u2kvg3zknk.png
В этой статье хотим поделиться нашим опытом реализации системы авторизации пользователя на различных платформах. Это уникальное решение позволило нам не собирать и не хранить персональные данные пользователей. Совсем.

Предыстория


На первом этапе нашей командой было решено, что приложение будет иметь классическую систему авторизации/регистрации: Email или телефон, дабы пользователь мог оформить и оплатить подписку с одного устройства и активировать доступ на всех девайсах.

Выбрали формат, начали писать документацию, но в какой-то момент встал вопрос: как объединить данные подписок в App Store и Google Play, чтобы была возможность синхронизировать их на обеих платформах? Причем сделать это так, чтобы установить общих срок подписки, да к тому же на выходе система не противоречила нашему позиционированию “не собирать данные о пользователе”.

Поэтому мы начали разрабатывать систему, которая соответствовала бы следующим пунктам:


И наша команда нашла уникальный формат — для авторизации на десктопах была разработана специальная система уникальных (временных) токенов.

Авторизация


В чем секрет такого решения?

Пользователю нужно установить приложение на свой смартфон, безопасно и быстро оплатить подписку, и с помощью QR-кода в одно действие авторизовать подписку. Без учетных данных, логина и повторной покупки доступа.

Как это работает у пользователя



Как это работает в действительности


l-yqbmpp3clsdach5ailhmrs7zk.png

  1. При первичной авторизации десктопное приложение запрашивает временный токен;
  2. В базе автоматически генерируется временный токен и отдаётся декстопному приложению. Для максимальной безопасности данных время жизни нашего токена — 15 минут;
  3. Десктопное приложение выводит на главный экран QR-код и токен в открытом виде для мобильного приложения;
  4. Мобильное приложение сканирует QR-код и распознает введенный вручную пользователем код и отправляет его в API-запрос на генерацию подтверждения устройства юзера;
  5. Десктопное приложение запрашивает разрешение у сервера юзера, к которому привязан токен, если привязка существует — API без проблем отдает id и токен для авторизации.

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

Как это работает в магазине мобильных приложений. Например, в App Store


На самом процессе внедрения in-app покупок подробно останавливаться не будем, на Хабре о ней уже много писали.

На первом этапе происходит проверка квитанции и статуса подписки на сервере, проверяются параметры запроса. При успешной проверке в приложение возвращается статус подписки и токен сессии.

После валидации чека запускается алгоритм:

uwcbzd6olr9vm_4adprmvglzeei.jpeg

Результат


Процесс авторизации проходит очень просто и быстро: в среднем установка и авторизация приложения на десктопе занимают всего пару минут и требуют от пользователя минимальных усилий. В проекте, как и планировали, получилось реализовать систему встроенных покупок в кроссплатформенном формате, при этом сохранив полную анонимность данных пользователей, что для VPN-сервиса является очень важным фактом. И что важно, мы смогли реализовать процесс таким образом, чтобы он полностью соответствовал духу проекта — “приложение для народа”.

Дата: 2018-10-11 12:21:56

Источник: https://habr.com/post/426079/

разработка под ios,информационная безопасность,разработка мобильных приложений,встроенные покупки,vpn-сервис