Проект TFC розробив USB-спліттер для месенджера з 3-х комп'ютерів


Проект TFC розробив USB-спліттер для месенджера з 3-х комп'ютерів

Проект TFC (Tinfoil Chat) запропонував апаратний пристрій з трьома USB-портами для з'єднання трьох комп'ютерів і створення параноїдально-захищеної системи обміну повідомленнями.

Перший комп'ютер виступає шлюзом для підключення до мережі та запуску прихованого сервісу Tor, він маніпулює вже зашифрованими даними.

Другий комп'ютер має ключі для розшифровки і використовується тільки для розшифровки та відображення отриманих повідомлень.

Третій комп'ютер має ключі для шифрування та використовується лише для шифрування та надсилання нових повідомлень.

USB-спліттер працює на оптронах за принципом "діод даних" і фізично пропускає дані тільки в заданих напрямках: відправлення даних у бік другого комп'ютера та прийом даних від третього комп'ютера.

Компрометація першого комп'ютера не дозволить отримати доступ до ключів шифрування, до самих даних і не дасть можливість продовжити атаку на пристрої, що залишилися.

При компрометації другого комп'ютера зловмисник прочитає повідомлення та ключі, але не зможе передати їх у зовнішній світ, оскільки дані тільки приймаються зовні, але не вирушають зовні.

У разі компрометації третього комп'ютера зловмисник може видавати себе за абонента і писати від його імені повідомлення, але не зможе читати дані, що надходять ззовні (бо вони йдуть на другий комп'ютер і там розшифровуються).

Шифрування виконано на базі 256-розрядного алгоритму XChaCha20-Poly1305, для захисту ключів паролем застосовується повільна хеш-функція Argon2id. Для обміну ключами застосовується X448 (протокол Діффі-Хеллмана на базі Curve448) або PSK-ключі (pre-shared). Кожне повідомлення передається у режимі досконалої прямої секретності (PFS, Perfect Forward Secrecy) з урахуванням хешів Blake2b, у якому компрометація однієї з довгострокових ключів дозволяє розшифрувати раніше перехоплений сеанс.

Інтерфейс програми гранично простий і включає вікно, розбите на три області - відправлення, отримання та командний рядок з логом взаємодії зі шлюзом. Управління здійснюється через спеціальний набір команд.

програмний код проекту написано мовою Python та доступний під ліцензією GPLv3. Схеми спліттера додаються (Друкована плата) та доступні під ліцензією GNU FDL 1.3, спліттер можна зібрати з підручних деталей.

Джерело: linux.org.ru

Додати коментар або відгук