Анализ платформы WhatsApp и сравнение с платформой Сигнал

(Ди Алессандро Фиори, Алессандро Руголо)
30/04/20

В этой статье мы хотим представить исследование о платформе WhatsApp и рисках, связанных с ней. Мы также попытались сравнить с платформой Сигнал.

Хотя это и частично, это все же очень сложное исследование. С этим предисловием мы представляем результаты анализа, чтобы дать поспешному или неопытному читателю приблизительное представление о том, что было сделано.

В качестве первого шага было проведено исследование протокола шифрования, используемого WhatsApp. Анализ показал, что уровень шифрования достаточно высок для обычного пользователя.
Для природы закрытый исходный код платформы, дела Cambridge Analytica и поведение Facebook в отношении обработки данных, его использование в секретной среде не рекомендуется или если информация считается имеющей большую ценность (патенты, коммерческая тайна и т. д.). Для этих участков, явно не относящихся к «потребительскому» рынку, необходимо, чтобы i продавец сами могут предложить адекватные гарантии в отношении безопасности, конфиденциальности, соблюдения требований и обработки данных. Эти гарантии, помимо того, что они присутствуют на техническом уровне, также должны регулироваться на договорном уровне с продавец то же самое.

Анализируя сеть и IP-адреса, с которыми связалось приложение, выяснилось, что многие вредоносные файлы со временем связывались с серверами платформы. Это связано с огромным распространением приложения обмена сообщениями и тем фактом, что на самом деле легко изменить веб-клиент передавать атаки на других пользователей.

Анализ включает пример уязвимости, которая теперь устранена, в отношении этого типа модификации веб-клиент. Сравнивая это с платформой сигнал, WhatsApp представляет больший риск.

Дополнительный риск, обусловленный природой закрытый исходный код Приложение, является возможной реализацией так называемого «Ghost Protocol», который заключается в присутствии невидимого стороннего пользователя, который (будучи частью разговора) может получать сообщения от всех собеседников.
В кабинете "Chiffrement de messagerie почти Instantanée: что за протокол?"1, опубликованный Florian Maury в 2017 году, объясняется, что протокол сигнал он не так открыт, как кажется, и что для обеспечения большей безопасности пользователей идеальным будет использование протокола OMEMO.

Ниже приведено краткое сравнение:

Почти мгновенно: Анализирует качество шифрования, применяемого к обмену мгновенными сообщениями
децентрализация: Анализирует, насколько децентрализованы анализируемые платформы
PFS: Анализирует эффективность реализации Perfect Forward Secrecy на анализируемой платформе
отречение: Свойство шифра, которое позволяет пользователю отрицать, что он отправил сообщение
Идентификаторы: Указывает на возможность отслеживания личности пользователя (например, для сигнала он низкий, потому что он использует номер мобильного телефона в качестве идентификатора.
шифрованиеУказывает на качество криптографической системы и ее реализацию в программном обеспечении.
Бесплатные реализации: Указывает, существуют ли реализации программного обеспечения с открытым исходным кодом
Публичные спецификации: Указывает, являются ли все спецификации программного обеспечения общедоступными и легко доступными.
Система управления ключамиУказывает на надежность системы управления ключами, например, обмена ключами.
РаспределениеУказывает, насколько широко распространено конкретное программное обеспечение или криптографическая система, применяемая для обмена мгновенными сообщениями.

Из анализа портов, используемых приложением WhatsApp, использование порта было найдено нестандартные. Это подвергает пользователей возможным рискам как в случае контроля сетевого трафика, так и в случае наличия активного злоумышленника, который может сосредоточить свои усилия только на сервисе. нестандартные.

Анализ также показал, насколько легко восстановить ключи и базу данных сообщений с устройства, конечно, это зависит от возможности физического доступа к устройству.

Был найден в качестве приглашения ссылки на группы WhatsApp индексируются в Google, подвергая пользователей серьезному риску для конфиденциальности сообщений.

Сравнение того, что анализировали с платформой сигналбыло установлено, что сигнал, учитывая его природу открытые источники (с должными оговорками), как правило, считается более надежным, чем WhatsApp.

Был также рассмотрен реальный случай запроса данных государством, и можно было продемонстрировать, как именно из-за характера открытый приложения, опять же, более надежный, чем WhatsApp, Следует, однако, сказать, что немногие люди могут анализировать и проверять весь код приложения, поэтому риск можно считать смягченным, но не устраненным.

Было обнаружено, что системные угрозы, такие как «Ghost Protocol», сложнее реализовать в приложении.
Анализ сигналвместо этого он показал наличие гораздо меньшего количества вредоносных файлов, чем WhatsApp, но это может быть связано с разницей в количестве активных пользователей на соответствующих платформах.

Было установлено, что, несмотря на то, что это более сложно, даже для сигнал в случае возможности физического доступа к устройству существует возможность обойти меры безопасности современных мобильных операционных систем через специально созданное программное обеспечение.

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

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

Напоминаем всем, что все представленные анализы выполняются извне, т.е. без знания внутреннего состояния платформ и систем. Таким образом, риски, связанные с вредоносными файлами, могут быть результатом ложных срабатываний. Рассуждения, используемые для проведения этого анализа, относятся к типу внешнего «черного ящика», то есть без знания структуры платформы.
Это используемая схема рассуждений (воспроизводимая во всех внешних анализах черного ящика).
Анализ платформы WhatsApp и сравнение с платформой сигнал.

РЕЗЮМЕ

Введение
Описание протокола WhatsApp
Дополнительные соображения о том, как WhatsApp
Анализ WhatsApp
Выводы по анализу WhatsApp
Анализ сигнал
Заключение Анализ сигналов и сравнение с WhatsApp
Ссылки

Введение

WhatsApp это наиболее используемое приложение для обмена мгновенными сообщениями в мире.
Этот анализ служит для понимания уровня безопасности платформы, выделяя любые слабые места.
Поскольку у Платформы огромная база пользователей, недостаток безопасности привлечет больше злоумышленников, чем у других Платформ, и это может иметь более серьезные последствия для пользователей. 
Кто-то может подумать, что в такой широко распространенной системе не было проблем с безопасностью, но это не так, приведя пример, мы сообщаем об уязвимости, которая уже устранена и которая позволяет читать файлы или выполнять код на устройстве жертвы:
https://www.perimeterx.com/tech-blog/2020/whatsapp-fs-read-vuln-disclosure/

WhatsApp имеет клиент-серверную операционную модель этого типа:
Клиент (приложение) → Транспорт зашифрованных пакетов → Сервер (платформа)

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

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

Что подразумевается под «ключами»:
Криптографический ключ - это информация, которая служит для «блокировки» или «разблокировки» криптографических функций.
Не думайте о криптографическом ключе как о пароле, а как о физическом ключе: физический ключ для использования нуждается в блокировке.
Таким же образом, криптографический ключ позволяет «активировать» криптографический алгоритм, специфичный для типа ключа, и, следовательно, позволяет ему «шифровать» или «дешифровать» данные.
В случае анализируемого алгоритма генерируется пара ключей - публичная и приватная.
Открытый ключ должен быть распространен, а закрытый ключ должен храниться пользователем.
Поскольку открытые ключи доступны каждому, отправитель сообщения шифрует сообщение открытым ключом получателя.
После того, как сообщение было зашифровано, только получатель может расшифровать его, потому что только у него есть закрытый ключ.
Этот тип алгоритма называется «алгоритм асимметричного шифрования», потому что на самом деле необходимы два ключа (открытый для получателя для шифрования и частный для получателя для расшифровки).
В нашем случае у нас есть 128-битный тип шифрования, где количество бит представляет длину ключа.
Чем длиннее ключ, тем сложнее будет взломщику получить или «заставить» его взломать.
Для более глубокого понимания ключей и алгоритмов шифрования, используемых WhatsAppсм. «Ссылка 1 - Ключи и алгоритмы, используемые WhatsAppПрисутствует в конце исследования.
Описание протокола WhatsApp

Давайте теперь обратимся к Descrizione фактического протокола, на каждом этапе:

Регистрация;
Создание зашифрованного сеанса;
Получение нового зашифрованного сеанса;
Обмен сообщениями;
Медиапередача;
Группы;
Телефонные звонки.

1 - регистрация
При регистрации на услугу Клиент (приложение WhatsApp) передает на сервер открытый ключ идентификации (пара ключей идентификации), предварительно подписанный открытый ключ (подписанный пре-ключ) и ряд открытых ключей (одноразовые предварительные ключи). Сервер хранит эту серию открытых ключей, связанных с идентификатором учетной записи.

Хотя сервер не имеет доступа к закрытым ключам, клиент по-прежнему имеет доступ к закрытым ключам, но, поскольку он не является открытым исходным кодом, невозможно определить поведение приложения, установленного на смартфоне, в отношении закрытых ключей. Это первый элемент риска.

Есть риски, связанные с генерацией случайных ключей. Для генерации ключей программное обеспечение (не только WhatsApp) использовать «генераторы случайных чисел», которые на самом деле являются функциями, которые генерируют псевдослучайные числа, начиная с начального значения, называемого «семя» (seed).
Если вы передадите одно и то же начальное начальное число в генератор случайных чисел, программа всегда будет генерировать одну и ту же последовательность чисел (поскольку она не является действительно случайной).
Чтобы преодолеть эту проблему, PRNG (генераторы псевдослучайных чисел) используют различную информацию, которую трудно найти, такую ​​как комбинация даты, времени, оставшегося места на диске и имени устройства, просто чтобы привести пример.
Однако существует риск того, что злоумышленник сможет понять, как PRNG генерирует псевдослучайные значения, что позволяет ему регенерировать те же ключи, что делает криптографическую систему недействительной.

2 - Создание зашифрованного сеанса
Для связи с другим пользователем клиент должен создать зашифрованный сеанс с другим клиентом.
После создания зашифрованного сеанса клиент не повторно инициализирует сеанс до тех пор, пока приложение не будет переустановлено.
В этом документе2 Это объясняет, что протокол связи не говорит о повторной инициализации ключей, это может породить это сомнение: инициализация ключей происходит только при ПЕРВОЙ регистрации?
Чтобы быть более понятным, в документе говорится о «этапе регистрации».
В следующем разделе (зашифрованный сеанс) прямо говорится, что клиентам не нужно перестраивать зашифрованный сеанс, пока устройство не будет изменено или приложение не будет переустановлено.
Следовательно, неясно, действительно ли закрытые ключи регенерируются при переустановке или смене устройства или генерируются ТОЛЬКО на этапе регистрации (на практике, когда сервер видит, что наш телефонный номер отсутствует в базе данных пользователей) ,
Если закрытые ключи были сгенерированы только во время регистрации, это может означать, что сервер может их хранить.
Чтобы установить сеанс, клиент запрашивает следующие открытые ключи с сервера:

Идентификационный ключ
Предварительно подписанный ключ
Одноразовый пре-ключ

Сервер отвечает данными.
При регистрации клиент отправляет серию одноразовых пре-ключей.
При создании зашифрованного сеанса сервер возвращает один одноразовый пре-ключ.
Сервер вместе с ответом удаляет одноразовый пре-ключ, возвращенный клиенту.
Если одноразовых предварительных ключей нет, сервер не отправляет одноразовые предварительные ключи.
Как только открытые ключи получены, клиент также может загрузить свой собственный идентификационный ключ для генерации так называемого «master_secret».
«Корневой ключ» и связанные «цепные ключи» генерируются из «master_secret» (см. Предыдущий раздел «Зашифрованные сеансы»).

3 - Получение нового зашифрованного сеанса
После создания сеанса клиент может начать отправлять сообщения получателю.
Пока получатель не ответит, отправитель включает запрос на создание соответствующего зашифрованного сеанса в заголовок сообщения.
Для ясности и объяснения заголовка возьмем в качестве примера почтовый конверт.
Заголовок - это данные, которые позволяют конверту правильно перемещаться к месту назначения, например почтовый адрес.
Содержимое самого конверта определяется как «полезная нагрузка».
В нашем случае заголовок включен в сообщение и не отображается пользователем, а полезная нагрузка - это сообщение, которое пользователь отправляет получателю.
Как только запрос получен, получатель создает соответствующий «master_secret», исключает «одноразовый предварительный ключ», используемый отправителем, который первым создал зашифрованный сеанс, и вычисляет «корневой ключ» и связанные «цепные ключи» из "master_secret".

4 - Обмен сообщениями
Как только зашифрованный сеанс построен, обмениваемые сообщения шифруются с помощью AES256 и HMAC-SHA256, чтобы гарантировать их подлинность и целостность.
Для каждого сообщения «Ключ сообщения» изменяется (см. Выше типы ключей, используемых для зашифрованных сеансов).
Ключ сообщения является «эфемерным», то есть он генерируется таким образом, что его невозможно восстановить, начиная с состояния зашифрованного сеанса.
Ключ сообщения получается из Цепного ключа отправителя.
При каждом обмене сообщениями ключ цепочки также регенерируется.
Это гарантирует так называемую «прямую секретность».
Forward Secrecy или Perfect Forward Secrecy (PFS) - это свойство, которое гарантирует, что в случае компрометации долгосрочного ключа (такого как Identity Key) сеансы, сгенерированные этим ключом, будут по-прежнему безопасными.

5 - Медиа передача
Все медиафайлы и вложения сообщений зашифрованы от начала до конца.
Отправитель отправляет сообщение, генерирующее эфемерный ключ AES256 и эфемерный ключ HMAC-SHA256.
Отправитель шифрует вложение с помощью AES256 со случайным IV и вешает в конце HMAC-SHA256.
Отправитель загружает эти зашифрованные данные в специальное пространство.
Отправитель отправляет получателю обычное зашифрованное сообщение, содержащее ключ шифрования, ключ HMAC, хеш SHA256, который представляет загруженный файл, и указатель, который сообщает получателю, где загрузить зашифрованный файл.
Получатель может затем получить файл и расшифровать его.
Документ, в этой части, не останавливается в указании, как получатель расшифровывает файл, если IV случайный и не был передан.
В документе (стр. 6: «Передача мультимедиа и другие вложения») конкретно говорится, что вложение зашифровано ключом шифрования и случайным IV, но впоследствии об этом не упоминается.
Пользователям было бы полезно (по крайней мере, в некоторых чувствительных областях) узнать точную схему функционирования различных функций.

6 - группы
Когда пользователь впервые пишет в группу, отправитель генерирует 32-байтовый ключ цепочки.
Отправитель генерирует пару ключей подписи Curve25519.
Отправитель объединяет 32-байтовый цепной ключ с открытым ключом подписи в сообщении типа «Ключ отправителя».
«Ключ отправителя» шифруется и распространяется индивидуально для каждого члена группы.
Для всех последующих сообщений отправитель вычисляет ключ сообщения из ключа цепочки и обновляет ключ цепочки.
Отправитель шифрует сообщение с помощью AES256.
Отправитель «помечает» сообщение ключом подписи.
Зашифрованное сообщение отправляется на сервер, который рассылает сообщение всем членам группы.
Если пользователь покидает группу, все участники удаляют ключ отправителя.

7 - телефонные звонки
Голосовые звонки и видеозвонки шифруются следующим образом:
Вызывающая сторона генерирует 32-байтовый ключ SRTP.
SRTP (безопасный транспортный протокол в реальном времени) - это протокол, который определяет стандарт аудио- и видеосвязи в режиме реального времени в Интернете, гарантируя безопасность и целостность передачи данных.
Ключ SRTP отправляется получателю через обычное зашифрованное сообщение.
Получатель может затем установить зашифрованный звонок или видеозвонок, зная ключ.

Дополнительные соображения о том, как WhatsApp

Существуют и другие системные поведения, которые необходимо учитывать: Приложение не защищает защищенные паролем резервные копии чата.

WhatsApp позволяет сохранять резервные копии наших разговоров в облаке (Google Drive).
К сожалению, облачное резервное копирование выполняется в открытом виде3 а функция, позволяющая применить пароль, пока недоступна.
В среде, требующей высокой секретности, не рекомендуется использовать функцию сохранения резервной копии в облаке, пока вы не сможете защитить ее с помощью пароля.

Уведомления о прочтении сообщений: По умолчанию WhatsApp предупреждает пользователя о том, что получатель прочитал сообщение (двойная синяя галочка).
Сам по себе этот вариант может быть удобным, однако он считается ограничивающим для конфиденциальности.
WhatsApp поэтому он предлагает возможность деактивировать считанные чеки, но деактивация является двунаправленной, то есть как контакты, так и пользователь больше не будут получать подтверждения.
Кроме того, эта опция недопустима для групп, где в любом случае участники продолжают получать чеки от пользователя.

Приложение не фильтрует отправляемые расширения файлов: Как обычно WhatsApp он также используется для отправки документов и файлов различных видов.
Однако, если пользователь решает прикрепить файл, а вы выбираете «Документ», приложение не проверяет расширения разрешенных файлов.
Поэтому можно отправлять исполняемые файлы или zip-архивы или, например, приложения в формате «APK», которые можно установить на телефон, сомнительного происхождения.
Поэтому желательно не принимать какие-либо обмениваемые файлы заранее и всегда проверять их содержимое с отправителем.

Если сообщения удалены, приложение все равно отображает уведомление другой стороне: В случае, если пользователь неправильно отправляет сообщение, после удаления WhatsApp показывает фразу «Это сообщение было удалено» вместо исходного содержимого.
Этот тип поведения, очевидно тривиальный, показывает собеседникам, что сообщение действительно было отправлено.
Было бы лучше, если бы удаление сообщения было полным для всех собеседников.

Отсутствие синхронизированных сообщений: Его WhatsApp нет функции, позволяющей отправлять самоуничтожающиеся сообщения.
В некоторых ситуациях может быть очень полезно использовать параметр, который позволяет сообщениям самостоятельно удалять после определенного периода времени, установленного пользователями.

Анализ WhatsApp

Давайте теперь перейдем к фактическому анализу. Сервер представлен платформой Facebook, которую он приобрел WhatsAppПоэтому необходимо учитывать риск того, что Facebook может взаимодействовать с трафиком, генерируемым приложением.
Однако учтите, что приложение также взаимодействует с базовой операционной системой и что другие приложения могут взаимодействовать с WhatsApp то же самое.
Сначала мы анализируем состояние сети платформы, чтобы проверить наличие вредоносных файлов, которые связываются с доменом.

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

Ниже приведены индикаторы, обнаруженные как недавние угрозы, которые напрямую взаимодействуют с Платформой:
Домен: web.whatsapp.com
Hash: 183ddb9b37b549f7673ac38ec2ca15e1516655d559f20eaf63146a4030073d2d
Полное извлечение показателей компромисса выполняется.
Полная добыча: https://otx.alienvault.com/pulse/5e35c5a4977b679705a90b1a

Как видно из карты сети (красные точки на карте), можно обнаружить, что с течением времени были созданы APK-файлы (установочные пакеты для операционной системы Android) и вредоносные исполняемые файлы, поэтому можно сделать вывод, что существует риск настойчиво утверждает, что наш клиент может взаимодействовать со злоумышленником.

Проанализировав текущее состояние сети и любые индикаторы, вы можете проверить протокол передачи данных платформы.

WhatsAppон использует протокол сквозного шифрования, который означает, что любые передаваемые данные могут просматривать только отправитель и получатель.
Платформа по умолчанию использует сквозное шифрование, но позволяет через настройку видеть, когда меняется ключ собеседника.

Это происходит при смене телефона или переустановке приложения и полезно, чтобы избежать «Человек посередине», то есть эту функцию полезно понять, если пользователь разговаривает с реальным собеседником, поскольку в случае сомнений пользователь может спросить (очевидно, лично) заинтересованное лицо, изменил ли он телефон или переустановил приложение.
Здесь подробно протокол связи, используемый платформой:

https://scontent.whatsapp.net/v/t61/68135620_760356657751682_62129975288...

Из этого документа можно понять, что протокол для шифрования сквозных данных основан на протоколе сигнал.

Electronic Frontier Foundation (EFF), некоммерческий фонд, созданный для защиты прав и конфиденциальности пользователей в сети, написал интересный документ о безопасности приложения на ОС Android, о котором сообщается по этой ссылке:

https://ssd.eff.org/en/module/how-use-whatsapp-android

Исследование, проведенное EFF, подчеркивает некоторые опасения по поводу настроек конфиденциальности в приложении. В частности, пользователь не может отказаться от использования телеметрических данных, отправленных пользователем на серверы Facebook.

Подробно, как заявили EFF, старые пользователи WhatsApp (когда он был приобретен Facebook) у них был льготный период, чтобы изменить свои настройки конфиденциальности, чтобы запретить Facebook предлагать дружбу или показывать целевую рекламу, начиная с данных, собранных Whatsapp. Новые пользователи не имеют такой возможности, т.е. с использованием WhatsApp Пользователь принимает обмен данными в полном объеме.

Хотя Facebook заявляет, что данные не передаются или перепродаются третьим лицам, дело делает Cambridge Analytica (ссылка на сайт: https://www.ilpost.it/2018/03/19/facebook-cambridge-analytica/) может только доказать, что это совместное использование является системной угрозой, т.е. существует риск компрометации данных, независимо от недостатков / вредоносных программ / ошибок, присутствующих на Платформе.
EFF заявляет о своей обеспокоенности в отношении веб-версии приложения, поскольку оно может быть изменено, чтобы сделать его вредоносным или взаимодействовать с ним, подтверждая то, что отображается на карте сети.

Чтобы узнать больше о веб-версии WhatsApp повлияв на безопасность всей платформы, Роберт Хитон в 2017 году опубликовал интересную запись в своем блоге4 где он описывает, как эффективно отслеживать ваши контакты благодаря манипулированию веб-интерфейсом.
Опять же, на транспортном уровне, сквозное шифрование полезно, если приложение можно считать «доверенным».
В dettaglio, WhatsApp это приложение с закрытым исходным кодом.
Это означает, что никто не разделяет WhatsApp Сам, может знать, что делает приложение.

Тем не менее, доступен документ, который также связан с объяснением протокола в начале этого анализа, в котором подробно объясняется, как WhatsApp выполняет шифрование.
В общем, если вы хотите быть параноиком, вы не можете знать, загружает ли приложение текстовые сообщения на другие серверы. Здесь также можно продемонстрировать, что это системная угроза.

Чтобы продемонстрировать угрозу, мы можем обратиться к так называемому «Призрачному протоколу».
«Призрачный протокол» (ссылка: https://www.theguardian.com/uk-news/2019/may/30/apple-and-whatsapp-conde...) - это процедура, которая позволяет избежать «взлома» шифрования приложения при одновременном доступе ко всем разговорам.

На самом деле протокол обеспечивает невидимую отправку «в копии» любого сообщения от конкретного клиента третьей стороне, что является частью разговора.

Чтобы понять реальное влияние протокола Ghost на секретность разговоров, программа электронной почты автоматически отправляет третьему лицу каждое сообщение, отправленное и полученное в режиме «скрытой копии», без каких-либо доказательств пользователя , полностью ставя под угрозу безопасность передаваемой информации.

Во второй половине 2019 года компания отказала во введении Ghost Protocol, несмотря на запрос о внедрении, поступивший от GCHQ (британского агентства безопасности).

Несмотря на армрестлинг, пользователь не может точно знать, реализован ли этот протокол (или аналогичные меры) в приложении.

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

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

Для захвата пакетов в пути на реальном устройстве вы можете использовать брандмауэр (использовался «NoRoot Firewall»), если этот брандмауэр создает «fakeVPN», то есть локальную VPN-связь с устройством, которая перенаправляет весь трафик.

Благодаря этому вы можете проанализировать реальное поведение приложения.

(Результат показан на скриншоте)

При проведении различных испытаний можно наблюдать одну и ту же картину.
Вполне возможно, что этот шаблон меняется со временем или немного отличается для другого устройства.
Учитывая данную модель, можно наблюдать различные факторы:

Использование нестандартного порта (5222)
Связь с серверами Facebook
Использование небезопасной стандартной двери (80)
Использование небезопасного порта для неизвестного сервера (216.58.208.142)

Сервер 216.58.208.142 принадлежит Google, имеет следующие вредоносные индикаторы, с которыми они напрямую общаются:

e2902cfd28362d7a0eef21e47b544a8b8a1e1a89e57a4140851af00ed1276659
aeb3d16722b438693bdb9afe901715e906f381afe31eb1df3c5fe8cafd8fbc66
3d5d3d5f1b9152da8b9d923451c2740b1e1c1123124b36b6fa62bf496154847f
b6447e14be7082e1437cad2fd5939c4c2ffc5832334a400cec6e994b35510651
a9cfdfa12a256cb9eb4b8f246b246894ffc27d2b034371efa96f1ba0bfd5762e
1010a92ebcf27c9ee2622cf361bd6638de0d9b442f9c422122e777e70c67ff05
69125f4b57aa1abe929d096417d7abefccee291f2988c00f4d36cb11c2049734
154c37eaf9c4eb19a8cec6798c68c9ea3a728d5af237bbf5f221afbe15c1c264
6b02df8d965e0ba96f9888d14c5d410660c41faafdc29586da3781c8c0ac4ac4
1c139f12997bc88aa1efb925007cb3f0c7d6255ab1b5ca1aabfe6fab4532b825
3333a2c2b1f8ec95ef01f4ca596cd443f2c1ae5d70cc3c1dbb50aa0f1740d1ad
055c2eb240a91d8f081a5499593e3ead092f5f4b2285b9b053ebe6cd05b67b12
009e6c27fb56baa09e2445539a9df547f225c22f909d0dfb6004647f13ff8cb1
0e2e40e07ebdeeff248daaf1adc7b78a03a873ca28de1bc73fbc0e64b6f4827f
6b331a27bcc06b2a7fd5060e2fc24285252ad8a4e3e7011ae774edc45b5fe2ca
5ecc6def525b09643d661958b63d7c65a9b93f6b10a27f001363b1790fe751e2
cb8bf1e4f331ea5a4b65a63c4a7c111d6677503b84e59eaff55f2ab95bd55a18
92d398b48f0ce44dc5f135653315aa80e21a8207e034038b52a3e2c235cafef8
b54a8f8d54d64ed346e04f03c027b960fda444505edeb7206b67d83482589d63
d039417cc0375f0d1106e140daa1c4a418cff02443b17ac49fc254ff5305ceba
a544e4f53e893c75514214338bcd33f5ca5a40a6d4a15e1bf8ca68a315a90d55
93db8dd78deecba7326a0c1975edf7bdc0f0bde230540bf887d169217570b741
108edb4cbd90116a725f43f1fad83cfc206303d1e66e3f6ae1d688e6ed0e5119
680dcb42f379d5be2484cd6b437d05e4fad42acfc6e32a726515b3f8aee81327
6757efaf6a6e068b6a4e346c1be0db6198c2888aa537a4f33bc60fe241286c09
9444e490c98c6a516bcaf6f81967b0c0e794f100ba616fcef33eee2264bb11d9
ff61097837d9226e6584b1ae25f5a1a164e4b168718227570025059bf0ad49e9
1b82460806a2d59f49ab82f8302191e500ff9161c5739e9697d22633d00555aa
14d1d88aa38dec7054f1a6fcd2874544640d4e4e9b5fe35b883017f228df16f9
11d85f340f1e133f8cdac2ef2710050311e18d050e7f088941944cd16eaedf23
2857d0f663bad67f930d38de439161dc205b67594f091e07b5fc9e4dd5a27454
9fc4a744fe5044d299e9385b1dbe0a317891546ee28226e0cd9bcb514cfb3ceb
0de6c92a30b63016e7fc42a2becc9f5f96ecaeed3b3440b0a53b064b0860ac24

Поэтому мы приступаем к идентификации всех индикаторов.
Полная добыча:
https://otx.alienvault.com/pulse/5e36395f8654862296f22c8c

Как видно, даже в этом случае существует множество злых индикаторов с течением времени.
Второй IP-адрес теперь анализируется: 157.240.193.50
Этот IP-адрес не имеет индикаторов, которые общаются напрямую.
Третий IP-адрес теперь анализируется: 157.240.193.55
Также в этом адресе отсутствуют индикаторы, которые общаются напрямую.

Давайте теперь проанализируем используемые порты.

80
443
5222

В бизнес-средах порты 80 и 443 являются общими, поэтому существует высокая вероятность того, что брандмауэры не будут блокировать эти порты.

В отличие от двух портов, упомянутых выше, 5222 используется Google Talk, WhatsApp и с серверов Jabber, который является типом сервера, используемого для служб обмена мгновенными сообщениями.

Очень интересно наблюдать, как количество активных сканирований в этом порту увеличилось в геометрической прогрессии с сентября 2019 года:

https://isc.sans.edu/port.html?port=5222

Увеличение сканов не связано напрямую с WhatsApp, но можно продемонстрировать, что существует риск использования нестандартного порта.
Проблема использования этого порта связана с возможной проверкой трафика на уровне сети.

Зная, что порт 5222 используется этими сервисами, можно сканировать / подключать эти устройства специально к одному сервису, концентрируя усилия злоумышленника на одном протоколе, а также сокращая усилия, которые необходимо предпринять злоумышленнику.

После анализа транспорта можно проанализировать риск использования Платформы в ее первоначальном виде или через приложение.
Само приложение имеет 8 CVE:

https://www.cvedetails.com/vulnerability-list/vendor_id-19851/product_id...

Однако прямой угрозы нет, так как текущая версия не включена в список известных уязвимостей. Несмотря на это, экосистему устройства нельзя недооценивать.

Мобильные устройства, в отличие от компьютеров, имеют большую поверхность атаки из-за их природы. Они должны быть простыми в использовании, в пределах досягаемости каждого, и они также представляют системные угрозы, то есть операционную систему труднее модифицировать / контролировать, и обычно производители блокируют привилегии администратора (то есть учетную запись с повышенными привилегиями, чтобы запускать команды, которые могут изменить поведение самой системы), а также иметь проприетарные драйверы с закрытым исходным кодом.
Помимо системных угроз, операционные системы для мобильных устройств очень сложны и подвержены более или менее серьезным уязвимостям.

Это список уязвимостей Android:
https://www.cvedetails.com/product/19997/Google-Android.html?vendor_id=1224

Это список уязвимостей в операционной системе iOS:
https://www.cvedetails.com/product/15556/Apple-Iphone-Os.html?vendor_id=49

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

Но почему также сосредоточиться на устройстве? Почему приложение WhatsApp сохраняйте базы данных зашифрованных сообщений и сквозные ключи шифрования непосредственно на устройстве.

Для этого анализа был проведен тест с этим инструментом:

https://forum.xda-developers.com/showthread.php?t=1583021

Тест прошел успешно на полностью обновленном устройстве и без прав root (права администратора во всей системе).

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

Восстановление ключа тоже возможно сигналкоторый, однако, оказывается гораздо более надежным, на самом деле, для этого типа операций сигнал вам нужно использовать стороннюю программу:

https://blog.elcomsoft.com/2019/08/how-to-extract-and-decrypt-signal-con...

Это открывает множество сценариев, в которых безопасность связи может быть поставлена ​​под угрозу.
Возьмем, к примеру, израильскую компанию Cellebrite.

Рассматриваемая компания выпустила программное обеспечение UFED, которое позволяет преодолеть любую защиту, даже устройств High End:

https://www.cellebrite.com/en/ufed-ultimate/

Эта платформа также может быть реализована в известных «тотемах» пополнения, то есть информационных точках, находящихся в аэропортах и ​​на станциях.

И, наконец, показан поведенческий анализ приложения, выполненный в «песочнице» через VirusTotal, для обнаружения подозрительных «поведений».

Анализ является открытым и не демонстрирует подозрительного поведения. Это ссылка на анализ:

https://www.virustotal.com/gui/file/4a7b1a8f5ab065978feb00fd8f90ba29f8c5...

Совет заключается в том, чтобы никогда не подключать устройства к прямым USB-разъемам, но всегда используйте источник питания с обычными электрическими разъемами и, по крайней мере, возьмите блоки питания.
Пользователи очень рискованно относятся к ссылкам на приглашения в группы.

Журналист Джордан Уайлдон сообщил через Twitter (ссылка: https://twitter.com/JordanWildon/status/1230829082662842369) что с помощью функции «Пригласить по ссылке» группы индексируются в Google.
Это означает, что с помощью простого «персонализированного» поиска можно войти в самые разные группы, подвергая участников значительному риску.
Эта проблема известна с 2018 года, и существует также тип «придурок»5 на портале "exploit-db":
https://www.exploit-db.com/ghdb/4753
Надо сказать, что большинство этих данных, «выставленных» Google, на самом деле являются результатом ошибок конфигурации различных серверов системными администраторами.

Это (изображение) является примером Дорка для вышеуказанных групп WhatsApp (лично выполнил, чтобы удостовериться, что рассматриваемая Дорка все еще "эксплуатировалась").

Группы также индексируются сигналХотя это может произойти только с открытыми группами.
В случае частных групп индексация не допускается.

Можно сказать, что, хотя риск существует, с сигнал пользователь может решить, как выставить группу, и, если она частная, может решить не выставлять ее.

Последний, но не менее важный анализ касается условий использования и юридических уведомлений.

Ниже приведены сомнения (которые нельзя опровергнуть, учитывая характер приложения с закрытым исходным кодом), которые могут возникнуть при ознакомлении с условиями предоставления услуг.

Для того, чтобы воспользоваться услугами, предлагаемыми WhatsAppпользователь должен принять его условия использования6 (это необходимо для любой коммерческой услуги).

Читая условия обслуживания, вы можете увидеть, что:
«Мы стремимся обеспечить безопасность WhatsApp, принимая соответствующие меры в случае злоупотреблений со стороны лиц, незаконных действий и нарушений наших Условий. Мы запрещаем ненадлежащее использование наших Сервисов, вредное поведение по отношению к другим и нарушения наших Условий, Дисциплины и Политики, и мы стремимся справляться с ситуациями, в которых мы можем предоставить поддержку или защиту нашему сообществу. Мы разрабатываем автоматизированные системы, чтобы улучшить нашу способность обнаруживать и удалять опасные действия и людей, которые могут поставить под угрозу наше сообщество, а также безопасность наших Сервисов. Если нам становится известно о наличии таких предприятий или людей, мы принимаем соответствующие меры, удаляя такие предприятия или людей или связываясь с правоохранительными органами. Мы передаем информацию другим аффилированным компаниям при обнаружении злоупотреблений или вредоносного поведения при использовании наших Сервисов ".

Борьба (более чем справедливая) с незаконной деятельностью в любом случае поднимает больше, чем несколько вопросов:

  • Как вышеупомянутые автоматизированные системы выполняют свою функцию?
  • Существует ли база данных "ключевых слов" или "шаблонов" непосредственно в приложении?
  • После того, как алгоритм проверит наличие потенциально опасных действий, есть ли люди, которые проверяют эти отчеты, и поэтому возможно ли, чтобы компания ясно прочитала разговоры?

Еще один интересный момент для размышления заключается в следующем:

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

Кто заверяет нас, что эта информация не используется повторно (и этот вопрос действителен для любой службы такого типа)?
Какие пересечения сделаны на данных (то же самое, любой сервис этого типа может сделать это)?

Обратите внимание, что фундаментальный отрывок в политике конфиденциальности:
Сообщения пользователей. WhatsApp не хранит сообщения пользователей во время обычного предоставления Сервисов. После доставки сообщения (включая чаты, фотографии, видео, голосовые сообщения, файлы и общую информацию о местоположении) удаляются с наших серверов. Ваши сообщения хранятся на вашем устройстве. Если невозможно доставить сообщение немедленно (например, если пользователь не в сети), мы будем хранить его на наших серверах до 30 дней, чтобы попытаться доставить его. Если сообщение не будет доставлено через 30 дней, оно будет удалено. Для повышения производительности и более эффективной доставки мультимедийных сообщений, например, когда многие люди делятся известной фотографией или видео, мы можем хранить этот контент на наших серверах в течение более длительного периода. Мы также предлагаем сквозное шифрование для наших Сервисов, которое по умолчанию включено, когда вы и люди, которым вы отправляете текстовые сообщения, используете версию нашего приложения, выпущенную после 2 апреля 2016 года. Сквозное шифрование. end означает, что сообщения пользователей зашифрованы, чтобы их не могли прочитать WhatsApp и третьи стороны. Узнайте больше о сквозном шифровании и бизнесе в WhatsApp.

Этот момент может поставить под сомнение надежность всего сквозного шифрования.

В отрывке «WhatsApp не архивирует пользовательские сообщения во время нормальной работы Сервисов ", что подразумевается под" нормальной работой "? Кроме того, еще раз процитировав: «Для повышения производительности и более эффективной доставки сообщений с мультимедийным контентом, например, когда многие люди делятся известными фотографиями или видео, мы могли бы хранить этот контент на наших серверах в течение более длительного периода времени».

Если мультимедийный контент также полностью зашифрован, как это WhatsApp понимаете, что контентом делятся много раз?

Еще один интересный момент, безусловно, взаимодействие между приложением и устройством:
Информация об устройстве и подключениях. WhatsApp собирает информацию об устройстве и подключении, когда вы устанавливаете, получаете доступ или используете наши Услуги. Сюда входит такая информация, как модель оборудования, информация об операционной системе, информация об уровне заряда батареи, мощность сигнала, версия приложения, информация о браузере и мобильной сети, информация о подключении, включая номер. оператор мобильной связи или поставщик Интернет-услуг, язык и часовой пояс, IP-адрес, информация об операциях устройства и идентификаторы, такие как идентификаторы устройств (включая уникальные идентификаторы продуктов, предлагаемых компаниями Facebook, связанными с то же устройство или аккаунт).

При этом обратите внимание на огромное количество очень актуальной информации, которую собирает приложение.

Еще один очень важный шаг, безусловно, касается сбора данных о местоположении:
Информация о местонахождении. WhatsApp собирает информацию о местоположении устройства, если пользователь использует функции, связанные с определением местоположения, например, когда он решает поделиться своим местоположением со своими контактами, увидеть близлежащие местоположения или места, которыми другие поделились с ними, и т. и устранение неполадок, например, если у пользователя возникают проблемы с функциями определения местоположения приложения. WhatsApp использует различные технологии для определения местоположения, включая сигналы IP, GPS, Bluetooth и информацию о ближайших точках доступа Wi-Fi, маяках и сотах.

Последнее замечание касается применения европейских правил, касающихся обработки персональных данных GDPR. Вы можете запросить, чтобы ваши данные больше не обрабатывались. К сожалению, нет автоматической процедуры, но необходимо следовать процедуре7 обозначено WhatsAppпо электронной почте, мотивируя ваше желание быть исключенным из профилирования / обработки данных.
Se WhatsApp не следует считать основание пользователя обоснованным, он может отклонить запрос пользователя, который должен обратиться в компетентные органы (также указано на конкретной странице).

Выводы по анализу WhatsApp 

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

Анализ платформы сигнал.

сигнал это приложение для обмена мгновенными сообщениями, так же, как WhatsAppи имеет операционную модель «Клиент / Сервер» этого типа:
Клиент (приложение) → Транспорт зашифрованных пакетов → Сервер (платформа)

Рабочая модель такая же, как WhatsApp и транспортировка пакетов всегда сквозная. Чтобы быть точным, Open Whisper Systems (некоммерческая группа, которая создала приложение) создала протокол сигнал, поднятый позже WhatsApp.

Первое различие, которое можно найти, заключается в типе клиента и типа сервера. Платформа сигнал на самом деле это полностью открытый исходный код, то есть можно прочитать исходный код приложения и сервера.

Это репозиторий GitHub приложения:

https://github.com/signalapp

Как видно, присутствует как код клиента, так и код сервера.

Затем мы переходим к внешнему анализу Платформы

Обнаружены индикаторы:
IP: 104.16.54.111
Hash: 01733a96208c513bdd333efe56900bf0ae03fa28955085058a957a484d599cab

Хотя был обнаружен только один Индикатор, вся карта сети и все связанные Индикаторы были извлечены и отображались с течением времени.
Полная добыча: https://otx.alienvault.com/pulse/5e393d8ae94aab466d01fe91

Карта сети (Изображение)

Из карты сети можно понять, что в отношении WhatsAppПлатформа сигнал со временем было гораздо меньше случаев, когда вредоносные файлы связывались с ним.
Это может, однако, быть следствием меньшего распространения программного обеспечения.

Проанализировав платформу, мы приступаем канализ транспортного протокола.

Платформа использует "сквозное" шифрование, то есть пакеты шифруются на отправляющем устройстве и дешифруются на устройстве-получателе, что делает невозможным чтение содержимого сервером.

Здесь вы найдете всю информацию о протоколе и рабочих характеристиках сигнал:

https://signal.org/docs/

Electronic Frontier Foundation, некоммерческий фонд, чья миссия заключается в защите конфиденциальности и прав граждан в Интернете, выпустил заметки для использования Signal.

Примечания по использованию Signal в операционной системе Android:

https://ssd.eff.org/en/module/how-use-signal-android

Примечания по использованию Signal в операционной системе iOS:

https://ssd.eff.org/en/module/how-use-signal-ios

Как сообщает EFF, сигнал предлагает пользователю список контактов, на которых также установлено приложение.

Для этого телефонные номера загружаются на сервер сигнал, несмотря на то, что почти сразу же ликвидированы

Принципиальная разница с WhatsApp это определяется природой проекта с открытым исходным кодом.

Подробно, за разработкой приложения не стоит крупная корпорация (например, Facebook), и код виден, что позволяет быстро проверить, что оно делает, и позволяет пользователям не попадать в сетку потребностей монетизации или маркетинга дежурной компании.

Еще одна разница с WhatsApp это объясняется тем фактом, что, будучи открытым исходным кодом, он не представляет (и в соответствии с теми, кто проанализировал источник, именно так) бэкдоры, или «служебные двери», которые позволяют правительству, например, иметь возможность читать разговоры без разрешения ,

Чтобы сделать реальное сравнение, с сигнал (установив его из официальных источников) вы наверняка не встретите «Ghost Protocol», пока WhatsApp пользователь не может сказать наверняка.

В заключение, сигнал он не представляет те же системные угрозы, которые он представляет WhatsApp (на уровне передачи данных), учитывая открытый характер проекта.

В некоторых областях предпочтительнее использовать инструменты с открытым исходным кодом, поскольку это дает возможность Организации или Сообществу, которое использует конкретное программное обеспечение, для анализа кода.
В принципе, это условие приводит к увеличению вероятности обнаружения, анализа и решения ошибок. Обычно это делается как производителем программного обеспечения, так и самим сообществом (очевидно, людьми, обладающими необходимыми навыками), и это позволяет быстрее находить ошибки. Однако не очевидно, что эти ошибки устраняются быстрее, чем программное обеспечение с закрытыми исходными кодами, и это может варьироваться в зависимости от людей, работающих над проектом, бизнес-модели производителя и типа сообщаемой ошибки.

Сообщается о реальном случае, когда платформа сигнал получил запрос на расследование от штата Вирджиния.

https://signal.org/bigbrother/

Таким образом, из этого запроса единственной информацией, которую удалось получить штату Вирджиния, являются следующие:

  • Дата и время регистрации пользователя в сервисе
  • Дата последнего подключения к услуге

Для глубокого анализа транспортного уровня анализируется работа приложения на реальном устройстве.
Что касается WhatsApp, чтобы захватить соединения, сделанные приложением, используется fakeVPN.

Это результат (изображение)
Из анализа шаблона, следующая информация получается:

Приложение использует только стандартные порты
Приложение подключается к серверам Amazon

Анализ IP-адресов не выявил каких-либо недавних показателей.

Используя только порт 443, приложение становится более устойчивым, если у противника есть возможность проверять сетевой трафик, что делает связь менее детектируемой.

После изучения транспорта данных, клиент анализируется.

В приложении представлены 6 CVE:

https://www.cvedetails.com/vulnerability-list/vendor_id-17912/Signal.html

Несмотря на CVE, прямой угрозы нет, так как для текущей версии приложения не зарегистрированы уязвимости.
Подчеркивается, что экосистема, в которой находится приложение, не является ничтожной.

Как именно WhatsApp, также сигнал он подвержен атакам, в случае если злоумышленник имеет физический доступ к устройству.
В дополнение к вышеупомянутому UFED существует программное обеспечение от компании ElcomSoft, такое как «Phone Viewer»:

https://blog.elcomsoft.com/2019/08/how-to-extract-and-decrypt-signal-con...

Завершение анализа сигнал и сравнение с WhatsApp

В заключение, этот анализ показывает, что сигнал он может использоваться в более чувствительных областях, сводя к минимуму риски благодаря открытой природе проекта и его инфраструктуры, которая является более безопасной и надежной по сравнению с WhatsApp.

Отрицательная нота представлена ​​поведением сигнал при регистрации пользователя. Платформа при регистрации сообщает обо всех контактах уведомлением сигнал присутствует в адресной книге человека, который зарегистрирован.

Желательно обратить внимание на это поведение приложения, в некоторых областях, безусловно, раздражает.

Приведенный выше случай показывает, что платформа сигнал оно устойчиво даже в случае вмешательства государства.

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

В случае отсутствия риска физического доступа к устройству или ожидаемого отсутствия у оппонента необходимых средств для использования определенных элементов управления или программного обеспечения, мы, безусловно, рекомендуем использовать Платформу. сигнал.

Для общего использования использование обеих платформ является приемлемым.

1 https://www.ssi.gouv.fr/uploads/2017/10/chiffrement_messagerie_instantan...
2 https://scontent.whatsapp.net/v/t61/68135620_760356657751682_62129975288...)
3 https://faq.whatsapp.com/it/android/28000019/
4 https://robertheaton.com/2017/10/09/tracking-friends-and-strangers-using...
5 «Google Dork» - это особый поиск, который использует всю мощь поисковой системы и ее службы индексации. Движок Google имеет различные параметры поиска, настоящие «флаги», которые можно использовать для уточнения поиска. Очевидно, что, как и любая функция, эти флаги можно использовать для поиска информации или данных, которые обычно не должны быть найдены.
6 https://www.whatsapp.com/legal/
7 https://faq.whatsapp.com/en/general/26000153/

Ссылка 1 - Ключи и алгоритмы, используемые WhatsApp
Открытые ключи, используемые WhatsApp:

Пара ключей идентификации: долгосрочная пара ключей, т.е. заархивированная и сохраненная приложением, типа Curve25519, созданная на этапе установки.
Curve25519 - это 128-битное эллиптическое шифрование.
Криптография с эллиптической кривой - это тип криптографии, в котором используется формула, результаты которой, будучи размещены на плоскости, образуют эллипс.

Пара предварительно подписанных ключей (Signed Pre-Key): среднесрочная или периодически изменяемая пара ключей типа Curve25519, созданная ключом идентификации во время установки.

Очередь ключей (одноразовые предварительные ключи): серия пар ключей Curve25519, генерируемых во время установки и восстанавливаемых при необходимости.

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

Root Key: 32-байтовое значение, используемое для генерации «Chain Keys».

Ключ цепи: 32-байтовое значение, используемое для генерации «Ключей сообщения»

Ключ сообщения: 80-байтовое значение, используется для шифрования содержимого данных, которыми обмениваются WhatsApp.
Это значение используется следующим образом:

32 байта для ключа AES-256

32 байта для ключа HMAC-SHA256

16 байтов для генерации IV

AES (улучшенный стандарт шифрования)
Это стандарт шифрования, используемый в настоящее время правительством США.
В отличие от алгоритма, описанного выше, AES - это симметричная система шифрования, то есть она использует один и тот же ключ как для шифрования, так и для дешифрования.
AES-256 - это реализация AES, использующая 256-битные ключи.
HMAC-SHA256
HMAC (код аутентификации сообщения с хеш-ключом) - это система, которая использует исходное сообщение плюс ключ, чтобы гарантировать подлинность и целостность сообщения с помощью хэшей.
Хеш - это строка фиксированной длины, сгенерированная математической функцией, способной последовательно «отображать» входные данные любого типа, такие как текстовый, аудио- или видеофайл.
Целостность и подлинность гарантированы, так как даже малейшая модификация входных данных создаст хеш, полностью отличающийся от оригинала.

Пример:
Строка для вычисления: HELLO
Hash: 39F119842EBE582F049160F44BCD99F4
Теперь обратите внимание на разницу:
Строка для вычисления: CIaO
Hash: 8C3E82238DF7A597C99EC0B70ACC4A58
Строка хеша полностью отличается от предыдущей.
Этот эффект, также вызванный малейшим изменением первоначального значения, называется «лавинным эффектом».
SHA256 указывает, что в этом случае HMAC рассчитывается по алгоритму хеширования "SHA256".
IV (Вектор инициализации)
Вектор инициализации представляет собой точную битовую последовательность, которая позволяет получать разные криптографические результаты даже при одинаковых ключах и должна быть известна получателю, который иначе не сможет расшифровать сообщение.