Приветствую тебя, уважаемый читатель.
Пришла ко мне как-то идея — сделать вход на сайт с помощью QR-кода. Поиск в сети дал несколько результатов:
В начале 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-коды даже над>жнее — их не прочитать глазами.
Всё
Спасибо за внимание. Ожидаю критических комментариев, указывающих на фатальные недостатки способа. Или восхищённых возгласов — «Как же я сам до этого не додумался!»?
Автор: solo12zw74
QR-коды наполняют нашу жизнь. Их можно найти практически на любом чип-паке или новой коробке для наушников. QR-Barcode Scanner – удобный и функциональный сканер QR-кода, с помощью которого вы можете узнать цену конкретного продукта, прочитать визитную карточку, URL-адрес веб-сайта и т. Д. Если вы не хотите усложнять себе жизнь и ищете для простого сканера QR Code Reader – отличное решение. QR Code Scanner – это приложение для чтения QR-кодов с помощью основной камеры вашего телефона.
https://dnschecker.org/qr-code-scanner.php