СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

| сохранено

H Браузер Vivaldi хранит пароли в открытом виде в черновиках Из песочницы

Прошёл почти месяц, как я открыл в шестнадцатеричном редакторе файл ~/.config/vivaldi/Default/Login Data и увидел примерно следующее:

image

С тех пор ничего не изменилось.
Сразу по обнаружении данной «особенности» была написана простая программа выдёргивания личных данных из SQLite3-файла, после чего информация попала в руки всему сообществу, минуя разработчиков. Это важно, поскольку отсутствие шифрования паролей не похоже на уязвимость, оглашать детали которой было бы правильно только после её устранения.

Реакция на сей факт оказалась… никакой. Как со стороны создателей Vivaldi, так и со стороны пользователей. Было ясно, что разработчики полностью осознают серьёзность положения, поэтому в течение месяца я мониторил новости и обсуждения как на официальном сайте, так и на Хабре, ожидая одного — сообщения всем пользователям временно не использовать функцию сохранения паролей, пока не будет реализовано шифрование. Последней каплей стало голосование за новые функции в браузере, где, как вы уже поняли, про личные данные нет ни слова. Были необходимы решительные меры.

Надеюсь, сообщение не будет воспринято как осуждение разработчиков и выставление их в плохом свете. Однако статус тестовой версии — не оправдание того, почему пользователи не знают о своей незащищённости.
+82
51538

комментарии (91)

+5
UUSER ,  
Ну, как бы продолжая традиции, наверное: www.nirsoft.net/utils/opera_password_recovery.html
+39
+40 –1
Halt ,  
Просто Vivaldi — это «браузер для друзей», а друзья друг у друга не воруют ;)
+39
+45 –6
jimpanzer ,  
«Мы русские не обманываем друг друга....»
+1
+2 –1
Jacetejob ,  
Для друзей гуманитариев
–7
Deaddy ,  
Используйте masterpassword
+2
Infthi ,  
Лучше кидать ссылки на opensource-решения :]

github.com/antmak/unwand-opera/blob/ac27ac69abcc7f404741b054a581ba0eb4aadd2e/unwand.cpp

(репозиторий не мой, но файл идентичен найденному мной на просторах интернета много лет назад).
+31
+34 –3
Magister7 ,  
А как его можно сохранить так, чтобы браузер смог расшифровать без дополнительного мастер-пароля, а троян какой-нибудь — нет?
Полагаться на security through obscurity, и зашифровать каким-нибудь ключом, который жестко прописан в браузере — неправильно, т.к. всё равно не поможет.
Единственное безопасное решение — мастер-пароль, но это дополнительные неудобства пользователю.

А так… вот для Firefox: www.nirsoft.net/utils/passwordfox.html
0
KaneUA ,  
Тут проблема состоит не только в троянах, но и ещё в предоставлении возможности импортировать данные из браузера при установке нового.
0
+3 –3
kornerz ,  
Как минимум в Windows-версии можно использовать подход, аналогичный Google Chrome — пароли доступны текущему пользователю без ограничений, но при сбросе пароля или копировании хранилища с паролями на другую машину — пароли уже не прочитать ( www.howtogeek.com/70146/how-secure-are-your-saved-chrome-browser-passwords/ )
+4
KaneUA ,  
Раз уж есть доступ к машине, выдернуть пароли можно прямо на ней с пересылкой уже кончного результата. Особенно просто если доступ не удалённый, а физический.
0
charliez ,  
При переходе в режим просмотра сохраненных паролей, хром запросит системный пароль.
0
Shpankov ,  
При чём тут режим просмотра? Автор топика открыл файл в HEX-редакторе.
+1
Magister7 ,  
От троянов это не защитит всё равно. Разве что от кражи компьютера — но в Firefox как я понял ситуация та же (если не использовать мастер-пароль, а по-умолчанию он не используется) — и никто не возмущается.
Так что это не какой-то особенный фейл именно Vivaldi. Другое дело что по-хорошему надо предупреждать пользователя, что пароли хранятся небезопасно.
–1
fundorin ,   * (был изменён)
А если использоваться, то пароли не синхронизируются между устройствами. Вот и приходится использовать браузер без мастер-пароля, из-за этого.
0
a553 ,  
Синхронизируются.
0
+4 –4
egorsmkv ,  
В качестве мастер-пароля можно использовать пароль текущего пользователя.
0
+1 –1
Rikcon ,  
А если пароля нет?
–12
+3 –15
egorsmkv ,  
Вводить его. Люди часто регистрируются на сайтах, где нужны пароли. Не думаю, что это будет для них неудобством.
–18
+2 –20
egorsmkv ,  
Можно аргументировать минусы?
+22
+28 –6
DoctorX ,  
нет.
0
fshp ,  
Сайт один раз куку поставил, и полгода мы не логинимся. Многие даже не помнят своих паролей.
+4
alex_shpak ,  
А разве программы могут узнать пароль текущего пользователя?
+2
+3 –1
akirsanov ,  
Могут, но это скорее частный случай в Windows, чем повсеместная практика blog.gentilkiwi.com/mimikatz
0
alex_shpak ,  
о, спасибо, не знал!
+8
+9 –1
silvansky ,  
В каждой ОС есть свои методы. В OS X — Keychain, в Windows — CryptProtectData и CryptUnprotectData, в Linux — GNOME Keyring и иже с ним… Вопрос в желании шифровать.
+1
vlivyur ,  
А Chrome умеет пользоваться KWallet/keyring?
+6
KaneUA ,  
Насколько я помню, ещё пару лет назад запрашивал доступ к KDE Wallet.
+1
Magister7 ,  
Подтверждаю, есть такое.
0
Gordon01 ,  
им он и пользуется
+1
skobkin ,  
Chromium и новая Opera используют.
+1
Magister7 ,  
Насколько я помню, в Linux только Chrome использует GNOME Keyring.
Firefox, Opera — нет.
0
silvansky ,  
Собственно, вопрос в желании разработчиков. Есть ведь разнообразные ограничения: необходимость синхронизации, переносимость на другой комп, единообразие хранения настроек и паролей.
–3
+1 –4
mynameisdaniil ,  
Угу. И это очень странно (казалось бы ff — свободный софт, разрабатываемый активным сообществом) и неприятно (не понятно как хранятся мои пароли и посмотреть/отредактировать их теперь не так просто и удобно). Когда перелез с хромиума на фуррифокс — был неприятно удивлен.
+6
+7 –1
barker ,  
был неприятно удивлен.
Дык, свободный софт, разрабатываемый активным сообществом же. А у вас в интересах стоит «делать мир лучше». Так почему до сих пор в ff этого нету, вот скажите?
+6
+8 –2
mynameisdaniil ,   * (был изменён)
Потому, что я делаю мир лучше в силу своих умений и возможностей. Давайте будем честными, ff — большой и сложный проект и чтобы разобраться в нем нужно много времени. Это раз. Два — я не пишу на С++.
Когда, например, я поставил Geary и обнаружил там неполный перевод я перевел интерфейс заново и отправил его разработчикам. Это было в моих силах.
0
+1 –1
Eternalko ,  
Увы: www.nirsoft.net/password_recovery_tools.html

Нет стойкого способа держать пароли.
Где-то должен быть мастер ключ. И сторонний софт всегда может его прочитать.

Есть вариант где пароль пользователя это мастер ключ, но тогда надо при каждом использовании / старте системы,
просить мастер пароль.
+1
+2 –1
silvansky ,  
Нет стойкого способа держать пароли.

Но это не означает, что их нужно хранить в открытом виде. ;)

В прицнипе, в большинстве случаев системного хранилища бывает достаточно. И в OS X, к примеру, без разрешения пользователя прочесть сторонний софт ничего не может. Разве что если запустить его от рута…
–1
+2 –3
Eternalko ,  
I call bu*****t.

Можно повторить с каждым браузером. И даже в случае OS/root protection, то пароли все равно хранятся в открытом виде.
Просто ОС не даст доступа к этому файлу.
+5
+6 –1
Eternalko ,   * (был изменён)
Суть в том, что общий butthurt на тему «plaintext passw» это постановка неразрешимой (ИМХО)
задачи. Написать програму, которая шифрует файл, который только она может расшифровать.
И если нет мастер ключа, то приехали.

Поэтому решений реальных только два:
— мастер пароль
— запрет на уровне ОС

Остальные это полурешения. Obfuscation не более.
–2
mifki ,  
> Есть вариант где пароль пользователя это мастер ключ, но тогда надо при каждом использовании / старте системы,
просить мастер пароль.

Ээ… вы без пароля в систему логинитесь?

Хранилище зашифровано паролем пользователя, программы могут добавлять записи и читать свои, но чужие только после ввода пароля. При изменении/обновлении программы анлогично.
0
aeryaguzov ,   * (был изменён)
промахнулся веткой, извините.
0
aeryaguzov ,   * (был изменён)
да нет, похоже что-то с js и где я не нажимаю «ответить», коммент добавляется в конец… снова извиняюсь, удалено.
+2
Magister7 ,  
Где храниться? Если на диске — то любой троян может его прочитать.
А если в голове у пользователя — то это тот же мастер-пароль.

Выше уже правильно отметили, что нужно использовать предоставляемые системой механизмы. Из всех вариантов это наиболее безопасное хранилище.
+2
MiXei4 ,  
Все ваши комментарии добавились НЕ в конец, а ответом к Magister7
Просто они оказались в самом низу, потому что ниже ничего нет :)
+1
aeryaguzov ,   * (был изменён)
Все, сдаюсь, удалено…
0
gurinderu ,  
Можно попробовать хранить пароли в облаке.)
0
Eternalko ,  
И мастер каждый раз вводить? Обычный пользователь обрадуется.
0
gurinderu ,  
А вы не боитесь, что мастер пароль тоже нужно где-то хранить? Введение дополнительного пароля ничего не решит.
+1
MiXei4 ,  
Мастер пароль нужно хранить только в голове. И это как раз решает большую часть проблем.
0
gurinderu ,  
Согласен, но это значит, что для каждой дешифровки пароля нужно будет вводить мастер пароль, что не совсем удобно. А в память его не сохранишь, потому что он потенциально становится не секурным.
0
matiouchkine ,  
0
Valle ,  
Но вводить мастер пароль все равно нужно, и на этом моменте его может перехватить троян.
–3
+1 –4
kalmarius ,  
А как дела обстоят в других хромоклонах — опере, стрингах, амиге?
+3
akirsanov ,  
В хроме CryptProtectData и CryptUnprotectData, причем с 33+ версии они шифруют даже куки, не говоря о паролях.
–4
+2 –6
amarao ,  
Можно уточнить: браузер расшифровать может, а злоумышленник, имеющий доступ к коду и данным браузера, расшифровать не может? Расскажите про эту сказку ещё что-нибудь.
+6
akirsanov ,  
Я такого никогда и никому не говорил, вы меня с кем-то путаете.
Однако BLOB данные в encrypted_data завязаны на wincrypt, а он привязывается к используемой машине.
Шифрование нужно для того, чтобы злоумышленники не скопировали файл с паролями/куками.
Расшифровать на локальной машине конечно же проблемы не составит.
Вот, например, код для дешифровки кук на локальной машине: www.ftium4.com/chrome-cookies-encrypted-value-python.html
–6
+2 –8
grigor7 ,  
Стринги уже давно переросли в Яндекс браузер.
+7
kalmarius ,  
Я.Б сменил логотип? Нет? Тогда в чем вопрос?
0
Aingis ,  
+1
kalmarius ,  
Да, я видел. Но не видел значительных изменений в иконке — те же стринги, только угловатые.
И я не пытаюсь оскорбить чьи-то чувства — нравится этот браузер — пользуйтесь на здоровье, но шуточное название «стринги» уже закрепилось за ним не слабее, чем «ослик» за IE.
–2
grigor7 ,  
Давайте ваши продукты тоже будем называть столь нелестным именем.
0
kalmarius ,  
Поймите, я и огромное количество других людей называем этот браузер так вовсе не со зла и не для того, чтобы кого-то обидеть — просто это первая ассоциация с его логотипом. И винить тут можно только дизайнеров, которые его нарисовали, теперь даже если его поменять, название долго будет преследовать этот продукт, поделать тут уже нечего.
–3
grigor7 ,  
Как хотите, но я считаю людей, которые высказывают вслух такие бредовые ассоциации, весьма ограниченными.
+6
+8 –2
SailorMax ,  
«Последней каплей стало голосование за новые функции в браузере, где, как вы уже поняли, про личные данные нет ни слова.»
Во-первых это голосование относится к «feature requests». По-вашему это «фича»?
А во-вторых «Note: previously the list was twice as large, but we removed what's already implemented as well as „In progress“ status.».

Так что не стоит так нервно реагировать на Technical Preview Snapshots. Выйдет Release Candidate или хотя бы Customer Preview с такой реализацией, тогда и пишите статьи.
–10
+17 –27
leoismyname ,  
Единственный пост о Vivaldi, который я плюсанул)
+23
+32 –9
Evengard ,  
Держите нас в курсе о ваших плюсах!
–8
Iforgot ,  
О! Новый браузер! Не ждали, не ждали…
–8
+9 –17
23rd ,  
В 2015м году пользоваться встроенным мастером паролей это себя не уважать. И неважно какой это браузер.
0
+1 –1
akoK ,  
Встречный вопрос, почему тогда эти мастера паролей продолжают использовать?
+7
+9 –2
23rd ,  
Потому что плевать на безопасность.
0
stack_trace ,  
Я пользуюсь им для хранения паролей на тех сайтах, на которых мне и правда плевать на безопасность. Кто-нибудь сопрёт мой пароль на богом забытом форуме, где я ни разу ничего не постил? На здоровье. И таких сайтов большинство, я даже пароли на них не помню.

А почему использование мастера паролей стало самонеуважением именно в 2015-м? Раньше было можно, а теперь нельзя? Какие вы предлагаете альтернативы?
+1
MiXei4 ,  
Не каждый будет/может разбираться во всём этом. Использовать какие-то сторонние решения. Вот «интернет», вот пароль, сохранить? Да…
Хотя для себя тоже не вижу смысла во встроенных паролях.
0
olegkrasnov ,  
Поясните.
+5
+6 –1
Ivan_83 ,  
Странные вы люди. Пароли зачем то сохраняете. Потом ругаетесь.

Если к вам в систему что то залезло то совершенно пофик шифрует браузер пароли в файлах или нет, нечто всегда может подключится к браузеру как отладчик или инжектнуть в него свой код или ещё массой способов заставить браузер выдать пароли.
С паролями из головы ничуть не лучше — их перехват тоже не проблема.

Единственная цель с которой имеет смысл шифровать где то в конфигах/файлах пароли — это чтобы люботные глаза их не увидели, потому что очень любопытные всё равно воспользуются инструментами и получат желаемое.
0
TheRipper ,  
Интересно, а ставит ли оно правильные права (-r для others). Это был бы более однозначный косяк.
+8
+9 –1
Shpankov ,  
Прошёл почти месяц, как я открыл в шестнадцатеричном редакторе файл ~/.config/vivaldi/Default/Login Data


Вообще-то данную операцию проделали другие люди ещё два года назад :)
news.ycombinator.com/item?id=6166731
www.zdnet.com/article/do-you-save-passwords-in-chrome-maybe-you-should-reconsider/

И — да, с тех пор ничего в системе хранения паролей в Chrome/Chromium не изменилось. Только почему в этом нужно винить Vivaldi, который появился на свете всего месяц назад, да и то пока в виде Tech Preview — совершенно непонятно. :)
+2
Shpankov ,  
А вообще, подробнее ответил здесь.
–4
+3 –7
mortenoir ,  
Когда я поставил себя на место пользователя, то размышлял так: «Vivaldi — браузер, основанный на Chromium. Мне ничего не известно о том, как он спроектирован, но я вижу, что пользоваться им удобно и, надеюсь, безопасно. Поэтому, когда я захожу под своей учёткой на сайт N и вижу, что есть возможность сохранить пароль, скрытый звёздочками, то доверяю браузеру защиту свох данных». К сожалению, меня как простого пользователя не предупредили, что непробиваемой защиты не существует и только на мне лежит ответственность по сохранению Login Data в тайне.

Не поймите неправильно, цель поста — не обвинить вас, но осведомить людей. И было бы лучше для всех, если бы это сделал не я, а вы.
0
+1 –1
Eternalko ,   * (был изменён)
Все браузеры себя так ведут. Вопрос только в том сможете ли лично Вы найти нужный файл. Причина выше.
0
+1 –1
Shpankov ,  
Это очень хорошо, что вам понравился новый браузер Vivaldi и вы решили помочь сделать его ещё лучше. Спасибо вам за это. Проблема в том, что в своём исследовании вы остановились на полпути и не стали глубже изучать проблему. В результате получилось такое невразумительное обвинение разработчиков Vivaldi в некоей преднамеренной халатности, да ещё и в нежелании реагировать на сигналы пользователей, публикуемые на официальном форуме. Между тем, ситуация вполне простая и объяснимая.

Если в массовом продукте есть встроенная система шифрования и хранения паролей — она по определению ненадёжна. Просто потому, что собственно ключ шифрования встроен в продукт и выколупать его оттуда не представляет труда. Наглядный пример тому — Wand/Unwand. Одним из возможных решений является Мастер-пароль, назначаемый самим пользователем. Как подобная защита будет реализована в Vivaldi — пока не могу сказать, над этой темой работают наши разработчики. В любом случае, защищённость данных пользователя у нас имеет самый высокий приоритет, поэтому не стоит поднимать панику раньше времени. То, что мы сейчас показываем пользователям — это такая технологическая заготовка, которую ещё пилить и пилить до состояния полноценного массового продукта.
–3
mortenoir ,  
Спасибо за пояснение. Сложность реализации данного функционала, так же как и подводные камни, про которые Вы упомянули, для меня (как и для многих здесь) понятна. В сообщении упор был сделан на иное: «ожидая одного — сообщения всем пользователям временно не использовать функцию сохранения паролей, пока не будет реализовано шифрование». Удивляет лишь, что с такой мощной обратной связью Vivaldi решил не говорить об этом.
0
iG0Lka ,  
Пилить и пилить это хорошо…
Но вот эту заготовку можно уже сейчас использовать для запуска игр, например БФ4.
А потеря аккаунта в БФ4 — это потеря заметной денежной суммы.
Поэтому правильно было бы предупреждать пользователя о том, что сохраняя пароль он рискует т.к. пароли даже не шифруются.
0
Shpankov ,  
Так они и в других браузерах не шифруются :)
Вас они много предупреждают? :)
При этом почему-то виноватым в том, что встроенные менеджеры паролей в браузерах ненадёжны в принципе, оказывается браузер Vivaldi, который ещё и на свет толком не родился :)
0
iG0Lka ,  
Другие — обычные броузеры… а вы претендуете на народного :)
0
Shpankov ,  
Да, это — высокое звание :)
Будем стремиться ему соответствовать :)
–2
charliez ,  
Хром уже давным-давно запрашивает системный пароль при попытке просмотреть сохраненные пароли.
–3
guai ,  
Может быть они намекают, что пароли, в большинстве случаев, не нужны, нужен openID
0
ryvasy ,  
Использование которого тоже чаще всего подтверждается паролем
0
guai ,  
Который 1 и его легче запомнить
0
Anakros ,  
Зато если его каким-либо образом украдут, ух, мало не покажется.
0
guai ,  
ну так же можно пароль на почту потерять, сейчас чаще всего все пароли всех сайтов завязаны на нее. Если быть параноиком, то теоритически можно openId организовать со вторым каналом связи, как делают банковские системы, смска на телефон, например.
Конечно, это может сделать и каждый сайт индивидуально, но тогда типичная регистрация будет намного дольше проходить. ну и всем подряд раздавать телефон не хочется — спамом завалят