vPass: страничка на Javascript для максимума безопасности и минимума мучений при работе с паролями

    Уважаемые Хабраюзеры,

    позвольте представить вам микро-веб-приложение, которое я создал для решения своей собственной проблемы — сделать так, чтобы работа с моими паролями в Интернете была более безопасной и менее трудоемкой. Просто я приболел, и чтобы не валяться без дела, решил испытать себя и за 24 часа сделать веб-сервис, который не стыдно миру показать. Плюс еще денек ушел на написание текстов.

    Сам генератор

    Информация и видео-демка

    image

    Вкратце:
    • вам нужно запомнить один «мастер»-пароль, и vPass генерирует уникальный пароль на его основе, для каждого сайта.
    • vPass генерирует бессмысленный набор букв и цифр (по умолчанию 12 символов), которые практически невозможно угадать.
    • vPass сделан для быстрой работы с клавиатурой. Введите мастер-пароль, Ctrl-C, Ctrl-W, готово!
    • vPass не «хранит» ваши пароли (и вообще ничего не хранит). Ваш пароль никуда не передается. vPass не обменивается данными с сервером — просто скачивает html-страницу в браузер.
    • Работает на любой платформе с веб-браузером. Windows, Mac OS X, Linux, Android, iOS, Windows Phone, webOS, и любая ОС будущего!
    • Вместо «домена» сайта можно использовать любое «имя пользователя». Я генерирую таким образом пароли для Linux-пользователей.
    • Для полной уверенности, вы можете скачать vPass и запускать со своего компьютера.


    Тема не нова —
    Хранение паролей без их сохранения
    Простой метод хранения паролей в голове
    Как просто запоминать пароли
    Простой метод управления паролями для параноиков

    Смею, однако, надеяться, что моя реализация покажется вам наиболее удобной.

    Еще пара цитат из F.A.Q.:

    • vPass принимает 2 параметра — мастер-пароль и домен (имя пользователя). Если вы открываете vPass через расширение или букмарклет, домен считывается автоматически. То есть если в браузере открыт адрес accounts.google.com, vPass установит значение «домен» = google. Остается только набрать мастер-пароль и нажать Enter.
    • vPass склеивает мастер-пароль и домен в одну строку. Затем из нее генерируется уникальный пароль. Например если ваш мастер-пароль — sopli (не рекомендую! слишком простой), домен = google и длина = 16, то из строки sopligoogle будет получен пароль "f6pzQ3MthBzpEdSO". Скопируйте его, закройте vPass и вставьте в форму входа.
    • Насколько безопасен vPass?
      Настолько, насколько безопасен ваш мастер-пароль. Теоретически, если мастер-пароль легко угадать, и нехороший человек угадает, что вы используете именно vPass, то он получит доступ ко всем вашим паролям. К счастью, сгенерированные пароли никак не выдают свое происхождение, а vPass еще совсем не популярен, так что можете не волноваться :)
    • Как мне генерировать одинаковый пароль для всех суб-доменов сайта?
      при чтении домена, vPass делает это автоматически — отбрасывая суб-домены и TLD. Остается только «смысловая» часть. Например, у amazon.fr и amazon.com единая база аккаунтов, и vPass корректно поставит просто «amazon» в обоих случаях.
    • Я могу доверять vPass? Что делать, если сайт пропадет?
      Отличный вопрос — еще раз призываю скачать локальную копию. Что касается сервера — на нем отключено вообще все, даже access logs. И как я уже говорил, сервер только отдает данные, но не принимает.


    Надеюсь, кому-нибудь, кроме меня, vPass покажется полезным, хотя поскольку логи отключены, я даже не узнаю, сколько человек им пользуется :)

    [Update]: Огромное спасибо комментаторам за отличную дискуссию! Постараюсь в течение пары дней сделать обновление, с учетом всех полезных замечаний. Старый алгоритм останется (для поддержания обратной совместимости), но появятся новые (более лучше :-) ), поэтому погодите пару дней, прежде чем начать реальное использование. Спасибо!
    Поделиться публикацией

    Комментарии 110

      –12
      Даааа, отключены
        +12
        Я, в общем, и не призываю вас мне верить — точнее, призываю вас мне не верить. Cкачайте vPass и запускайте со своего компьютера.
          0
          Мне достаточно узнать ваш мастер-пароль чтобы узнать все (мало того) текущие пароли. И плюс к этому подбирать любые будущие смогу?
            0
            Если вы будете вводить 12345, то да, у вас проблемы.
            P.S. 40-значные сложные пароли за разумное время не ломаются.
              0
              Мне не нужно их ломать, перебор сокращаяется до мастерпароля + узкого набора слов (допустим я для гугла генерю себе пароль, я не буду фантазировать сильно а введу что-то связанное с гуглом, ибо тупо потеряю пароль в следующий раз когда не вспомню зависимое слово)
                0
                Чуточку фантазии. Введите свой мастер пароль (пусть даже не самый сложный), а в графу сайт — мастер_пароль.мастер_пароль (тут уж нужна ваша фантазия). Скопируйте этот (40, для надежности 140 значный) пароль и уже его введите как мастер пароль, а уже к этому паролю пишите google.com.
                На один шаг больше, спите крепко).
          –3
          [/sarcasm]
          –5
          Вы уж меня простите, но все это очень подозрительно, особенно после прочтения соседней статьи.
          habrahabr.ru/post/149924/#comment_5074913
            0
            Ошибся и написал ответ вам ниже.
              +2
              И если можно, еще пара копеек по поводу истории с Яндекс-кошельком и vPass.

              — vPass — какая-никакая защита от кейлоггеров (вы не набираете конечный пароль руками).
              — проблема яндекс-денег — в отсутствии обязательной усиленной авторизации. Например в Qiwi любая операция подтверждается кодом через SMS. То же можно включить в Google Accounts.
              — и еще раз — воспринимайте сайт vpass.info как демо версию. Набирайте реальные пароли только в локально сохраненной копии.
                –10
                ок, мне одному кажется, что поставленные минусы очень подозрительны? :-)
                  0
                  Эээ, не совсем понял, извините.
                    0
                    а, вы про минусы к комментарию? I didn't to it :)
                      –6
                      я вам верю)
                      будь я параноиком, я сказал бы, что минусами можно придать моим словам opacity: 0.3
                  +1
                  какая-никакая защита от кейлоггеров
                  Имхо, как раз тут нет никакой защиты в принципе… Фишка в том, что большинство троянов/кейлоггеров (по крайне мере, с которыми мне приходилось сталкиваться) перехватывают не только ввод с клавиатуры, но и буфер обмена, заголовок активного окна и, если это браузер, адресную строку. К тому же есть те, которые умудряются «выковыривать» данные прямо из активного поля ввода. Т.о. когда вводим мастер пароль, то «хозяин» трояна/кейлоггера получает все(!) ваши пароли.
                    +1
                    Эту проблему решит подобное приложение под андроид, если ещё нет в маркете подобного, можно реализовать :)
                      +1
                      Да, это на много лучше, чем на неизвестно чьем компе вбивать мастер пароль.

                      Но… Если пароль спалился, то поменять его уже сложнее — в том смысле, что пароль генерится с привязкой к доменному имени.
                      А ведь большинство айтишников введя пароль на чужом/сомнительном компе захотят как можно быстрее его (пароль) сменить, имхо.
                0
                Интуиция меня не подвела — первые комментарии именно о доверии сервису. И это правильно! Смотрите «скачать на свой компьютер»
                  +1
                  Не везде будет работать. Например, мне сгенерировался пароль, состоящий исключительно из букв.
                    +1
                    Ух ты, не сталкивался с таким. Поправлю!
                      +2
                      master password = 1
                      domain = 1
                      length = 16
                      password = jAflGMHNyvkARfle
                        0
                        Если Вы поправите, то старые пароли не будут воспроизводиться, мне кажется.

                        Мне страшно хранить пароли таким способом. Если в KeepPassX, к примеру, можно периодически менять как пароли, так и мастер-пароль, то тут непонятно, что делать в случае утечки мастер-пароля. Ещё в KeepPassX поиск можно делать по базе, если вдруг забыл, под каким именем зарегистрировался.
                      +2
                      Да, хорошо было бы добавить опции с символами или без.
                      0
                      Сервис генерации паролей из которого вы можете взять параметры генерации
                        +1
                        Мои глаза >-< но за настройки спасибо!
                          +1
                            +2
                            Произносимый пароль с символами !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

                            Порадовало…
                          –4
                          Генератор паролей, не знающий про SSL. Ок.
                            +7
                            А есть практический смысл заводить SSL для него? Никакого обмена данными между клиентом и сервером не происходит.
                              0
                              (Я не с претензией, а правда интересуюсь)
                                +3
                                Волшебное слово phishing.
                                  +1
                                  Перенаправление на фейковую страницу? Да. Буду разбираться с SSL тогда :)
                                    0
                                    Fishing*
                                      +8
                                      даже в первой строчке статьи «Fishing» в Википедии написано о том, что не надо путать рыбалку и фишинг.
                                      0
                                      Ну-ну, посмотрю я на фишера, который заменит локальную страницу, хранящуюся на моем компе…
                                • НЛО прилетело и опубликовало эту надпись здесь
                                    –1
                                    Я пользовался 1Password — но
                                    1) нужны пароли на телефоне
                                    2) на планшете
                                    3) на чужих компах
                                    И пришел к выводу, что менеджер паролей — это добро, но не для меня.
                                      +2
                                      Тоже им пользуюсь: 1password отлично работает и на планшете, и на телефоне.
                                        +2
                                        Keepass есть для большинства платформ, включая Android. Базу можно расшарить в любом облаке
                                          0
                                          Если база 1Password хранится в Dropbox, то никаких проблем получить доступ к ней с другого компьютера нет, ибо есть help.agilebits.com/1Password3/1passwordanywhere.html. Другое дело, что нужно или делать его файлы публичными, или авторизироваться на чужих компьютерах в дропбоксе.
                                            0
                                            Я без какой либо рекламы 7 лет пользуюсь Робоформом
                                            пароли на iphone и андроид есть приложение
                                            на планшет тоже имеется
                                            на чужих компах через онлайн сервис

                                            Меня просто удовлетворяют ваши критерии и эта программка мне помогает… у меня более 1,5К паролей
                                              0
                                              Я рисовал в свое время иконку для Roboform — эту, с глазами :) Это был единственный в моей длинной истории клиент, который позволил себе мат в переписке. (Да, давно дело было) Так что увы, Робоформ не буду использовать принципиально.
                                                0
                                                Ваше личное дело, но функционал и мобильность лично меня устраивает более чем
                                          +2
                                          Ctrl-C для паролей очень безопасно, первый логгер сразу отправит скопированный буфер в нужное место.
                                            0
                                            Ну против этого лома нет приема. Только вставлять сгенерированный пароль сразу в текущее поле на веб-странице. В принципе из chrome-расширения это можно сделать (насчет safai не знаю). Подумаю!
                                              +2
                                              А Ctrl-W, емнип, и вовсе во многих браузерах забинден на закрытие текущего таба.
                                              А если работаешь со всякими вимператорах / пентадактилях, так вообще придётся Ctrl-Z предварительно нажимать, иначе оно сработает совсем не так, как ожидается (:
                                                0
                                                Почему? Открывается же новый таб.
                                                  +1
                                                  У меня ff + вимператор. При включенном режиме понятное дело ничего не работает. А если я его отключаю, то после «Введите мастер-пароль, Ctrl-C, Ctrl-W, готово!» вкладка закрывается. ЧЯДНТ?
                                                    0
                                                    Ну вроде так и надо —
                                                    — у вас открыта страница с формой, в которую надо ввести пароль
                                                    — открываете vpass в новом табе (bookmarklet-ом или extension-ом или favorite-ом)
                                                    — получаете пароль
                                                    — копируете
                                                    — закрываете таб
                                                    — вставляете
                                                      –1
                                                      Нажимаете Ctrl-W вместо Ctrl-V, а у автора опечатка.
                                                +3
                                                supergenpass.com ну ведь тоже самое, даже поля так же называются
                                                  0
                                                  Именно — как я написал на сайте — Я позаимствовал идею у SuperGenPass, но остался недоволен его интерфейсом. Поэтому был создан vPass.
                                                    0
                                                    А если точнее — меня напрягало каждый раз выделять сгенерированный пароль мышкой, и еще пара мелочей.
                                                      +2
                                                      У него есть десятки букмарклетов, дополнений к браузерам.

                                                      Хотели сделать свой интерфейс, так делайте на основе SuperGenPass, зачем выдумывать?
                                                      0
                                                      В копилку мой thepassword.org
                                                      Из плюсов — сайтонезависимая простая формула pass=md5(login+"@"+site+masterpass)
                                                      +2
                                                      возможно ли получить мастер-пароль, зная домен и пароль?
                                                        0
                                                        Хотел сразу ответить нет конечно — затем обратил внимание что алгоритм, который я использую сейчас (TEA), теоретически decryptable. Спасибо за наводку mwizard — поменяю на PBKDF2 в течение дня.
                                                          +2
                                                          Те, кто уже нагенерил паролей будут крайне рады :)
                                                            0
                                                            Старый алгоритм, конечно, останется (для поддержания обратной совместимости), но появятся новые (более лучше :-) )
                                                        0
                                                        Доверять обфусцированному коду как-то не хочется, да и какими алгоритмами это дело шифруется не написано. Больше открытости! :)
                                                        –2
                                                        #!/bin/sh
                                                        
                                                        dopasswd ()
                                                        {
                                                                password=''
                                                                while [ `echo "${password}" | wc -L` -ne ${1} ]; do
                                                                        password=`head -1 /dev/random | sed -E 's/[^a-zA-Z0-9]//g' | cut -c 1-${1}`
                                                                done
                                                        }
                                                        
                                                        dopasswd ${1}
                                                        echo $password
                                                        
                                                          +2
                                                          Спасибо, тоже вариант. А как это быстро открыть на телефоне? А на чужом компе? Все равно веб-морда понадобится.
                                                            0
                                                            ssh :)
                                                              +2
                                                              Эээээ :)
                                                                0
                                                                ну можно хттп демона поднять, через inetd например на 80 порт повесить.
                                                                Не смотря на отсутствие хедеров большинство браузеров будет отображать, если прописать content-type и length.
                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                            0
                                                            Можно я скопирую с коммента выше — воспринимайте сайт vpass.info как демо версию. Набирайте реальные пароли только в локально сохраненной копии.
                                                            0
                                                            Кстати, спасибо всем комментаторам за полезную дискуссию!
                                                              +2
                                                              Why not use PBKDF2?
                                                                0
                                                                Отлично! Спасибо за наводку. Встрою как только смогу.
                                                                +6
                                                                И главный вопрос, который встает при такой схеме генерации паролей: как поменять пароль для сервиса, который был скомпрометирован?
                                                                  0
                                                                  Хм, например, изменить длину пароля при генерации для данного сервиса?
                                                                  Правда, опять же, придется это запоминать… )
                                                                    0
                                                                    В своем аналогичном приложении я просто сделал несколько полей, одно из которых — sequence. В случае, если возникает стойкое желание сменить пароль, увеличиваем sequence на единицу и новый пароль готов.
                                                                      0
                                                                      sequence надо запоминать, как заметил deepre, либо в голове, что не очень хорошо при большом числе паролей, либо статической html уже не обойтись.
                                                                    +2
                                                                    зачем изобретать велосипед? есть великое множество менеджеров паролей для разных систем.
                                                                    Сам юзаю kwalletmanager
                                                                      +1
                                                                      Зачем обычно изобретаются велосипеды? Много чего пробовал, ничего не устроило.
                                                                      0
                                                                      На свой домен поставить можно? На каких условиях?
                                                                        0
                                                                        Конечно можно — условий нет. Единственное что я сегодня по свежим комментам буду (вечером) делать обновления.
                                                                          0
                                                                          Тогда, хотя бы привели таблицу сравнений с аналогами. Или скажите, что есть такого в Вашем менеджере из того, что отсутствует у аналогов?
                                                                            0
                                                                            Промахнулся!

                                                                            Ответ для: «Зачем обычно изобретаются велосипеды? Много чего пробовал, ничего не устроило.»
                                                                            0
                                                                            github?
                                                                          +7
                                                                          Ctrl-C, Ctrl-W, готово! Вкладка закрыта! )))))
                                                                            +1
                                                                            автор троль)
                                                                              0
                                                                              А разве имелось ввиду не закрытие вкладки с vPass? Ввёл мастер-пароль, скопировал пароль к сервису, закрыл vPass.
                                                                                0
                                                                                скопировал с коммента выше :-) — имелось в виду именно закрытие вкладки с vPass. Похоже я как-то странно выразился и не заметил этого. Сорри!
                                                                                +1
                                                                                Да вы, батенька, шутник. Эт я про Ctrl+W ) Хотя тут и без меня много таких внимательных. :)
                                                                                  0
                                                                                  скопировал с коммента выше :-) — имелось в виду именно закрытие вкладки с vPass. Похоже я как-то странно выразился и не заметил этого. Сорри!
                                                                                    0
                                                                                    Закрытие вкладки — Ctrl+T
                                                                                      0
                                                                                      Хм. Внезапно Ctrl+T открывает вкладку. А раньше — закрывал. Или я что-то путаю, ладно, не обращайте внимания. :)
                                                                                  –2
                                                                                  Что ли бухгалтерии подкинуть, которая пароли сложные забывает? мастер пароль — фамилия. домен — инвентарный номер компьютера.
                                                                                    +1
                                                                                    Возможно, стоит иметь оба поля — логин и домен/сервис, чтобы, например для разных эккаунтов на одном домене, а также для одинаковых логинов на разных доменах были разные пароли. А также, чтобы не запоминать, для какого сервиса при генерации использовался логин, а для какого — домен.
                                                                                    P.S. У самого была идея подобного генератора, только руки не дошли. (
                                                                                      0
                                                                                      + добавить extension для chrome чтобы в трей нажал, ввел мастер пароль и он тебее выдал в буфер пароль либо сразу подставил в input password на странице.
                                                                                      + чтобы в настройках можно было бы менять конструкцию сборки паролей. то есть использовать не просто ваш один алгоритм, а для паранойиков (для меня), чтобы можно было бы алгоритм поменять, причем не из списка имеющихся, чтобы не смогли подобрать если узнают мастер пароль.
                                                                                        0
                                                                                        > не из списка имеющихся

                                                                                        это как? набить в input исходники хэш-функции что ли?
                                                                                          0
                                                                                          некий конструктор, дается несколько функций и ты сам выбираешь алгоритм шифрования
                                                                                          0
                                                                                          + добавить extension для chrome чтобы в трей нажал, ввел мастер пароль и он тебее выдал в буфер пароль либо сразу подставил в input password на странице.
                                                                                          Давно там.
                                                                                          0
                                                                                          у меня давно в закладках следующий javascript который генерит пароли pastebin.com/es6qSAmZ
                                                                                          не надо переходить по непонятным сайтам, все делает ваш браузер
                                                                                            0
                                                                                            да, кстати, пароль сразу вставляется в поле password, поэтому чтобы посмотреть как оно работает кликните по закладке на странице, где есть поле со звездочками
                                                                                              0
                                                                                              Ух ты, выглядит хорошо! Правда неудобно переносится на телефоны и чужие компы… Мне же нужен был именно удобный доступ из разных мест.
                                                                                              0
                                                                                              Я подобное реализовал для Android давно. Как не прескорбно, но люди не совсем понимают идею таково приложения.
                                                                                              Хотя установок уже почти 10.000
                                                                                              play.google.com/store/apps/details?id=com.thenatd.masterpassword
                                                                                              И для Desktop на WPF + C#.

                                                                                              Кстати, тут подняли хороший вопрос в коментариях, что делать если нужно сменить пароль, надо будет апдейт к своей апп сделать.
                                                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                  0
                                                                                                  , Ctrl-C, Ctrl-W, готово! скопировал и закрыл вкладку?
                                                                                                    0
                                                                                                    скопировал с коммента выше :-) — имелось в виду именно закрытие вкладки с vPass. Похоже я как-то странно выразился и не заметил этого. Сорри!
                                                                                                    0
                                                                                                    все равно перебор по радуге или по «популярным» вхождениям… ошибаюсь?
                                                                                                      0
                                                                                                      Мастер пароль никак не проверяется, и если я допущу опечатку при генерации нового пароля, то не смогу его восстановить.
                                                                                                        0
                                                                                                        А как он должен проверятся, если суть не хранить вообще никаких данных а полагатся только на алгоритм.
                                                                                                          0
                                                                                                          да, как заметил FanKiLL — мастер пароль нигде не хранится, поэтому как его проверить. Вариант — checkbox show master password (если вы точно знаете, что никто за плечом не стоит).
                                                                                                          0
                                                                                                          Хороший сервис уже второй день пользуюсь.
                                                                                                            0
                                                                                                            Спасибо :-)

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

                                                                                                          Самое читаемое