Что не скрывает LastPass?

    Думаю, все знают, что такое Lastpass. Многие доверили ему хранение всех своих логинов и паролей. И как не доверить, ведь, разработчики декларируют, что вся информация защищена и шифруется на стороне клиентов. Помятуя о недавней истории я решил разобрать плагин LastPass на кусочки и понять, что действительно защищено, а что нет и продолжить свой цикл статей про маленькие проблемы в крупных проектах.

    Сначала мне все очень нравилось. LastPass создает хеш вашего логина и пароля, он и является ключом к AES алгоритму:

    KEY = SHA256(EMAIL + PASSWORD)

    Для авторизации, сервис использует двойной хеш, именно он отправляется на сервер и является проверочным ключом при авторизации:

    AUTH_HASH = SHA256(KEY+PASSWORD)

    Действительно, названия групп, учетных записей и данные передаются в зашифрованном виде, везде используется HTTPS. Но, как оказалось, есть вещи, которые отправляются на сервер без шифрования ключом пользователя. Например, это полный текущий URL сайта, на котором вы вводите пароль в LastPass в первый раз.

    Вот запрос, который отправляет плагин на сервер (некоторые значения полей изменены):

    POST /deliver_and_add.php HTTP/1.1
    Host: lastpass.com
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    Content-Length: 5045
    Cookie: lang=en_US; sessonly=0; PHPSESSID=#;
    X-LastPass: 1.74.0
    X-wxsessid: #
    Pragma: no-cache
    Cache-Control: no-cache

    sentms=#&data=#&ref=68747470733a2f2f7777772e676f6f676c652e636f6d2f6163636f756e74732f536572766963654c6f67696e3f736572766963653d6d61696c26706173736976653d7472756526726d3d66616c736526636f6e74696e75653d68747470732533412532462532466d61696c2e676f6f676c652e636f6d2532466d61696c253246253346756925334468746d6c2532367a792533446c266273763d23367a2673733d31267363633d31266c746d706c3d64656661756c74266c746d706c63616368653d3226686c3d656e2666726f6d3d6c6f676f7574&charset=UTF-8&iid=&data=#&name=#&localupdate=1&extjs=1&iid=&requid=#&wxsessid=#&sessonly=0&requesthash=#&requestsrc=ff&hasplugin=1.74.0

    Как мы видим, поле ref содержит строчку:

    https://www.google.com/accounts/ServiceLogin?service=mail&passive=true&rm=false&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F%3Fui%3Dhtml%26zy%3Dl&bsv=#6z&ss=1&scc=1<mpl=default<mplcache=2&hl=en&from=logout

    Таким образом, совершенно случайно, на сервер LastPass в открытом виде передается информация о том, на каких сайтах вы зарегистрированы. А еще, иногда, в этих строчках бывают логины, пароли и другая чувствительная информация (на некоторых, не очень правильных ресурсах).

    Также плагин не шифрует весь блок с данными форм при отправке, а шифрует только поля, оставляя имена полей открытыми, причем, при шифровании, он не добавляет соль в значения полей. Таким образом, путем нехитрых вычислений на сервере, можно будет понять на каких сайтах у вас одинаковые логины и пароли. Кстати, action формы тоже передается на сервер LastPass в открытом виде:

    sentms=#&data=#REMOVED#&ref=687474703a2f2f6861627261686162722e72752f6c6f67696e2f&charset=UTF-8

    Вот так выглядит информация в поле data, для логина на habrahabr.ru и именно в таком виде все передается на сервер LastPass:

    0 undefined fieldset
    0 act SuQP2miDnWPHD202CxqCLQ%3D%3D hidden
    0 redirect_url 5RXHPEEbEv6DlWMaKxOdQZAnmxFM8k9gLCeYz10sh5I%3D hidden
    0 login DEJ#REMOVED#D%3D text
    0 password vT5yo#REMOVED#tkg%3D%3D password
    0 captcha text
    0 %D0%92%D0%BE%D0%B9%D1%82%D0%B8 submit
    0 action http%3A%2F%2Fhabrahabr.ru%2Fajax%2Fauth%2F action
    0 method post method

    Итак, что же станет известно злоумышленнику, если он получил доступ к шифрованным данным, но не знает ваш пароль?
    1. Ваш почтовый адрес в LastPass
    2. Список всех сайтов, на которых у вас есть регистрация
    3. Список всех сайтов, на которых у вас одинаковые логины и/или пароли.
    4. Полные ссылки на формы на всех сайтах
    5. Полные ссылки из атрибута action форм на всех сайтах
    Поэтому, будьте внимательны, когда добавляете очередной пароль в Lastpass. Обязательно посмотрите в строчку адреса, действительно ли вы хотите передать эту информацию на чужой сервер в открытом виде.

    P.S. Я все думал, зачем сервису эта информация, ведь ничего не стоило зашифровать URL и все поля целиком, но тут на днях прочитал Privacy Statement на сайте, и мне все сразу стало ясно:

    LastPass may collect aggregated statistics about the behavior of visitors to its websites. For instance, LastPass may monitor the most popular website account on the LastPass.com site. LastPass may display this information publicly or provide it to others. In addition, LastPass may use your behavioral data and other data you provide to LastPass to customize advertisements on its site to its users. In this way we try to keep the majority of our services free. However, LastPass does not disclose personally-identifying information other than as described below.

    Как я понимаю, информация о том, на каких сайтах вы зарегистрированы может быть использована для составления вашего рекламного профиля. И это LastPass тоже не скрывает.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 82
    • +7
      Ой не зря у меня самописный хранитель паролей…
      • –1
        Лучший хранитель паролей это голова.
        • +47
          Да, да пара сотен ресурсов, везде уникальные пароли и все это в голове :)
          • +1
            Достаточно придумать для себя алгоритм завязанный на доменном имени и всё.
            • +22
              Или пользоваться чужими логином-паролем… зачем нагружать ресурс лишней учеткой?) и если утащат, не так жалко будет)
            • 0
              Ещё PasswordCard
              • +22
                Единый алгоритм для паролей, в плане безопасности вещь не менее спорная ;)
                • +5
                  И вбивать логин/пароль пальчиками, на радость кейлоггеру.
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • 0
                      кейлоггеры бывают трех типов:
                      а) программные
                      б) аппаратные
                      в) другие
                      • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        Перечислите другие способы, если не трудно.
                        • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        Есть особо хитрые люди, которые вводят пароль с экранной клавиатуры. Причем человек этот даже не IT-шник :)

                        • 0
                          Да я и сам вбиваю мастер-пароль в ластпассе только через виртуальную клавиатуру.

                          Дайте пример виртуальных клавиатур которые работают со всеми полями. С удовольствием буду пользоваться, ибо сколько ни искал, ничего хорошего найти не удалось.
                          • 0
                            Человек пользовался обычной виндовской… Поэтому примера, к сожалению, не могу привести.
                            • НЛО прилетело и опубликовало эту надпись здесь
                              • 0
                                За исключением случая, когда браузер запущен на виртуальной машине, с гарантированно чистой системой.
                          • +2
                            Передайте ему, чтобы сильно не обольщался на этот счет. Есть и мышиные снифферы.
                            • –1
                              Мышиный сниффер уж очень трудоемок в плане ловли паролей, поэтому его опасность невелика.
                              • +2
                                Вы заблуждаетесь. Если кому-то действительно понадобится ваш пароль, то он не пожалеет лишние полчаса на то, чтобы вручную его восстановить из мышиного лога.
                            • +8
                              Типовая функция большинства кейлоггеров — скриншот активного окна по клику мыши. На выходе получаем серию скриншотов с вашим паролем.
                              • 0
                                Спасибо, не знал. Таким образом, виртуальные клавиатуры отнюдь не панацея…
                                • 0
                                  я б даже сказал — профанация (судя по тому что для Вас и многих пользователей скриншот по клику был неочевиден)
                                • 0
                                  типовая функция «безопасной» скринклавиатуры — нажатие по задержке мыши над кнопкой, а не по щелчку
                                  • 0
                                    сильно снижает юзабилити, т.к. более-менее приличный пароль запаришься набирать
                                    • 0
                                      Вам шашечки или ехать? :)
                                      • +1
                                        мне — ехать, а вот эти шашечки в виде хитрых onscreen keyboard — не нужны. Три составляющие ИБ, как известно — конфиденциальность, целостность, доступность. Так вот, такая вот клавиатура сильно дискриминирует доступность, выпячивая конфиденциальность. Необходимо соблюдать баланс, иначе это не ИБ, а цирк.
                                        • 0
                                          Не спорю. Тем не менее они весьма эффективны против текущих стандартных руткитов.
                                          Понятное дело, что если они станут массовыми и популярными — то руткиты начнут просто писать экран в момент остановки мыши после движения. А куда деваться.
                          • 0
                            А если пароль к какому-нибудь ресурсу будет скомпрометирован и его нужно будет поменять?
                    • +1
                      «Доверяй, но проверяй» — хороший принцип. Особенно для сторонних сервисов, которые хранят критически важную информацию.

                      Спасибо за обзор.
                      • +4
                        Lastpass? Одинаковые логины\пароли!!?
                        • 0
                          Одинаковые пароли — меня это тоже удивило :) Смысл плагина отпадает сразу. А с одинаковыми логинами вроде все логично.
                          • 0
                            Ну да, ну да. Про логины это я так, заодно.
                          • +3
                            Например, пароли, созданные до ЛастПасса, которые просто лень поменять.
                            • –3
                              Где созданные? В голове? Тогда зачем их записывать?
                              Если в другой генерилке, то они не будут одинаковыми.
                              • +4
                                Да, в голове. Вот заходит человек на сайт, вбивает старый пароль, а у него спрашивают «сохранить или нет?» Зачем ему отвечать «нет»? Пускай пока хранится такой, а потом как нибудь поменяет.
                                • 0
                                  А отвечать нет затем, что он его и так знает, и нечего «светить» один свой любимый пароль от 1002302103021 сайтов в какой-то подозрительной программе.
                                  • +2
                                    Если человек доверяет ЛастПассу сохранять и генерить свои пароли, вряд ли он считает его подозрительным :)
                                    • –2
                                      Ну если он доверяет ему сохранять и генерить пароли для важных ресурсов, то ему вообще ничего в этой жизни подозрительным не кажется.
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                        • 0
                                          Вы это дропбоксу расскажите!
                                          • НЛО прилетело и опубликовало эту надпись здесь
                              • –3
                                И не лень же ЛастПасс использовать.
                                • +4
                                  И не лень же каждый раз пароли вбивать.
                            • 0
                              Думаю, для рядового юзера такая уязвимость не настолько критична, чтоб он заметил. Были ли случаи утечек?
                              • –1
                                Там не то что утечки были, но какой-то инцидент был около двух месяцев назад. По результатам меняли способ аутентификации и форсили ввод номера мобильника что ли. Как всегда проблема была связана с мобильной версией.
                              • –3
                                перешел несколько месяцев назад на 1password, после этой статьи окончательно удалил аккаунт lastpass
                                • 0
                                  вот она, рефлекторная деятельность.
                                  • 0
                                    да аккаунт давно пустой, сработало как напоминание удалить :)
                                • +1
                                  Кроме всех уже сделанных автором выводов надо сделать еще один — необходимо не полениться и
                                  а) использовать средство аудита паролей и безжалостно истребить дубликаты
                                  б) можно скипнуть п.а и просто поменять пароли на всех сервисах. Займет около 10 минут, после этого дубликатов не останется.
                                  • 0
                                    Roboform. Синхронизируются с онлайн-хранилищем уже полностью зашифрованные файлы пасскарт.
                                    • +2
                                      Приватности в интернете нет. Google со своими сервисами знает про нас все. Реальная кривизна это передавать логин и пароль в отдельных полях и не использовать при шифровании вектор инициализации.
                                      • +4
                                        Лучший хранитель паролей — оффлайновый хранитель паролей.
                                        • 0
                                          С идентификацией по отпечатку пальца и сетчатке глаза, запрятанный в сейфе подземного бункера. Вот только все равно от прецельной атаки на необходимые данные такие меры полностью спасти не могут :)

                                          ИМХО, даже использование хранителя паролей не убирает необходимость менять свои пароли с определенной периодичностью, чего я и советую всем сознательным пользователям интернета.

                                          P.S. Продолжаю использовать LastPass, генерирую пароли по своему алгоритму, который, как и пароли, тоже меняется с определенной периодичностью.
                                          • 0
                                            Тогда нужно пожертвовать синхронизацией.
                                          • +7
                                            А по-моему, все это не так уж плохо. Продолжу пользоваться LastPass.
                                            • +4
                                              «Таким образом, совершенно случайно, на сервер LastPass в открытом виде передается информация о том, на каких сайтах вы зарегистрированы.»

                                              Ну все таки не совсем в открытом виде, а через HTTPS. Т.е. простым прослушиванием эту информацию не получить.
                                              • 0
                                                Я имел ввиду в открытом (нешифрованном) для сервиса виде.
                                              • 0
                                                Реквестирую подобный анализ для 1Password и Roboform. Ну или к другим достойным альтернативам.
                                                • 0
                                                  Извиняюсь, как оказалось оба являются отдельными программами, а соответственно не так интересны.

                                                  Есть правда какой-то RoboForm Lite Password Manager. Но рейтинг у него — «неочень».
                                                • +1
                                                  Не зря у меня KeePass + Wuala
                                                  • 0
                                                    Меня буквально вчера научили одному хитромудрому способу по работе с паролями.
                                                    Придумываете или генерируете длинный пароль и храните его на бумаге.
                                                    А чтобы каждый раз не вбивать — набираете его с неправильной последней буквой.
                                                    Далее, сохраняете в сохранялке паролей, которая встроена в браузер.
                                                    А когда заходите на ресурс — меняете последнюю букву пароля, показываемую звездочкой, на нужную.
                                                    • 0
                                                      И как вы думаете сколько продержится Ваш «пароль»?
                                                      • 0
                                                        Довольно долго, потому что если завелся кейлоггер, то он ничего не поймет. А если это граббер, он утянет пароль себе в базу, но этот пароль не откроет ресурс. Вряд ли граббер будет брутфорсить последний символ.
                                                      • 0
                                                        Тогда уж лучше добавить в сохранении каждый второй символ лишним, и потом через одну звездочку удалить
                                                        • +3
                                                          Точно! Или же удалять каждый символ на позиции 0 в битовом представлении числа 0xdeadbeef
                                                      • 0
                                                        Статья хороша.

                                                        Рекомедую сделать анализ при использовании двухфакторной аутентификации (например yubikey) — должно получится интересно если что-нибудь раскопаете.

                                                        P.S. Укажите точно в статье что lastpass все передает по https, но не шифрует часть данных ключом пользователя. Сразу из текста это не понятно.
                                                        • 0
                                                          Добавил про https.
                                                        • 0
                                                          Ну он и показывает, перед сохранением все данные, чтоб можно было исправить.
                                                          • 0
                                                            Я вот вообще не понимаю граждан, хранящих пароли на каких-то там сервисах в интернете. KeePass есть для винды, мака, андроида и мобильников с джавой. Есть всякие там дропбоксы, через которые можно синхронизировать, если так уж охота.
                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                              • –2
                                                                А что именно «неудобно»? Автоматически синхронизировать Keepass? А пароли — только в браузере вводить? И только на компьютере? А что будете делать, если нет интернета?
                                                                • +1
                                                                  Если нет интернета — открываем Saved Passwords в браузере.
                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                    • 0
                                                                      А, ну конечно, пароли же только в интернете :-)))))))))))))))))))))
                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                              • 0
                                                                Обидно что Xmarks (LastPass) не поддерживают механизм BYOS, т.е. своего сервера. Функция как бы есть, но она работает через раз и не понятно в чем загвоздка. А с паролями наверно было бы удобно если в каждом браузере была возможность синхронизировать пароли и закладки через WebDav over https.
                                                                • 0
                                                                  Если дело дошло до трояна, то лучше сразу форматировать диск, а не надеяться на «авось».

                                                                  Лучший способ хранения паролей — на нетбуке, и использовать его исключительно для почты, браузера, офисных приложений (ворд, эксель). То есть набор текста и чтение текста. Никаких лишних программ. Его желательно не выпускать из рук. Пароли можно копипастить, либо хранить в менеджере паролей (чтобы не подсмотрели в кафе). На сомнительные ресурсы (которые могут воспользоваться дырами в браузере) — не ходить. В самом браузере максимально ограничить интерактивность (отключить плагины, флеш) для всех ресурсов, кроме доверенных.

                                                                  Также, чтобы спать спокойно, есть хорошая программа True Crypt. Даже если ноутбук будет утерян, — вор не вытащит из него данные. На случай кражи в режиме сна — нужен нетривиальный пароль при выходе из этого режима. Это единственный пароль, который придется держать в голове, и набирать часто и быстро.

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