
Tinfoil Chat — система защищённого обмена сообщениями с луковой маршрутизацией и защитой конечных точек
Tinfoil Chat (TFC) — это FOSS+FHD одноранговая система обмена сообщениями, которая опирается на аппаратную архитектуру с высоким уровнем гарантий для защиты пользователей от пассивного сбора данных, MITM-атак и, что наиболее важно, удалённого похищения ключей. TFC разработана для людей с одной из самых сложных моделей угроз: организованных преступных групп и хакеров, спонсируемых государствами, которые обходят сквозное шифрование традиционных защищённых приложений для обмена сообщениями путём взлома конечной точки.
/rr.TFC использует XChaCha20-Poly1305 сквозное шифрование с отрицаемой аутентификацией для защиты всех сообщений и файлов, отправляемых отдельным получателям и группам. Симметричные ключи либо предварительно разделяются, либо обмениваются с использованием X448, отпечатки которых в десятичной системе счисления проверяются по внешнему каналу. TFC обеспечивает прямую секретность для каждого сообщения с помощью хеш-ратчета на основе BLAKE2b. Все постоянные пользовательские данные шифруются локально с использованием XChaCha20-Poly1305, ключ которых выводится из пароля и соли с помощью Argon2id, параметры которого автоматически настраиваются в соответствии с лучшими практиками. Генерация ключей в TFC опирается на getrandom() ядра Linux — системный вызов для основанного на ChaCha20 CSPRNG.
TFC маршрутизирует всё взаимодействие исключительно через сеть анонимности Tor. Он использует (v3) Tor Onion Services, чтобы обеспечить P2P-связь, которая никогда не покидает сеть Tor. Это затрудняет случайную деанонимизацию пользователей. Это также означает, что в отличие от (де)централизованных мессенджеров, здесь нет стороннего сервера с доступом к метаданным пользователей, таким как кто с кем общается, когда и сколько. Сетевая архитектура означает, что TFC работает исключительно на устройствах пользователя. Здесь нет рекламы и отслеживания, и он не собирает никаких данных о пользователе. Все данные всегда зашифрованы ключами, которые контролирует пользователь, а базы данных никогда не покидают устройство пользователя.
Использование Onion Services также означает, что регистрация учётной записи не
требуется. При первом запуске TFC генерирует для пользователя случайную учётную
запись TFC (адрес Onion Service), например
4sci35xrhp2d45gbm3qpta7ogfedonuw2mucmc36jxemucd7fmgzj3ad. Зная эту учётную запись
TFC, любой может отправить пользователю запрос на контакт и общаться с ним, так и не
узнав его реальную личность, IP-адрес или геолокацию. Защищённая геолокация делает
физические атаки очень сложными, поскольку атакующий не знает, где на планете
находится устройство. В то же время это делает связь устойчивой к цензуре: блокировка
TFC требует категорической блокировки Tor в масштабах всей страны.
TFC также имеет режим маскировки трафика, который скрывает тип, объём и расписание связи, даже если сетевое устройство пользователя взломано. Чтобы обеспечить ещё большую защиту метаданных от хакеров, обращённая к Интернету часть TFC может запускаться на Tails — операционной системе, ориентированной на приватность и анонимность, которая не содержит личных файлов пользователя (что затрудняет определение того, кому принадлежит конечная точка), и которая обеспечивает дополнительные уровни защиты для обеспечения анонимности.
TFC предназначен для использования в аппаратной конфигурации, обеспечивающей надёжную защиту конечных точек. Эта конфигурация использует три компьютера на каждую конечную точку: процессы шифрования и дешифрования разделены между двумя изолированными компьютерами — Исходным компьютером и Компьютером назначения. Эти два устройства выделены для TFC. Этот разделённый TCB взаимодействует с сетью через повседневный компьютер пользователя, называемый Сетевым компьютером.
В TFC данные передаются от Исходного компьютера к Сетевому компьютеру и от Сетевого компьютера к Компьютеру назначения однонаправленно. Однонаправленность потока данных обеспечивается принудительно, поскольку данные передаются с одного устройства на другое только через свободный аппаратный дизайн диода данных, который подключается к трём компьютерам с помощью одного USB-кабеля на устройство. Исходный компьютер и Компьютер назначения не подключены к Интернету или к какому-либо устройству, кроме диода данных.