У Viber есть одна интересная фича: синхронизация начинается с момента установки. То есть если вы установили Viber на PC в 10.00, то сообщения, отправленные и полученные в 9.58 в истории вы не увидите. Зато все последующие, вне зависимости от того, запущена была программа или нет, при запуске подхватятся автоматически.
Поэтому вариант с новой установкой у меня не проходил. Я обратился к официальному способу бэкапа сообщений. Сайт вайбера сообщал, что такая возможность присутствует. Но с одним интересным нюансом — эту историю нельзя восстановить. Не знаю, кто это придумал и чем он руководствовался при таком решении, но запасаться бокалом вина, устраиваться у камина и почитывать свои старые сообщения я не собирался.
Ну ладно, попробуем другой способ — полный перенос программы. Для тех, кто не знаком с Viber для Windows, расскажу, что сам себя и всю информацию он хранит в личной папке пользователя. Для Windows 7 это %USERPROFILE%\AppData\. В подпапке Local хранится сама программа, а в Roaming — то, что нас более всего интересует, волшебная папка с номером телефона. Ещё, конечно, не лишним будет упомянуть о папке ViberDownloads в Documents, которая является кладезью для любителей украсть провокационные фото. Что ж, условия были практически идеальные — на старом и новом компьютерах была установлена Win7 x64, имя пользователя и доменное имя на обоих PC было одинаковым. Пробуем просто перенести и вуаля — получаем при запуске следующее сообщение:
Результат меня удивил — историю на фоне я таки увидел. При нажатии кнопки «Продолжить» проходит новый процесс регистрации, при котором, конечно же, всё стирается. Я решил копать в этом направлении дальше.
В Roaming в папке с номером телефона я нашёл 2 файла *.db и решил подсунуть только их. Результат тот же. А по отдельности?
Вуаля! С viber.db прокатило! Но, правда, пришлось предварительно пройти регистрацию.
Итак, для переноса истории сообщений требуется:
- Предварительно скопировать файл %USERPROFILE%\AppData\Roaming\ViberPC\%номер_телефона%\viber.db
- Пройти регистрацию на новом компьютере
- Перенести наш файл viber.db в %USERPROFILE%\AppData\Roaming\ViberPC\%номер_телефона%\ на новом PC
Но на этом я не остановился. А что, если попробовать забрать файл viber.db с другого номера? И…
Заработало. Выходит, я могу прочитать сообщения пользователя, имея доступ к его профилю. Отправлять от его имени не смогу, как и читать сообщения, пришедшие/отправленные уже после копирования файла другого пользователя. Радоваться мне от этого или грустить, я не решил. Но зато решил уведомить об этом службку поддержки Viber. Три тщетных попытки и месяц ожидания ответа — не то, что я ждал от довольно крупной компании.
Если на Хабре есть представители компании, я бы хотел, чтобы они ответили на вопрос: это баг или фича?
P.S.: Первый запрос в службу поддержки был отправлен 30 декабря прошедшего года. 24 января (!) мне, наконец, ответили и попросили расписать ситуацию подробнее. Справедливости ради, я смог это сделать только 1 февраля. Но с тех пор ни слуху, ни духу, поэтому с чистой совестью публикую этот материал.
Комментарии (52)
Gray_Wolf
08.02.2016 13:10Три тщетных попытки и месяц ожидания ответа — не то, что я ждал от довольно крупной компании.
Это вы с IBM видимо не общались. Российский офис отправляет текст по тикету на L3, где он и пропадает на пару недель.
это баг или фича?
Т.к. Viber не позиционируется как защищённое средство связи то это фича. Как и у кучи других программ. В том-же MS Outlook история по умолчанию не шифровалась в старых версиях.(как обстоит дело сейчас не знаю)Dreyk
09.02.2016 12:31ага, а когда я у них спрашивал, почему бы не добавить поддержку прокси в PC-клиенте, они мне ответили, что это очень несекурно, мои разговоры тогда могут слушать, а переписку читать
archerz
08.02.2016 13:11+4viber.db — по сути ничем не защищенная sqlite база. Видимо по этому и нет никакой привязки в программе к номеру телефона под которым вы её открыли, так как базу можно открыть в любом sqlite просмотрщике.
isotoxin
08.02.2016 13:25+6Выходит, я могу прочитать сообщения пользователя, имея доступ к его профилю.
Справедливости ради, придумать защиту от этого довольно сложно. Точнее, все решения можно поделить на три группы:
1. С привязкой к железу/ос без шифрования
2. С привязкой к железу/ос с шифрованием
3. С шифрованием паролем
У всех способов есть недостатки, и весьма существенные:
1 Вообще не решает проблему. Зная алгоритм привязки, всегда можно данные прочитать.
2 Большая вероятность потерять все данные при смене параметров привязки (например, привязавшись к mac адресу сетевой карты, вы теряете профиль, если эта сетевая карта у вас сгорит)
3 Требует от пользователя ввода пароля, что может быть неудобным.
PS. В Isotoxin'е я использовал 3-й вариант (опционально)xhumanoid
08.02.2016 14:40третий вариант не сильно решает проблему:
1) есть 2 компа и история синкается
2) на одном из них поменяли пароль на вайбер
3) на втором уже этим паролем не прочитать сообщения
поэтому придется выбирать одно из 2х:
1) на историю делаем еще один пароль именно для шифрования истории
2) храним ключ шифрования на сервере и после логина высылаем его на клиент
как делать правильно лично я признаюсь не знаюTemmokan
08.02.2016 15:35-13. Ключ для шифрования истории пользователь создаёт сам, желательно — на этапе установки. Желательно сразу же нарисовать сто окон, в каждом из которых потребовать сохранить ключ где-нибудь в надёжном месте и тут же проверить, в действии. После этого ключ нигде не хранить — сама идея его хранения вместе с зашифрованными данными выглядит очень странно («ключ под ковриком»).
Потерял ключ — сам себе злобный Буратино. Может, немного жестковато, но как минимум просмотр установленной программы и анализ созданных ею файлов не поможет злоумышленнику прочесть чужую историю.xhumanoid
08.02.2016 15:56+1а вот теперь расширьте это на:
1) у меня есть компьютер и телефон
2) ноуты я периодически меняю
3) телефоны бывают меняются еще чаще
как это все ДОСТУПНО объяснить рядовому пользователю например того же viber?
да он пошлет всех в известном направлении еще на этапе установки, так как каждое лишнее действие на этапе установки-настройки это потерянная аудитория.
поэтому есть масса людей которым плевать на их приватность (соцсети как пример), а уж если тебе так дорога приватность, то ты настроишь нормальные права доступа к папкам, все это запихаешь на шифрованный раздел, ну и конечно просто не будешь пользоваться этими мессенджерами которые всю историю хранят в открытом виде на серверах компании
p.s. кстати, я что-то не уловил часть: как нам читать наши же сообщения, если ключ где-то далеко, ну или ключ шифровать текущим паролем и сохранить рядом, но тогда остается вопрос что если у тебя украли пароль, то из старых баз вытянут твой ключ?Temmokan
08.02.2016 16:01Безопасность и удобство не уживаются.
Хотите, чтобы регистрировалсячеловек, которому забить на безопасностьрядовой пользователь — сделайте пометку «Advanced...» для тех, кому не всё равно. Кому всё равно — пусть жмёт на «Next», «Next»… и так далее до полного счастья. А я вот выберу режим максимальной паранойи, чтобы никакие ключи не хранились на вашем сервисе. Ибо нефиг.
Поскольку помимо того, что я сам настрою всё по-человечески, есть ещё уязвимость by design: если сервис при любых обстоятельствах может выслать ключ шифрования почтой или ещё чем-нибудь — самый смысл шифрования теряется.xhumanoid
08.02.2016 16:31да, это идеальный вариант, но тут начинаются чисто финансовые вопросы: а стоит ли делать еще один режим работы ради 0.01% пользователей или эти же ресурсы потратить на улучшение существующего функционала и увеличить аудиторию на +10%?
ответ я думаю ожидаем =( мне это самому не нравится, но бизнесу не интересны технологии ради технологий, он строится немного для другогоTemmokan
08.02.2016 16:35Бизнес, простите, о рисках в принципе думает? Если думает, то, простите, чем?
Если увести историю с учётной записи в принципе возможно в любой ситуации — то скандалы на этот счёт — всего лишь вопрос времени. Если бизнес считает, что подобная огласка и ярлык производителя, которому начхать на безопасность, пойдёт только на пользу — без проблем.
Но конкретно я Viber пользоваться теперь поостерегусь. Подобное небрежение безопасностью многое говорит о разработчиках.xhumanoid
08.02.2016 16:49+1ну давайте посмотрим состояние индустрии:
1) аська никогда не хранила переписку в закрытом виде + логи на сервере
2) skype никогда не хранил переписку в закрытом виде + с недавнего времени логи на сервере
3) viber никогда не хранил переписку в закрытом виде + логи на сервере
4) whatsapp не хранит переписку в закрытом виде + логи на сервере
5) telegram не хранит переписку в закрытом виде ( habrahabr.ru/post/240521 с того момента вроде ничего не поменялось), хотя и позиционируются как защищенный мессенджер, но политика разрабов «конечные устройства защищайте сами»
поэтому я могу смело сказать: производителям начхать на безопасность конечных точек, максимум что они беспокоятся это о mitm атаках, а конечные устройства должны защищать сами пользователи (шифрованный раздел для desktop, шифрованная sd для телефонов и тд)
если у вас есть другие примеры, то с удовольствием выслушаюTemmokan
08.02.2016 17:22Конечные точки и так должны защищать себя сами, НО: в самой архитектуре приложения не должно быть уязвимости вида «ключ под ковриком».
Касательно того, чем пользуюсь: меня вполне устраивает XMPP+OTR, или BitMessage.
Не то чтобы я не пользовался всем перечисленным. Приходится — если абонент именно в Skype, нелепо пытаться перегнать его в BitMessage. Вот и приходится осознавать масштаб возможной опасности и действительно приватное уводить в другие каналы.
khim
08.02.2016 17:10Бизнес, простите, о рисках в принципе думает? Если думает, то, простите, чем?
Кошельком он думает, кошельком. При этом глобальная катастрофа могущая случиться раз в пять лет — считается нормой: за это время бизнес, скорее всего, разорится.
Когда бизнес немного вырастает «временной горизонт» расширяется, но в любом случае оказывается весьма коротким по человеческим меркам.
Грубо говоря раз в 20-30 лет платить пострадавшим от Чернобыля дешевле, чем стоить реакторы, которые не взрываются. Увы.Temmokan
08.02.2016 17:22Воистину увы.
Но как минимум полезно знать про альтернативы, чтобы хотя бы уж самоум себя уметь защитить, при прочих неравных.
Seekeer
08.02.2016 15:39+1offtopic: с недавнего времени Viber стал очень сильно грузить проц. 10%, а временами и до 25 доходит. Просто когда в фоне висит и ничего не делал, раньше такого за ним не наблюдалось. Никто не сталкивался?
bigfatbrowncat
08.02.2016 16:27+9Есть такой дизайнер — Роман Воронежский. Долго работал на студии Лебедева. Вот его цитата про цвета:
Цвет — явление идеологическое. Идеология такая: сам по себе цвет не значит ничего. Вообще ничего. Беседы о том, что какие-то цвета с какими-то не сочетаются или что-то означают в отрыве от контекста — шаманство хуже гороскопов. «Красный означает опасность», — говорит человек, который сегодня утром мужественно съел помидор и не дрогнул. «Черный — слишком мрачный», — утверждает второй, который сегодня утром читал черные буквы на белом листе и смеялся. «Серый скучный», — жалуется третий. Сами вы скучный. Посмотрите на Бастера Китона — весь из оттенков серого, а повеселей вас будет. «Синий символизирует надежду, зеленый — обновление», — вешает лапшу дизайнер. Дизайнер, не вешай. Клиенту лучше честно сознаться: вот 16 млн цветов (если rgb) или веер (пантон), тыкайте пальцем. Покрасим в любой. Но кнопка «Удалить» останется красной (а с этим клиент никогда и не спорит). Когда мне говорят, что красный с зеленым не сочетаются, я сатанею. Посмотри на грядку клубники, дундук!
Оригинал, к сожалению, найти не могу, но ссылка на цитату есть в «Ководстве».bigfatbrowncat
08.02.2016 16:32Ой, пардон! Коммент оставил не в тот пост. Целился в этот: megamozg.ru/company/redhelper/blog/23930
Не обращайте внимания. ВООБЩЕ НЕ РЕЛЕВАНТНО.
WaveCut
08.02.2016 17:02+4Имея доступ к профилю пользователя я могу не только читать его историю, а еще и ходить по его сайтам, писать и читать его почту, смотреть его документы.
Не имея доступа к профилю ничего из этого не могу.
Проблема высосана из пальца, безопасность обеспечивается средствами ACL вашей операционной системы по выбору — Windows, Linux, OS X.Iamgavr
08.02.2016 17:18Не спорю. Но зачем создавать мнимое ощущение безопасности сообщением о том, что сессия завершена?
Проблемы как таковой в этом не вижу. Проблема в том, что viber:
а) не имеет внятного официального способа сохранения переписки;
Если переписка хранится в открытом виде — почему нельзя использовать это для переноса, а не писать, что бэкап невозможен?
б) не может нормально организовать поддержку пользователей.
Когда я обратился в техподдержку второй раз спустя неделю ожидания, получил такой ответ: «There is no need to submit any further tickets – the agent will be in touch with you as soon as possible.».WaveCut
08.02.2016 17:23Такой попап, например, выскочит, если к данным допступ будет получен случайно или намеренно, путем копирования. Или произойдет реальная деактивация учетки в Вайбере. Результат — ваша история не останется на девайсе, с которого осуществляется попытка доступа. Что тут мнимого то?
а) не могу комментировать.
б) не могу оценить. :-)Iamgavr
08.02.2016 17:29Имея доступ к профилю пользователя я могу не только читать его историю, а еще и ходить по его сайтам, писать и читать его почту, смотреть его документы.
Такой попап, например, выскочит, если к данным допступ будет получен случайно или намеренно, путем копирования.
Так зачем этот попап? Не совсем понимаю вашу мысль.
UPD.
Или произойдет реальная деактивация учетки в Вайбере.
Вот в этом случае он нужен, я согласен.prizzrak
08.02.2016 22:44Попап появился, потому что вайбер задетектил, что база была перемещена с одного компьютера на другой и после этого деактивировался. Самого удаления базы данных не происходит для того, что пользователь мог совершить fast registration — регистрацию на тот же номер без потери данных. Если совершить регистрацию на другой номер — база удалиться.
Iamgavr
09.02.2016 05:14Если бы база не пропадала целиком после появления такого попапа — этой статьи бы не было. Все данные после нажатия кнопки «Продолжить» удаляются.
Temmokan
08.02.2016 18:24-5Если историю можно прочитать, просто получив доступ к файлу на чтение, это вполне реальная проблема безопасности.
Шифрование для подобных ситуаций и придумано. В любом случае, полезно в документации по продукту такие тонкости указывать, чтобы не было потом неприятного сюрприза.WaveCut
08.02.2016 18:40+4Ну, возьмем к примеру всеми любимый Skype:
Они тоже отдают приватность истории на откуп операционной системе, и ничего — апокалипсиса не случилось.
Я посторюсь: проблема высосана из пальца.Temmokan
08.02.2016 21:51-5Похоже, разное понимание того, что такое безопасность.
Занятно, правда, что люди с альтернативным пониманием так своеобразно реагируют,.
Оставайтесь при своём убеждении, у вас его никто не отнимает. Для вас это — надуманная проблема, в третйи раз можете не повторять.
ivn86
09.02.2016 11:14Они тоже отдают приватность истории на откуп операционной системе, и ничего — апокалипсиса не случилось.
Буквально 18 часов назад: Новый вирус ворует переписку и записывает звонки в Skype
начинает копировать переписку
P.S. Почему Вы открываете бинарную БД текстовым редактором? habrahabr.ru/post/160315WaveCut
09.02.2016 11:36Вирусу не помешает читать историю и копировать переписку, если она будет зашифрована способом, который уж вирусописатели точно отреверсят. Зачем это делать?
P.S. Потому что мне лениво для комментария ставить клиент sqlite.
Nagg
08.02.2016 23:18Справедливости ради, когда я сохраняю локальные данные в Андроид приложении в data — никакое другое приложение в них не залезет и не сольет их (если не рут, но тогда ССЗБ). А в Windows 90% пользователи понятие не имеют про ACL и данные тырятся простейшим копированием файлика. Тут ничего не поделаешь и это на деле реальная проблема. Поставишь какой-нибудь, возможно, даже доверенный софт, а он незаметно сольет базы скайпа, вайбера и ничего не заметишь. Как по мне так стоило бы хотя бы симметричным шифрованием с ключем на основе телефонного номера + соль (не гарантия, но отпугнет бОльшую часть какеров).
achekalin
08.02.2016 20:15+2Меня в вайбере много устраивает, кроме его надоедливости на телефоне (Android, если быть точным). Если я получил сообщение, но не «прочел его» (по факту, я, скажем, увидел текст области уведомлений, и уже «смахнул» его), то вайбер через некоторое время начинает опять напоминать про него. Крайне неудобно: скажем, едешь в машине, получил, прочел, а телефон через время опять внимание к себе привлекает. Еще проще юскейс, когда человек читает сообщение на смартчасах без обратной синхронизации (Pebble как пример) — обратной связи, что человек что-то прочел, нет, и вайбер продолжает и продолжает долбить юзера на телефоне тем же сообщением (
«Фичу» не отключить, увы.WaveCut
08.02.2016 23:55Так это, там же на андроидах куча настроек всплывашек и нотификаций. У меня яблоко, но помню смутно, что отключается окно и назойливость :)
creker
09.02.2016 00:23+6Обожаю такие срывы покровов. Так мило и наивно все это выглядит. Особенно негодование в конце, когда служба поддержки игнорирует это величайшее открытие.
Iamgavr
09.02.2016 05:22+1Прежде всего, статья писалась, чтобы показать способ переноса сообщений. В статье лишь 5 строк о «ужасной уязвимости, ставящей под угрозу существование человечества. Или вы видите жёлтый заголовок про тот самый срыв покровов?
Техподдержка могла элементарно ответить о том, что всё ОК и они знают об этом, не о чем беспокоиться, мол, так и задумано. Я бы поверил и обрадовался.
Gero
09.02.2016 04:41Viber для PC настолько убог и кастрирован, даже по сравнению со своей мобильной версий, что даже не хочется его обсуждать.
Pinsky
09.02.2016 11:04А что там с серверами авторизации уже решили проблемы?
У меня на блэкберри классическая ошибка, что номер не валиден.
k12th
Cheater
Я сам категорически против всей этой всеобщей любви к проприетарным мессенджерам, но к сожалению сообщество jabber/xmpp само виновато в сложившейся ситуации. На дворе 2016 год, а в мире XMPP до сих пор не осилили кроссплатформенную аудио- и видеосвязь. Покажите хоть 1 работающий кроссплатформенный клиент (или хотя бы связку клиентов) для *nix, win, mac, android, ios — чтобы я мог позвонить с линуксового лэптопа на iphone собеседника и наоборот, с андроидного планшета на win машину, и т.д. С текстовыми сообщениями хоть слава богу всё хорошо, десятки клиентов под все платформы на любой вкус, но это ничто по сравнению с тем же скайпом, на который кликаешь кнопку установки под любой ОС и через 3 минуты можешь звонить собеседнику опять же на любое устройство с любой ОС. Это я ещё не говорю про внутренние проблемы формата XMPP.
kAIST
Это не гики променяли, а обычные пользователи. А гикам приходится подстраиваться.
k12th
Боюсь, что гики. Подсчитайте количество постов и комментариев на хабре с содержанием «уииии, стикеры ^_^»:)
inkvizitor68sl
Гики всё ещё сидят в irc, xmpp и аське. А хабр заполонили как раз таки «обычные пользователи».
k12th
А в аське еще кто-то сидит?
inkvizitor68sl
Почти все те же лица. Отвалилось может процентов 20 контактов.
k12th
Ничего себе. Вспомнить, что ли, пароль…
Nagg
>> У нас же все это было в великолепном джаббере с сотнями клиентов на любой вкус
А можно мне хоть один из этих клиентов под Windows чтобы поддерживал MUC и хай-дпи экран и не выглядил как нечто ущербное из 90ых (ткаббер, пидгин, квип, пси не подходят под эти требования). И под iOS с MUC тоже пожалуйста.
k12th
Джаббер сдох задолго появления хайдпи под виндой. Я же говорю — профукали все полимеры.