Проект TFC (Tinfoil Chat) предложил аппаратное устройство с 3-мя USB-портами для соединения 3-х компьютеров и создания параноидально-защищённой системы обмена сообщениями.
Первый компьютер выступает шлюзом для подключения к сети и запуска скрытого сервиса Tor, он манипулирует уже зашифрованными данными.
Второй компьютер имеет ключи для расшифровки и используется только для расшифровки и отображения полученных сообщений.
Третий компьютер имеет ключи для шифрования и используется только для шифрования и отправки новых сообщений.
USB-сплиттер работает на оптронах по принципу «диод данных» и физически пропускает данные только в заданных направлениях: отправку данных в сторону второго компьютера и приём данных от третьего компьютера.
Компрометация первого компьютера не позволит получить доступ к ключам шифрования, к самим данным и не даст возможность продолжить атаку на оставшиеся устройства.
При компрометация второго компьютера злоумышленник прочитает сообщения и ключи, но не сможет передать их во внешний мир, так как данные только принимаются снаружи, но не отправляются вовне.
В случае компрометации третьего компьютера злоумышленник может выдавать себя за абонента и писать от его имени сообщения, но не сможет читать поступающие извне данные (т.к. они идут на второй компьютер и там расшифровываются).
Шифрование выполнено на базе 256-разрядного алгоритма XChaCha20-Poly1305, для защиты ключей паролем применяется медленная хеш-функция Argon2id. Для обмена ключами применяется X448 (протокол Диффи — Хеллмана на базе Curve448) или PSK-ключи (pre-shared). Каждое сообщение передаётся в режиме совершенной прямой секретности (PFS, Perfect Forward Secrecy) на базе хэшей Blake2b, при котором компрометация одного из долговременных ключей не позволяет расшифровать ранее перехваченный сеанс.
Интерфейс приложения предельно прост и включает окно, разбитое на три области - отправка, получение и командная строка с логом взаимодействия со шлюзом. Управление производится через специальный набор команд.
Программный код проекта написан на языке Python и доступен под лицензией GPLv3. Схемы сплиттера прилагаются (PCB) и доступны под лицензией GNU FDL 1.3, сплиттер можно собрать из подручных деталей.
>>> Подробности