3 месяца назад
Шифрование метаданных в мессенджере: HMAC-SHA256 анонимные пары, timing obfuscation и отравление собственных логов
«Мы знаем, что вы вчера в 23:47 переписывались с Алексеем 14 минут. О содержании разговора нам неизвестно.» — Так выглядит мир, где сообщения зашифрованы, а метаданные — нет. Привет, Хабр! Я занимаюсь разработкой open-source мессенджера (проект Xipher, C++/Android), и один из компонентов, который пришлось проектировать с нуля — защита метаданных. Не содержимого сообщений (E2EE сейчас есть у всех), а информации о самом факте общения: кто с кем, когда, сколько раз...
О разнице между подписями HMAC и ECDSA
По работе мне довольно часто приходится сталкиваться с различного рода криптографическими штуками. И вот как-то раз возникла необходимость сделать интеграцию с рядом криптобирж. API этих бирж не используют никакие token-аутентификации, как принято делать в вебе. В таких случаях больше подходит HMAC-based аутентификация. Причины ясны - не нужно поддерживать токены на бэкенде, следить за их экспирацией и прочее. Достаточно только один раз выдать API-ключ клиенту, сохранить его у себя и все. В таком...