Cайт веб-разработчика, программиста Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Новосибирск, Первоуральск

Российский разработчик придумал внешний слой шифрования для мессенджеров

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

Исходный код CryptoLayer разработчик опубликовал на GitHub. Библиотека работает независимо от встроенного шифрования мессенджера и рассматривает Telegram, VK или другой сервис просто как канал доставки данных. Перед отправкой CryptoLayer шифрует сообщение локально, а после получения расшифровывает его на устройстве собеседника.

Для защиты содержимого разработчик использует AES-256-GCM. Цифровые подписи создаются с помощью ECDSA на кривой SECP256R1, а для согласования ключей применяется ECDH. Сам по себе такой набор криптографических примитивов считается современным и стойким, хотя реальная безопасность любого подобного проекта зависит не только от выбранных алгоритмов, но и от реализации, управления ключами и возможных ошибок в коде.

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

 Сейчас в официальном репозитории модулей доступны интеграции с Telegram и VK. Telegram-модуль подключается через личный аккаунт по MTProto и умеет передавать текст и файлы. Для VK предусмотрены варианты работы через пользовательский аккаунт и через группу.

Поддержки MAX среди готовых модулей пока нет. Архитектура CryptoLayer специально сделана модульной, поэтому разработчик предлагает сообществу добавлять новые каналы самостоятельно. Теоретически таким каналом может стать MAX, Discord, HTTP, SSH, облачное хранилище, файловая система или практически любой сервис, способный переносить данные между двумя пользователями. Для работы потребуется написать соответствующий модуль.

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

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

SecurityLab