Как стать автором
Обновить

Лень и одноразовые пароли Yandex.Деньги

Время на прочтение2 мин
Количество просмотров717
Несколько месяцев назад на Yandex.Деньгах ввели дополнительный альтернативный метод защты.
Вместо платёжного пароля предлагается использовать либо одноразовый блокнот в виде картинки, либо eToken.

Сначала eToken'ы не выдавали простым смертным, а вместо этого, простым пользователям предлагаются чудо картинки с кодами.
Сейчас же eToken продаётся за не очень малые деньги… но для меня он не привлекателен по следующим причинам:

  • Когда сядут батарейки нужно снова заморачиваться с «любимой» почтой РФ
  • Его нужно носить с собой в сумке, чтобы он был на готове
  • К сумке нужно тащить свою пятую точку каждый раз, чтобы достать его и ещё раз, чтобы убрать обратно


Поэтому для себя я выбрал «одноразовые картинки» и пока отдаю предпочтение этому способу защиты.
Предполагается, что картинка будет распечатана на принтере… и её нужно таскать с собой… снова в сумке (см. выше).
А если нет принтера?.. Таскать картинку с собой?
Не айс.
Чтобы не поднимать свою пятую точку со стула, не отрываться от компьютера, и сохранить намёк на безопасность, было придумано следующее решение.

Нам понадобится Terminal, Git-репозиторий и пара Perl-скриптов (тестировались на Mac OS X, но должны работать на любом *NIX).



Алгоритм таков:

Загрузите следующие Perl-скрипты.
Распакуйте их в секретную папку.

При получении новой картинки, вы её активируете на сайте, и запускаете загрузчик (load.pl). Далее, вводите строка за строкой все коды.
На 2-м проходе загрузчик верифицирует ввод и предлагает скорректировать ошибки.
Формально, коды с вашей картинки сохраняются в текстовом виде. Предыдущая база сохраняется в папке old (на всякий случай).
Эта процедура выполняется при получении новой картинки и занимает пару минут.
Зато потом не придётся тыкаться глазами и пальчиком по табличке…

Когда Яндекс запрашивает код, вы запускаете скрипт key.pl — на вход ему даёте коды от Яндекса, а на выходе получаете 3 пары букво-цифр для ввода в ячейки яндекса. Скрипт способен распознать входные значения как с пробелами так и без.

Пример работы скрипта:

MBP15: /Volumes/aVerySecureDisk/finances/yandexMoney $ ./key.pl enter query: a1b2c10 yh yz dd

Вы можете хранить скрипты и базу в папке на некотором 10 Gb Sparse-диске (шифруемые подключаемые разделы Mac OS X), который легко создать при помощи Disk Utility — главное не забудьте включить шифрование AES 256.

В папке инициализируете Git репозиторий и помечаете базу как небезопасную для хранения на внешнем сервере:

.gitattributes:

*.db filter=private
(см. мою статью про шифрование секретных файлов в Git: habr.ru/blogs/Git/95481)

Вот и всё! Теперь, можно «спокойно» засылать эти данные в удалённый репозиторий. Исходную картинку можно уничтожить — можете даже её не распечатывать.
Осталось придти домой и получить клона этих данных.
База синхронизируется где бы вы её не обновили дома или на работе.
Яндекс-помощник в консоли всегда с вами, никуда вставать не нужно, и не придётся нагружать почту РФ.

Как можно улучшить метод?

Можно оснастить загрузчик автораспознаванием — прикрутить к нему OCR.

Можно также написать плагин к Safari или Firefox, который будет автоматически из базы вытаскивать ключ на запрос Яндекса, но это уже откровенное преступление против безопасности.
Теги:
Хабы:
Всего голосов 8: ↑3 и ↓5-2
Комментарии12

Публикации