...

пятница, 27 декабря 2013 г.

Авторизация с помощью QR

Приветствую тебя, уважаемый читатель.

Пришла ко мне как-то идея — сделать вход на сайт с помощью QR-кода. Поиск в сети дал несколько результатов:



  1. SQRL

  2. и другие — здесь уже провели поиск, поэтому не буду переписывать)


В начале 2012 года похожий эксперимент был даже у Google (для двухфакторной аутентификации), но не прижилось.



Всё это сложные хитрые клиент-серверные реализации и они, конечно, очень крутые. А вот ключевой момент моей yet another genius идеи:



Пользователь заходит на сайт в современном браузере (где поддерживаться камера и камера есть) и подносит QR-код к камере устройства. А в коде закодированы… правильно! — данные для входа (пара логин-пароль)… просто так, в незашифрованном виде, обычным текстом. Код считывается на стороне клиента javascript'ом, данные вставляются в форму тем же javascript'ом, форма авторизации отправляется javascript'ом. По большому счёту можно использовать и другие виды штрихкодов, но QR, как мне кажется, наиболее популярен (широко распространён) для подобных задач.





И да, применять это можно не только в вебе, но и в любых непонятных ситуациях, когда требуется ввести логин/пароль/что-то с клавиатуры, а у вас есть камера и QR-код.

Наверное идея звучит глупо. Она слишком проста. Но позвольте мне рассказать почему она имеет право на жизнь.



Кому это НЕ нужно




Вам это не нужно, если:


  • ваш логин «login» и пароль «password»/«qwerty»/«12345» и вы используете их на Однокласснкиах, ВКонтакте и вообще везде

  • вы всегда пользуетесь интернетом с одного компьютера и все логины/пароли для всех ресурсов у вас сохранены в браузере

  • вам это не интересно




Преимущества перед ручным вводом




Главное преимущество — ручного ввода нет. Скорость ввода пароля этим способом ~1 секунда при любой допустимой длине пароля

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


  • вы параноик и используете разные пароли (а может быть и логины) для ВКонтакте, Одноклассники, Twitter, Google, Yandex, Mail.ru, StackOverflow и 50-ти других ресурсов

  • у вас 2-3 ОЧЕНЬ безопасных пароля длиной более 30 символов и их нужно часто вводить

  • вы пришли к другу и хотите войти на сайт *вписать название сайта*, а у друга ru.wikipedia.org/wiki/Das_Keyboard

  • у вас есть необходимость часто входить на большое кол-во разных ресурсов и вводить множество разных логинов/паролей… Ну а вдруг!


Можно, конечно, использовать отпечатки пальцев, USB-токены, одноразовые пароли, -NFC-теги-, но для всего этого нужна *модификация серверной части* или аппаратные модификации клиента и др. В случае считывания QR-кода прямиком в поля ввода сервера получает всё те же логин и пароль. Камера и современный браузер есть на большинстве современных ноутбуков/планшетов/ПК.


Что ещё?




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

— есть множество приложений, хранящих пароли в базе данных, защищённой мастер-паролем. Это классно, но эти приложения показывают вам пароль в виде текста и вам нужно ввести его руками. Можно отображать сохранённый пароль в виде QR-кода

— QR-код можно -выложить чёрным жемчугом на платиновой пластине- распечатать на бумажке/пластике/ и прикрепить его как стильный брелок/связку брелоков

— QR-код можно генерировать при регистрации где-либо, а ваше приложение-менеджер-паролей его считает и сохранит

— можно генерировать довольно сложные одноразовые пароли и кодировать их в QR. Например, для той же двухфакторной авторизации

Демо




Т.к. не особо силён в javascript, то для проверки концепции стянул скрипты, выполняющие задачу чтения кода с камеры, с сайта webqr.com/ (спасибо им) и слегка модифицировал их. Посмотреть можно тут

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




Бесспорный и главный плюс классических паролей — они хранятся в голове и набираются руками. Главная опасность вышеописанного способа — ваши QR-коды стали доступны злоумышленнику. Но если вы, как мой папа, храните все пароли в файле «Мои пароли.doc» на рабочем столе, то qr-коды даже над>жнее — их не прочитать глазами.

Всё




Спасибо за внимание. Ожидаю критических комментариев, указывающих на фатальные недостатки способа. Или восхищённых возгласов — «Как же я сам до этого не додумался!»?

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


1 комментарий:

  1. Действительно, QR-коды становятся неотъемлемой частью нашей маркетинговой платформы. Даже наша финансовая система полагается на это.
    Я также нашел отличный инструмент для сканирования QR-кода, где вам не нужно устанавливать никаких приложений. Это бесплатный онлайн-инструмент с некоторыми замечательными функциями.
    Вы должны проверить этот инструмент.
    Считыватель QR-кода

    ОтветитьУдалить