Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Леонид Каганов ([info]lleokaganov)
@ 2015-02-09 10:04:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:обзор

удобнейшая авторизация от TeddyId.com
это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2015/02/09_teddyid.html

Сегодня расскажу про крайне полезный сервис teddyid.com, который я изучил и привинтил к движку в своем блоге. Это - двухфакторная система авторизации, которая позволяет забыть о паролях (и их утечках) не только на сайтах, где эта система установлена (например, на моем), а вообще на любых сайтах интернета (плагин к браузеру). А для банков, организаций и юрлиц это еще специальный сервис: цифровые подписи, ведение некоторой документации и учета.

Идея в том, что одним из гарантов индентификации является не только компьютер, с которого производится действие, но и личный смартфон, с которым система в нужный момент выходит на связь и запрашивает подтверждение (а также сайт может задавать по API и произвольные вопросы, получая от пользователя ответ со смартфона). Забегая вперед, скажу, что в в такой системе важна реализация и юзабилити, и здесь это на высоте: все происходит быстро и удобно.

предыстория

Существующая система паролей в интернете, мягко говоря, устарела. Время от времени где-то чей-то аккаунт ломают, и пользователь начинает громко жаловаться на "подобранный" пароль. Чего в реальности практически не бывает, потому что пароли уплывают после взлома компьютера или методами социальной инженерии. Но дело не в этом. Разработчики систем, напуганные жалобами пользователей, начинают изобретать методы усложнения паролей: и чтоб не менее 8 символов, и чтоб разного регистра буквы, и чтоб была хотя бы одна цифра или спецсимвол... В результате пароль получается таким, что запомнить его нереально (особенно если активно живешь в сети и постоянно где-то регистрируешься). Соответственно, пользователь начинает запоминать пароль в браузере, записывать на бумажке над рабочим столом, соответственно риск угона возрастает... замкнутый круг.

С проявлением мобильников в качестве личного аксессуара некоторым (в первую очередь платежным системам) стала приходить в голову идея двухфакторной авторизации - когда при логине система просит подтверждение с использованием личного мобильника. Однако это обычно оставалось на уровне "дождитесь SMS с кодом и введите его сюда".

Создатели проекта teddyid.com пошли дальше - они предложили избавиться от паролей вообще, забыв их как страшный грех.

В настоящее время система teddyid.com предлагает несколько полезных вещей: для простого пользователя, для разработчика сайтов и для корпорации. Расскажу по порядку.

TeddyId для рядового пользователя

Меденджер паролей от TeddyId работает для любого сайта - даже если сайт ничего не знает о TeddyId. Смотрим короткий ролик:

Как это устроено технически? Плагин к браузеру, который взаимодействует с приложением teddyid на смартфоне. Плагин активизируется при наличии на странице любого сайта формы INPUT/password ввода пароля. При первом вводе плагин предлагает запомнить пароль в системе teddyid (можно отказаться). Далее пароль преобразуется современными криптографическими методами на две шифрованные части. Одна часть запоминается на сайте teddyid, другая - в локальном хранилище браузера и копия в смартфоне. Всё, пароля больше нет нигде. Заполучив лишь одну часть, расшифровать его нельзя. С тех пор при посещении этого сайта плагин будет предлагать ввести пароль через teddyid - достаточно нажать "да" на смартфоне, и пароль введен (собран из двух кусков, дешифрован и подставлен в форму). Что будет, если вы переустановили браузер, Local Store очистилось и половина шифропароля утерялась? Не проблема, она сохранилась в смартфоне, всё будет восстановлено при логине. Что будет, если украли смартфон или он сменился? Не проблема, на сайт teddyid можно войти по-старинке, через код, а в своем аккауте отключить старый смартфон и активизировать новый- данные снова запишутся. Ну, разумеется, если одновременно убить и браузер и смартфон, пароли будут утеряны, но это ж надо постараться.

Я поставил себе, разумеется, и это оказалось ОЧЕНЬ удобно. Особенно меня бесил сайт Aliexpress, который разрывает сессию через полчаса после ухода со страницы, и требует вводить пароль заново.

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

1) Установить на свой смартфон приложение, оно есть под все мыслимые мобильные платформы (а для безнадежно старинных есть даже java-приложение):

    

2) Завести аккаунт на https://teddyid.com Там все просто. Причем, со смартфона достаточно из приложения сфоткать QR-код на экране, и все само сконнектится.

3) Установить в браузер плагин Teddyid. Плагины тоже есть для любого браузера, кроме Opera (и тот скоро будет): Chrome, Firefox, Explorer, Safari.

Плагин первые 30 дней бесплатный, далее если понравился, его можно одноразово купить за 0.99$. Этот плагин лишь одна из вариаций. Система логина для сайта (например, моего), о которой пойдет речь ниже, бесплатна в непромышленных количествах.

TeddyId для разработчика сайтов

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

<script src="https://www.teddyid.com/js/teddypass.js"; defer></script>

И смело рисуйте на странице свою форму ввода пароля - браузер посетителя отреагирует так же, словно в нем установлен плагин, описанный в предыдущем разделе.

Способ со вставкой одной строки прост и эффективен, но для серьезного проекта конечно есть более грамотный: API авторизации. Оно подробно описано и не сложно в реализации (есть и готовая библиотека PHP, но я по привычке рисовал код сам).

Помимо простого логина, API позволяет еще много интересных вещей. Например, делать запросы на мобильник и получать ответ "да" или "нет". Что позволяет делать безопасные вещи в разных сетевых проектах. "Вы действительно хотите удалить свой фотоальбом или маленький братишка играется у забытого ноутбука?" - да, нет? "Вы хотите открыть свой архив личной переписки или это жена включила комп и открыла ваш аккаунт в соцсети?" - да, нет? Невероятное количество проблем можно было бы решить, будь подобная настройка (по желанию) на всех крупных проектах.

У меня сайт сейчас умеет через TeddyId (если его подключить и выставить соответствующие галочки в настройках):
- подтверждение любых изменений в личной карточке (смена пароля, юзерпика - кстати, загрузку и смену юзерпика я вчера сделал тоже, welcome :)
- подтверждение входа в архив личных сообщений (жена не должна лезть в переписку мужа)

А также оповещения:
- оповещение о новом личном сообщении
- оповещения об ответе на ваш комментарий
- оповещения об ответе автора блога на ваш комментарий

В оповещениях мил тот факт, что они приходят на смартфон, когда вы не за компьютером. Отвечать на них "да" или "нет" не надо. При этом надо учесть, что оповещения - штука ненадежная, они могут не прийти вообще, а при появление следующего оповещения предыдущее затирается. Кроме того, оповещения не личные, а массовые ("всем читателям: вышла новая заметка!") делать нельзя. Во-первых, это запрещено политикой, например, Apple. Во-вторых, достаточно во-первых, и сервис TeddyId массовым рассылкам рад не будет, отключат.

Для иллюстрации примера запроса API я сделал вот эту кнопку:

<input ... >

Каждый, кто залогинился на моем сайте через teddyid, может нажать эту кнопку и увидит вышеописанную пикантную фотку. Остальным - радость недоступна :)

Чтобы залогиниться на моем сайте через teddyid, просто откройте личную карточку и нажмите кнопочку "добавить" в строчке "teddyid". Это дополнительный способ логина в добавок к местному паролю и соцсети (можно логиниться любым из трех методов).

Для владельцев моего движка - обновитесь с lleo.me/dnevnik (на остальные источники я пока обновления не накатил), а в config.php добавьте две строки: номер учетки, полученный при регистрации вашего сайта в личном кабинете на teddyid.com ("узлы"-"настольное приложение") и секретный ключ, который вы вбили там же при регистрации, у меня это так:

$teddyid_nodeid='488';
$teddyid_secretkey="Vereshagin, uhodi s barkasa 12345!";

TeddyId для организаций

Поскольку основная монетизация проекта идет с организаций (сервис бесплатен для простых пользователей и сайтов с количеством регистраций до 1000 в сутки), для организаций здесь сделано особенно много - системы документооборота, ведения документов, учет сотрудников и цифровая электронная подпись. Что тоже несказанно удобно, потому что все это работает по двухфакторной системе через смартфон. Для банков, организаций, офисов эта система будет очень полезна, потому что не только решает вопросы безопасности, но и дает удобный деловой сервис. Я зарегистрировался там как ИП, осталось пройти подтверждение:

Интервью с разработчиками

В процессе освоения системы я много переписывался с разработчиками и даже слал предложения и идеи разной степени глупости. В итоге я даже попросил Антона Чурюмова ответить на несколько вопросов специально для блога:

Кто разработчики?

Команда небольшая, всего 4 человека сейчас.

Как пришла идея?

Меня давно достали пароли, запоминать их невозможно, а процесс копирования из парольного менеджера был слишком трудоемким. В то же время я работал тогда над платежным агрегатором Platron.ru, где требовалась усиленная безопасность, которую не может обеспечить даже самый сложный пароль. Хотелось сделать двухфакторную защиту, но без неудобств, характерных для существовавших тогда реализаций двухфакторной защиты. В итоге придумал ту схему, которая легла в основу Teddy ID. Но главная причина, почему идею захотелось реализовать (одного наличия идеи для этого мало), это то, что нам удалось разрушить стереотип о том, что улучшение безопасности возможно только ценой уменьшения удобства. Нам удалось убить двух зайцев - усилить безопасность и сделать логин удобнее. Мне нравятся такие моменты когда рушится старый стереотип.

Столкнулись ли с какими-то трудностями в реализации?

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

Что-то планируется добавить в проект в будущем?

Планируем решить проблему логина на том устройстве, где установлено приложение. Множество небольших изменений, которые улучшат user experience в некоторых сценариях использования. Будем смотреть за пользователями и адаптироваться под то, что им нужно.

Каким видится основной пользователь?

Компании, использующие облачные сервисы (Google Apps, Salesforce, ...) и желающие иметь удобную двухфакторную защиту доступа к корпоративным данным для своих сотрудников. Также компании, использующие разделяемые между несколькими сотрудниками пароли для доступа к другим сервисам и желающие навести порядок в этом хозяйстве (прекращение доступа для уволенных сотрудников, автоматическое предоставление доступа новым сотрудникам).

Насколько надежно защищен сервис от взлома, DDOS-атак, аварий? Сервера только в России?

Сервера только в Германии :) Чтобы уберечься от аварий дата-центров, мы держим два одинаковых сервера в разных дата-центрах. Проходим регулярное сканирование на уязвимости, но в целом строим архитектуру так, чтобы как можно меньше интересной для взломщиков информации хранилось у нас.

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



это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2015/02/09_teddyid.html