WhatsApp, дочерняя компания Facebook, включила сквозное шифрование сообщений для всех пользователей своего мессенджера, сообщило издание Wired. Шифрование касается любых данных, будь то текстовые сообщения, изображения, видео, аудио или голосовые звонки, — и работает, в том числе, в групповых чатах.
WhatsApp - самый популярный мессенджер в мире, в котором появилось сквозное шифрование. В мессенджере Telegram Павла Дурова такая функция присутствовала изначально. Активная аудитория Telegram составляет около 100 млн пользователей, тогда как у WhatsApp - около 1 млрд. Единственный сервис, позволяющий обмениваться сообщениями, в котором количество пользователей превышает 1 млрд, это соцсеть Facebook, аудитория которой равна 1,5 млрд человек.
Сквозное шифрование
Сквозное шифрование (end-to-end encryption) подразумевает, что сообщение находится в зашифрованном виде на всем пути следования от отправителя к получателю. Ключ, с помощью которого сообщение можно расшифровать, находится только у адресата. Компания WhatsApp им не владеет, то есть она не сможет передать его властям, даже если они будут на этом настаивать.
Поэтапное внедрение технологии
Шифрование в WhatsApp появлялось поэтапно. В 2014 г. компания оснастила сквозным шифрованием приложение для Android. Таким образом, с 2014 г. пользователи уже обменивались зашифрованными сообщениями, но только в рамках одной платформы.
Теперь же оно стало доступно владельцам устройств на платформах iOS, Windows Phone, Nokia S40, Nokia S60, BlackBerry OS и BlackBerry 10. Для того чтобы воспользоваться новой возможностью, необходимо установить последнюю версию приложения WhatsApp.
Проверка подлинности
Пользователям WhatsApp, установившим последнюю версию клиента, будет доступна опция проверки подлинности собеседника. Для этого нужно будет сравнить цифровой код на своем экране и код на экране собеседника либо позволить собеседнику с помощью камеры на мобильном устройстве считать QR-код с экрана инициирующего соединение пользователя. После этого в чате возникнет пометка, что соединение полностью зашифровано.
Используемый протокол
Партером WhatsApp по внедрению новой возможности стала компания Open Whisper Systems, разработчик мобильного приложения Signal — любимого мессенджера Эдварда Сноудена (Edward Snowden), который в 2013 г. передал журналистам большое количество секретных документов, раскрывающих зачастую незаконную деятельность Агентства национальной безопасности США, в котором он работал системным администратором,
Шифрование в Signal — а теперь и в WhatsApp — базируется на протоколе Signal Protocol. Это асинхронный протокол с открытым исходным кодом. Он, в свою очередь, был создан на основе протокола Off-the-Record (OTR) Messaging Protocol. Одно из ключевых свойств OTR — и, как следствие, Signal Protocol, заключается в так называемой «прямой секретности» (forward secrecy), которая еще называется «совершенной прямой секретностью» (perfect forward secrecy).
В отличие, например, от популярного протокола шифрования электронной почты PGP, в котором сообщения шифруются снова и снова одним и тем же публичным ключом, в прямой секретности используются новые ключи для каждой сессии. Поэтому, если некто годами записывает зашифрованный трафик в надежде однажды декодировать его, в случае с прямой секретностью он обречен на провал.
Пользователь Хабра под ником virtual-anvil обнаружил опасную ошибку в Telegram Desktop для Windows: мессенджер рекурсивно очищал папку C:\custom, где хранились программы, проекты и другие данные общим объёмом около 800 ГБ.
Сначала перестали запускаться приложения — их EXE-файлы просто исчезли. Папки оставались, а содержимое постепенно растворялось.
Проверка через Process Monitor показала, что Telegram самостоятельно открывал C:\custom, обходил вложенные каталоги и запрашивал права на удаление файлов.
Причиной оказалась не вредонос и даже не апдейтер, решивший выйти из-под контроля, а библиотека проверки орфографии lib_spellcheck. Telegram хранит добавленные пользователем слова в файле custom. После изменений в версии 7.1.0 Windows-код начал обращаться к этому словарю, но путь к рабочей папке оставался пустым.
К пустой строке добавлялось /custom, а Qt превращал её в C:\custom. Код ожидал увидеть служебный файл, находил вместо него каталог и запускал removeRecursively(), методично удаляя всё доступное.
Ошибка затронула Telegram Desktop 7.1.0 и 7.1.1 для Windows со встроенной проверкой орфографии. Версии находились в распространении около 66 часов. На Linux и macOS такую цепочку не обнаружили.
Пользователь передал разработчикам логи и открыл тикет № 31170. Ошибку подтвердили и исправили: путь теперь задаётся до выхода из функции, а библиотеке запретили работать со словарём при пустом адресе. Патч вошёл в Telegram Desktop 7.1.2.
Владельцам версий 7.1.0 и 7.1.1 на Windows стоит немедленно обновиться.
Свидетельство о регистрации СМИ ЭЛ № ФС 77 - 68398, выдано федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор) 27.01.2017 Разрешается частичное использование материалов на других сайтах при наличии ссылки на источник. Использование материалов сайта с полной копией оригинала допускается только с письменного разрешения администрации.