Whatsapp net что это
Чем мы можем помочь?
Конфиденциальность — в нашей ДНК. Ваше личное общение защищено сквозным шифрованием. Это значит, что никто за пределами ваших чатов, даже WhatsApp, не сможет прочитать или прослушать ваши сообщения и звонки. Мы стремимся ограничить объём информации, которую собираем для обеспечения безопасного и надёжного функционирования нашего сервиса на международном уровне.
De-identified Telemetry (DIT) — это система, которую мы тестируем в настоящий момент, чтобы собирать информацию о безопасности, надёжности и эффективности нашего сервиса. Благодаря ей мы можем следить за тем, чтобы WhatsApp функционировал должным образом для более чем двух миллиардов пользователей. Такая информация не связана с нашими пользователями или их номерами телефона, поэтому название этой системы в переводе означает «Обезличенная телеметрия».
Данные, собранные с помощью DIT, связаны со случайными, меняющимися идентификаторами, чтобы мы знали, что полученные данные являются подлинными, но при этом не имеют отношения к конкретным пользователям. Они передаются напрямую из приложения на наши серверы посредством зашифрованного соединения по адресу dit.whatsapp.net/deidentifiedtelemetry. Мы не делимся этими данными с Facebook. Наши цели при использовании DIT включают, помимо прочего, анализ того, сколько человек используют устаревшие версии приложения, без привязки такой информации к конкретным пользователям.
Более подробную информацию об этом можно найти в нашем инженерном блоге или в техническом документе, описывающем, как работает такая технология по обеспечению конфиденциальности.
Что такое веб версия Ватсап и как пользоваться на компьютере
Есть вещи, которые удобнее делать на компьютере с относительно большим экраном, чем на смартфоне. Если уже есть аккаунт Ватсап на телефоне, то полезно получить доступ к нему на компьютере. Для этого понадобится веб версия Ватсап на компьютере.
Придется установить связь между аккаунтом на телефоне и на компьютере. После этого все сообщения будут синхронизированы на наших устройствах, и с ними можно будет работать как на телефоне, так и на компьютере. Мы будем видеть одинаковые сообщения на обоих устройствах. Все изменения, которые мы будем вносить, будут синхронно отображаться на компьютере и на телефоне.
Что удобнее делать на большом экране компьютера по сравнению с маленьким экраном телефона? Например, лучше смотреть фотографии и оценивать их качество. Проще скачивать хорошо получившиеся фото на компьютер и пересылать их, например, по электронной почте. Легче печатать длинные сообщения и т.п.
Что такое веб версия Ватсап и основные требования
Веб версия Ватсап (WhatsApp Web) – это доступ к аккаунту WhatsApp на вашем телефоне, причем Вы получаете эту возможность на компьютере.
Минимальные требования для того, чтобы пользоваться WhatsApp Web:
1) На телефоне должен быть уже действующий аккаунт Ватсап.
2) Необходим стабильный интернет, который подключен и на телефоне, и на компьютере.
3) Чтобы открыть веб-версию мессенджера, желательно использовать последнюю версию одного из следующих браузеров: Гугл Хром (Google Chrome), Мозилла (Firefox), Опера (Opera) или Сафари (Safari).
В Опере мессенджер Ватсап уже встроен в этот браузер (рис. 1). Чтобы открыть веб версию WhatsApp, достаточно открыть на своем компьютере Оперу, кликнуть на значок Ватсапа и выполнить синхронизацию с телефоном, о которой речь пойдет далее.
Как подключить веб версию Ватсап на компьютере для телефона Андроид
Для синхронизации компьютера и телефона необходимо, чтобы оба устройства были под рукой, и они должны быть подключены к интернету. Суть синхронизации между двумя устройствами состоит в том, чтобы на компьютере просканировать QR-код с помощью своего смартфона. Далее приведена инструкция, как это можно сделать.
1) Откроем веб версию Ватсап на компьютере (рис. 2). Для этого надо открыть браузер и перейти по ссылке https://web.whatsapp.com/.
Можно сразу поставить галочку напротив пункта «Оставаться в системе» (красная линия на рис. 2), чтобы не завершать сеанс на компьютере. Тогда в следующий раз можно будет открыть веб версию Ватсапа на компьютере в том же браузере без дополнительных действий с QR-кодом.
2) Теперь берем в руки смартфон, открываем там Ватсап. На Андроиде тапаем на значок «Другие опции», который находится в правом углу и состоит из трех вертикальных точек (рис. 3):
После клика по значку с тремя точками откроется меню, которое показано на рисунке 4:
Привязка устройства для веб версии Ватсапа на компьютере
В меню (рис. 4), появившемся на смартфоне, нажимаем на пункт «WhatsApp Web». На телефоне откроется экран с надписью «Используйте WhatsApp на других устройствах» (рис. 5):
3) Кликаем по зеленой кнопке «Привязка устройства». Если на смартфоне используется биометрическая идентификация, то надо выполнить те инструкции, которые появятся на экране.
После клика по кнопке «Привязка устройства» на смартфоне появится окно «Сканировать QR-код» (рис. 6):
Теперь нужно поднести смартфон к экрану компьютера, чтобы прочесть открытый там QR-код. Обращаю ваше внимание на то, что этот код должен быть полностью виден на компьютере. Если он не виден целиком, то, возможно, надо мышкой прокрутить бегунок (полосу прокрутки слева) в окне с кодом так, чтобы код целиком появился на экране. Можно еще попробовать нажать на клавишу CTRL на клавиатуре компьютера и, не отпуская ее, немного покрутить колесиком мышки. Все эти манипуляции необходимы, чтобы QR–код на компьютере был виден целиком, и его можно было прочитать с помощью телефона.
4) На рис. 7 слева находится рамка на компьютере, она обведена в красный квадрат. Другая рамка открыта на телефоне (справа на рис. 7) и тоже заключена в красный квадрат. Эти две рамки должны совпасть на компьютере и на смартфоне. Для этого телефон подносим к экрану компьютера и держим его так, чтобы рамка для QR-кода на телефоне совпала с рамкой кода на компьютере.
Итак, благодаря телефону, был просканирован QR-код на экране компьютера. Тепрерь можно пользоваться Ватсапом и на компьютере, и на телефоне. При этом все сообщения на обоих устройствах будут синхронизированы.
Видео: Что такое веб версия Ватсап и как пользоваться на компьютере
WhatsApp, что внутри?
В продолжение направления публикаций исследований нашей компании о внутренних механизмах крупнейших в мире мессенджеров. Сегодня будем смотреть на WhatsApp в его актуальном состоянии. На самом деле внутренности не сильно изменились за последние три года, изменения там скорее косметические.
В этой статье мы подробно посмотрим как можно изучать протокол работы мессенджера, ответим на вопрос «может ли WhatsApp читать нашу переписку?» и приложу весь необходимый код на языке PHP.
Общая информация
В качестве формата сообщений WhatsApp использует доработанную версию протокола XMPP. Все сообщения сжимаются посредством замены часто используемых слов на 1 или 2 байтные токены (например вместо «message» — записываем байт 0x5f), таким образом получается то, что названо FunXMPP.
Некоторые пакеты могут быть дополнительно сжаты zlib. Полученный пакет шифруется AES GCM 256-бит и передаётся на сервер.
Для получения ключей шифрования клиент выполняет хэндшейк noise protocol. Вот здесь хорошо описано. От воплощения в коде все разработчики открытых реализаций почему-то отказались и повесили плашку «end of support», мы это поправим.
При первом подключении выполняется полный хэндшейк. После успешного подключения к серверу каждый раз выдаётся новый ключ для следующей сессии, при помощи которого в дальнейшем выполняется подключение без обмена ключами.
WhatsApp поддерживает сквозное шифрование с использованием libaxolotl (Signal Protocol), в коде реализованы две версии — сначала они просто сделали шифрование, а потом добавили выравнивание и назвали это v2. Тут есть только одна проблема — т.к. это централизованная система, то и передача ключей идёт через сервера WhatsApp, так что чисто технически нет никаких препятствий для разработчиков мессенджера передать подставные ключи шифрования и полностью читать переписку. Но это не имеет обратной силы, — прочитать сообщения задним числом не получится.
Кстати, при получении сообщения от не авторизованного контакта — в мессенджере отображается кнопка «пожаловаться на спам», нажав на неё мы не только заблокируем контакт, но и перешлём по защищенному каналу (уже в открытом виде!), текст сообщения. Без изучения кода приложения целиком нет возможности гарантировать, что этот функционал не используется в каких-либо других случаях.
Для проверки аутентичности ключей шифрования в приложении WhatsApp можно зайти в карточку контакта, выбрать пункт «Шифрование», после чего приложение предложит просканировать QR-код на устройстве получателя. Таким образом, кстати, можно сделать кастомное приложение на базе протокола WhatsApp, которое будет постоянно следить за статусом ключей шифрования и выдавать красивые плашки «АНБ следит за вами» или «Вы в безопасности»: учитывая многообразие мессенджеров, — заменить один из них на такое приложение будет даже полезно.
Алгоритм работы можно предположить следующий: устройство отображающее QR-код кодирует в него свой публичный ключ, устройство считывающее QR-код сверяет ключ с имеющемся в своей базе данных. Это безопасный способ верификации ключа, но только при отсутствии закладок в приложении.
При отправке мультимедиа файлы загружаются на сервера WhatsApp, мы не проводили дополнительные исследования шифруются ли они там. Скорее всего не шифруются, т.к. разработчик приложения себе доверяет, а ссылка на файл передаётся по защищенному сквозным шифрованием каналу.
Регистрация учетной записи
Регистрация проходит в три https-запроса на домен v.whatsapp.net (их можно подсмотреть любым известным способом, например burp или mitmproxy, в приложении используется certificate pinning, который обходится при помощи ssl kill switch).
v.whatsapp.net/v2/exists?cc=код_страны&in=телефон&id=id_устройства&lg=en&lc=zz
не делает ничего полезного, раньше, скорее всего, служил для проверки не зарегистрирован ли уже этот номер (скорее всего до момента, пока кто-то не стал перебирать их базу)
v.whatsapp.net/v2/code?method=sms&cc=код_страны&in=телефон&token=токен&sim_mcc=mcc&sim_mnc=mnc&id=id_устройства&lg=en&lc=zz&параметры_сквозного_шифрования
Собственно запрашивает код sms активации. Так же может использоваться аналогичный запрос для получения звонка. Параметры сквозного шифрования не обязательны, — их можно настроить при дальнейшем подключении. Токен получается так:
Первая строка — это зашифрованная строка landscape, что бы это не значило. Версию приложения (21752) можно подставить любую (самые любопытные могут попробовать зарегистрироваться ещё не вышедшей версией), в самом коде приложения хэш от версии зашит готовый, но что-то похожее на md5-хэш довольно быстро подбирается.
v.whatsapp.net/v2/register?cc=код_страны&in=телефон&code=код_из_смс&id=id_устройства&lg=en&lc=zz
Этот запрос, соответственно, подтверждает регистрацию с кодом полученным по смс или звонку.
Всё это известно не первый день, — есть несколько реализаций протокола WA16 (Chat-API, Yowsup), от текущего WA20 отличие заключается по-сути только в Noise Protocol. Обладая этой информацией мы можем разработать локальный MITM для просмотра расшифрованного трафика приложения. Т.к. изначально протокол приложения XMPP — то всё что там происходит будет вполне понятно сразу из расшифрованного трафика, поэтому погружаться в дебри дизассемблера особой нужды нет.
Для запуска MITM — мы представимся настоящим сервером WhatsApp, выполним полный хэндшейк, после чего наше приложение будет прослушивать трафик перенаправляя его на оригинальный сервер whatsapp и обратно. Для этого нам понадобится изменить оригинальное приложение:
Все операции проводятся в следующей конфигурации: iPhone 4, iOS 7.1.2, IDA 7, WhatsApp 2.17.52.
Патчим приложение
В регистре R0 как раз хранится serverStaticPublicKey и при его отсутствии выполняется переход к FullHandshake. А мы сделаем этот переход безусловным. Для этого заменим два байта
В декомпиляторе видим, что одна из веток условия стала недостижимой и не отображается.
Нам необходимо чтобы функция всегда возвращала единицу. Сейчас результат проверки сертификата из регистра R6 кладется в R0.
Сделаем так чтобы в R0 записывалась единица
В результате получаем
Приложение собрано со всей отладочной информацией, поэтому дополнительно выполнять переименования, описывать структуры и вообще выполнять процесс реверсинга — при создании патча фактически не требуется. Изображения приведены сразу после запуска декомпилятора, без дополнительной обработки.
iOS 7.1.2 не проверяет аутентичность бинарных файлов приложений, поэтому все изменения можно сделать прямо в файле приложения. В более поздних версиях iOS можно сделать эти же изменения в памяти запущенного приложения.
Пишем код.
Далее при помощи IDA и долгих кропотливых усилий подготавливаем код успешно выполняющий NoiseHandshake на серверах WhatsApp. Затем реализуем фейковый сервер — делаем все те же операции шифрования, но в обратном порядке (звучит просто, но если не занимаешься этим каждый день — та ещё головная боль). Готовый код лежит здесь.
Скачиваем на компьютер приложение MITM полученное по ссылке выше. Устанавливаем PHP 5.6 (подойдёт и другая версия, в моей конфигурации использовалась именно эта версия). Так же понадобится ещё две библиотеки:
— первая
— вторая
Перехватываем соединение
Остаётся только заставить приложение подключаться к нашему серверу, вместо настоящего. Приложение выполняет подключение к одному из серверов e%d.whatsapp.net (где %d — число от 1 до 16, например e5.whatsapp.net), каждый из которых резолвится на несколько IP-адресов, каждый раз — разных, в сумме больше 300 серверов. Проще всего будет подменить DNS-ответ сервера и направить его на наш компьютер с MITM.
Для этого помещаем телефон и компьютер в одну сеть (буквально любой маршрутизатор wifi подойдёт), на телефоне выставляем DNS на наш компьютер на котором устанавливаем bind9 со следующим хостом:
Смотрим трафик
Далее отредактируем mitm.php — нужно подставить свой номер телефона в поле username и содержимое файла cck.dat (находится в директории с приложением) в поле password.
Запускаем php mitm.php. Запускаем приложение WhatsApp и видим следующую картинку:
На скриншоте видно два пакета от сервера — сообщение об успешной авторизации и какие-то настройки. Таким образом выглядит абсолютно весь трафик приложения, — всё читабельно и дополнительно разбирать приложение, в большинстве случаев, не требуется.
Алгоритм превращения FunXMPP в читаемый текст есть во всех библиотеках работы с WhatsApp. Внутри простейшая машина состояний, дополнительно расписывать его здесь не буду.
Выводы
Приложение сделано качественно, использует современные протоколы шифрования, однако глубоко внутри лежит XMPP оставшийся от изначально используемого ejabberd. Использовать protobuf, судя по текущему вектору развития приложения, — было бы логичнее, однако историческое наследие слишком дорого.
Сервис долгое время сильно страдал от массовых рассылок, — код открытых проектов широко этому способствовал. На данный момент уже давно не приходило никаких рассылок, — разработчики ввели ограничение на количество отправляемых сообщений не авторизованным контактам. Именно это дополнение (технически реализуемое полностью на стороне сервера), на мой взгляд, решительно поставило точку в противостоянии любителей рассылок и работников отдела по борьбе с рассылками (если у них такой есть).
Чисто технически нет ничего сложного в таком алгоритме, разработчикам других мессенджеров (привет, Viber, — получаю спам не реже раза в месяц), — стоит взять этот приём на заметку.
Спасибо за прочтение, надеюсь читать про это было так же весело и интересно, как и проводить исследование.
Как работает WhatsApp Web, или Как пользоваться Ватсапом на компьютере
Несмотря на всю популярность WhatsApp, это очень неуниверсальный мессенджер. В отличие от Telegram, Ватсап на нескольких устройствах одновременно работать не может. Причиной тому, как выяснилось, оказались проблемы в механизме синхронизации сообщений. То есть WhatsApp не в состоянии учитывать прогресс с одного устройства на другом, если они в это время оба не находятся в сети. Короче, дичь. Тем не менее, веб-версия у мессенджера есть, но работает она далеко не так очевидно, как могло бы показаться.
WhatsApp Web можно запустить в браузере на любом компьютере
Если вас интересует, что такое Ватсап веб, то знайте, что это специальная мессенджера, которая работает на мощностях браузера и предназначена исключительно для десктопных устройств. Проще говоря, для компьютеров. Потому что запустить её на смартфоне в обычном режиме не получится. Разберём, как она устроена.
Как Ватсап вывести на компьютер
Поскольку WhatsApp способен работать на нескольких устройствах сразу лишь довольно условно, чтобы подключиться к WhatsApp Web, вам потребуется смартфон. Причём он тут нужен не только и не столько для авторизации, сколько для поддержания работы Ватсап Веб.
Подключиться к WhatsApp Web можно только с помощью смартфона
Чтобы подключиться к Ватсап Веб, нужно отсканировать QR-код
Вы в это точно верили! Собрали 10 самых популярных мифов о WhatsApp
Очень важно, чтобы смартфон всё это время оставался в зоне прямой видимости от компьютера, на котором запущен WhatsApp Web. Это обязательное условие, потому что мобильное устройство в данном случае является своего рода хабом, через которое отправляются и принимаются сообщения, а потом просто ретранслируются в веб-версию и отображаются в браузере.
Поскольку все сообщения со всем содержимым проходят через смартфон, который вынужден ретранслировать их на компьютер, будьте готовы к тому, что будет расходоваться трафик. Поэтому лучше всего подключаться к WhatsApp Web, когда телефон находится в зоне действия бесплатной сети Wi-Fi. В противном случае нагрузка ляжет на мобильный интернет, который у большинства пользователей не безлимитный.
Как отключить Ватсап Веб
Если вы не хотите пользоваться WhatsApp в браузере, вы можете скачать версию Ватсап для компьютера по этой ссылке. Он устанавливается как обычное приложение. Но принципиально опыт использования это не изменит. Настольная версия WhatsApp так же, как и браузерная, требует сопряжения со смартфоном, для которой он тоже будет являться своего рода хабом.
Отключать Ватсап Веб от компьютера тоже нужно правильно. То есть просто закрыть вкладку браузера и уйти не выйдет. Если поступить таким образом, мессенджер останется открытым и любой, кто сможет получить доступ к этому компьютеру – особенно, если он не ваш личный, — сможет получить и доступ к содержимому вашего WhatsApp. Поэтому действовать нужно строго по инструкции – тут-то нам и пригодится наш смартфон.
Отключить Ватсап Веб от компьютера тоже можно только со смартфона
Только после этого синхронизация остановится, и веб-версия WhatsApp перестанет использовать ваш смартфон в качестве хаба. С этого момента все сообщения, которые вы отправляете или получаете, будут доступны только на смартфоне, а для повторного подключения к Ватсап Веб нужно будет воспользоваться инструкцией, представленной выше. Возможно, это не так удобно, но зато куда более безопасно.