Мы рады представить сообществу сервис PushAuth, который позволяет Вашим клиентам авторизироваться с помощью PUSH-сообщений на мобильном устройстве!



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


Как возникла идея?


Мы используем очень много сервисов: email, социальные сети, CRM-системы, системы контроля доступа, клиент-банки и тд. У каждого из сервисов, как правильно, для доступа необходимо использовать логин/email и пароль. Можно уже сделать вывод, что:


  1. Практически у каждого из нас есть email.
  2. Пароли в большинстве случаев везде одинаковые. (Будем считать, что мы не используем сторонние сервисы, такие как 1password и другие)

Исходя из двух пунктов, хотелось:


  1. Использовать этот один email для авторизации.
  2. Не использовать пароли вообще.

Что из этого вышло?


Мы в мобильных приложениях для регистрации не используем паролей вообще. Да, нет необходимости запоминать ещё один пароль. Для регистрации/авторизации в мобильном приложении достаточно ввести только email, на который прийдёт письмо со ссылкой для подтверждения действия. После следующего ввода email — Вы автоматически войдёте в приложение без регистрации.


Какие виды авторизации?


Сейчас доступно два основных вида запросов на авторизацию:


  1. Push вопрос на авторизацию, в котором клиенту необходимо дать ответ: Да или Нет. Для данного способа доступен сервис routing, о котором чуть ниже.
  2. Безопасный Push-код, которые владелец сервиса сам отправляет в мобильное приложение клиента по средству сервиса PushAuth.
  3. QR-авторизация, которая позволяет сканировать код мобильным приложением клиента и пройти авторизацию. Данный способ уже на стадии закрытого тестирования мобильными приложениями и в ближайшее время так же станет доступен.

Мобильные приложения


  • Для доставки PUSH-сообщений на Android & iOS мы используем FireBase Cloud Messaging. Все данные передаваемые от мобильного приложения к серверу PushAuth подписываются HMAC SHA-256, персональными приватными ключами.
  • Мобильное приложение имеет дополнительно защиту PIN-кодом (TouchID-паролем), что повышает уровень безопасности от несанкционированного доступа.
  • Мы планируем разрабатывать SDK, которое позволит использовать функционал API в Ваших мобильных приложениях.
  • Клиенты могут иметь сразу 10 устройств, на которые смогут прийти PUSH-запросы. Ответив на одном из устройств, на остальных устройствах ответы на Push игнорируются. Мы планируем прятать Push-сообщения на других устройствах при ответе на одном.


Push-вопрос



Безопасный Push-код


Приложения уже доступны:



Backend



Для владельцев сервисов доступна детальная статистика об статусах авторизации их клиентов. Вы можете создавать для каждого сервиса свой отдельный Application и следить за его использованием. Кроме того, Вы можете настроить Web-хуки, которые будут отправлять данные об авторизации:


  • QR-кодов
  • Push-запросов
  • TimeOut ответов клиентов


Где это можно использовать?


CRM


Начнём наш полёт фантазии с IT-сервисов, например тех же CRM-систем, где есть необходимость подтверждать действие сотрудника. Например, благодаря сервису routing, возможно сделать так, что для подписания документа, необходимо подтверждение руководства. Таким образом картина в целом выглядит так:


  1. Сотрудник инициирует действие и получает PUSH-запрос и отвечает Да.
  2. Его непосредственный начальник получает PUSH-запрос и отвечает Да.
  3. Выше стоящий руководитель получает PUSH-запрос и отвечает Да.
  4. Результатом всех действий будет Да

Если на каком-то этапе кто-то ответит Нет, то следующее вышестоящее звено не получит PUSH-запрос и общим результатом запросов будет ответ Нет


Выше мы описали работу сервиса routing с очерёдностью. Но данный сервис возможно использовать и без очерёдности. Это означает, что все звенья цепочки (сотрудники) получат одновременно PUSH-запрос. И только если все из них ответят положительно, только тогда общий результат запросов будет положительным.


Web-site


Двух-факторная или простая одно-факторная авторизация на сайте может упростить или обезопасить доступ к внутренним ресурсам. Например для доступа к web-панели администратора того же WordPress, когда Вы даёте доступ своему подрядчику/разработчику и хотите строго контролировать его по средству Push-запросов авторизации.


OS


Используете SSH/telnet доступ? Либо хотите открывая крышку ноутбука получать запрос об авторизации? Тогда этот сервис будет просто идеальным вариантом.


Инженерия и оборудование


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


Безопасность



Это самый важный вопрос в этом сервисе. Стоит обратить на такие вещи, как обмен данными между Сервисом пользователя <--> Сервер PushAuth <--> Приложение клиента.
Все данные передаются over HTTPS (TLS), с подписью HMAC, алгоритмом SHA-256. У каждого клиента и пользователя сервиса есть своя пара Public & Private Key. Публичный ключ в нашем случае необходим для идентификации в общем сетевом хранилище и может передаваться в открытом виде. Приватный ключ передаётся надёжным способом. В случае мобильного приложения — все ключи передаются только через APN/GCM. Таким образом мы обеспечиваем дополнительную защиту на уровне сертификатов данных сервисов.


API и библиотеки


Мы описали детальное API, для работы с сервисом. Генерация и отправка запроса, получение ответа и декодирование данных. Всё доступно по ссылке.


На данный момент одна из основных задач — это написание библиотек для работы с сервисом для снижения порога вхождения пользователями сервиса. Поэтому сейчас уже доступны:



Мы нуждаемся в: Python, Go, Ruby, Node, .NET — библиотеках. А так же в PHP, фреймворк-пакетах, напр под WordPress, Laravel и другие. Для авторизации в Linux через SSH/Bash LogOn, необходим so-модуль.


Если Вы заинтересованы помочь проекту — мы будем рады предоставить PREMIUM 6 month account.

Комментарии (11)


  1. Fractalzombie
    08.09.2017 22:27

    Мог бы помочь с laravel, единственное нужно тз.


  1. Akuma
    08.09.2017 23:23
    +2

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

    В остальном идея интересная, особенно с подтверждением от руководства.

    Тарифов нигде не нашел.


  1. Pilat
    10.09.2017 03:01

    Основное заблуждение — что у всех есть email. Точнее есть-то он есть, но не пользуются им домохозяйки. А вот SMS получать умеют. PUSH сообщения похожи на попытку заменить SMS, но не проще ли поставить Viber?
    "Приватный ключ передаётся надёжным способом" — это каким? И зачем его куда-то передавать?
    Вы написали "мы обеспечиваем дополнительную защиту на уровне сертификатов данных сервисов" — а кто их обеспечивает?


    Сервис потенциально интересный, но он, как мне кажется, слишком упрощает понятие авторизации (аутентификации). И это в то время, когда всё движется к интернету по паспорту. Сервис нужный, но без Firebase и желательно полностью на территории России (во избежание сюрпризов).


    Режет глаза выражение "по средству". Такого в русском языке нет, есть "посредством" .


    1. rustem_ck Автор
      10.09.2017 09:18

      1. Скажите, чем лучше Viber в плане Push? Он ведь так же получает сообщения через Push (когда приложение в бэкграунде), или я ошибаюсь? Разве там есть API именно для авторизации, кодов, TTL запроса авторизации или сообщения?
      2. Надёжность сертификатов обеспечивают APN, GCM, если Вы о Push.
      3. А почему «без firebase» cloud messaging?

      PS. Спасибо за замечания.


      1. Pilat
        10.09.2017 10:39

        1. Viber лучше тем что он есть, он известен, и он стоит на многих телефонах. Ведь половина того что делает Ваш сервис — удешевляет посылку SMS сообщений с контрольным кодом, плюс очень сомнительный сервис PUSH с ответами да/нет.
        2. Всё же непонятно, о каких сертификатах идёт речь, если приватне ключи генерируются не на телефоне.
        3. Я имел ввиду проблемы с персональными данными.


  1. slutsker
    10.09.2017 05:41

    Интересное решение, молодцы, желаю успехов.


  1. methlab
    10.09.2017 21:04

    Автор, в чем разница между авторизацией и аутентификацией?)


  1. ozonar
    11.09.2017 11:55

    — Чтобы воспользоваться этим сайтом, я должен поставить какое-то левое приложение с сотней загрузок на телефон? Ой, а есть аналоги такого сайта?

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


    1. rustem_ck Автор
      11.09.2017 12:01

      Не совсем понятно, что значит «левое приложение с сотней загрузок на телефон», объясните.


      1. ozonar
        11.09.2017 13:30

        Я говорю об этой колонке на сайте Google Play:

        Пока там не будет миллиона-другого установок приложение для меня будет «левым», и установка его будет нежелательна, потому что внутри этого приложения может быть вообще что угодно.


        1. rustem_ck Автор
          11.09.2017 13:33

          Вы правы, стОит подумать о платной накрутке количества установок и внедрения в приложение чего-угодно :)