Selectric-256 переносит функции Wi-Fi, MQTT и шифрования на микроконтроллер ESP32, что позволяет обеспечить безопасный обмен сообщениями даже на старых компьютерах.

Компания Legionlabs разработала адаптер для зашифрованных чатов под названием "Selectric-256", предназначенный для использования с ретро-компьютерами. Само устройство не требует собственного подключения к интернету. Подключение к сети, обмен ключами и шифрование осуществляются с помощью микроконтроллера ESP32.

Идея заключается в том, чтобы полностью отделить сетевую коммуникацию подключенного компьютера. ESP32 подключается к MQTT-брокеру через Wi-Fi и может взаимодействовать исключительно с другим заранее определенным устройством Selectric-256. Сам компьютер видит только последовательный порт. Разработчик упоминает PDP-11 как возможную целевую платформу.

Для обмена данными Selectric-256 использует протокол MQTT. Это позволяет избежать необходимости создания собственного центрального сервиса. Оба устройства могут использовать общедоступные MQTT-брокеры, либо можно развернуть собственный сервер. Сами сообщения шифруются с использованием сквозного шифрования. После установления соединения оба устройства согласовывают временный общий ключ.

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

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

Для тех, кто занимается разработкой электронных устройств (maker'ов), этот проект особенно интересен тем, что используемое оборудование остается достаточно простым. Стоимость одного устройства составляет примерно 8 долларов США. Для более старых компьютеров предусмотрена плата с микросхемой MAX232 и стандартным последовательным интерфейсом. Схема, файлы KiCad и Gerber-файлы доступны на странице проекта.

Прошивку можно установить с помощью среды разработки Arduino IDE. Для взаимодействия с хост-компьютером также предлагаются два примера драйверов на языке Python. Они выполняют настройку ESP32, отправляют управляющие команды и получают входящие сообщения. Светодиодные индикаторы показывают состояние устройства: настроено ли оно, ожидает ли подключение к удаленному устройству или уже установлено соединение.

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

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

Первоисточник — Heise

Автор оригинала — Daniel Schwabe

Нашли неточность?

Сообщите редакции. Существенные исправления мы отмечаем в материале