id: Гость   вход   регистрация
текущее время 15:20 29/03/2024
создать
просмотр
ссылки

Voice over TOR


Предлагаю для тестирования кипто VOIP-утилиту для работы через TOR (в режимах TOR -> доменное имя и TOR->скрытый сервис). Переделал с старого PGPFone: заменил транспорт на TCP и добавил адаптивный буфер для компенсации высокого jitter в TOR-туннеле. Также добавил обмен сообщениями и файлами.


Win98-XP-7-8. Полностью портируема. Работает peer-to-peer (звонить на доменное имя или TOR-hidden service). Использует DH4096+3DES.


Приветствуются замечания и пожелания.
Сайт проекта http://torfone.org (англ./рус.), там же доступны исходники (Visual C 6).


 
На страницу: 1, 2, 3, 4, 5, ... , 46, 47, 48, 49, 50 След.
Комментарии
— Гость (29/01/2015 23:24)   <#>

Например Сбер.

Я не говорю о том, что вы его должны вовлечь в секту убедить пользоваться смартфоном, речь идет о том, что убедить человека, что есть случаи когда использование крайне необходимо. Если человек не способен понять, что кто то в чем то может нуждаться, то вероятно такой собеседник не достоин особого внимания.
— Гость (29/01/2015 23:28)   <#>

Накой нужен такой банк, который сует свой нос и диктует условия без учета интересов клиента. Этого говна добра кучи. Зайдите на сайт банки.ру. Там становиться понятно, что у ЦБ непочтатый край работы. 90% – это карманные банки для отмывания, а, в последствии, и кидания клиентов.
— Гость (29/01/2015 23:31)   <#>

В конечном счете, что мешает сверить отпечатки ключей?
— gegel (30/01/2015 01:30, исправлен 30/01/2015 01:31)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
Если технология отработана

Отработана технология MitM соединения со входящим узлом Tor???
Ну, тогда вообще нет смысла использовать онионфон: анонимности все равно не будет, даже при гипотетически устойчивом шифровании ОР и сверке его ключей.
Если такая возможность и заложена, то только для суперэкстраординарных ситуаций и, скорее всего, одноразово. Во всяком случае, о регулярном скрининге 5лайтов с его проблемами речь не идет.

— gegel (24/07/2019 14:57)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
Для уважаемых участников былого форума, когда-то указавших мне путь истинный (особое спасибо unknown). Возможно, у кого-то еще остался академический интерес к Торфону.

Теперь есть GUI-версии для Windows, Linux (x86 и ARM для одноплатников) и, глдавное, для Android, а также кроссплатформенная библиотека + консольное приложение для Windows и Linux. Планирую также сделать Open-HW решение: Tor и транспортный модуль запустить на одноплатнике Nano Pi Neo под Debian (частично доверяемый модуль, при компроментировании теряется только анонимность) и отладке Nucleo STM32F446RE c Arduino TFT LCD, усилителями микрофона и динамика (на ней будет реализована аутентификация, шифрование, аудиозахват и воспроизведение и GUI) – полностью доверяемый модуль. Связь между модулями – по UART пакетами со строго фиксированными полями, жестко контролирумыми со стороны микроконтроллера. Все криптопримитивы на МК будут выполнены на ASM под Cortex M4 для минимизации утечек по побочным каналам (ЭМИ, тока потребления).

Торфон может работать в трех режимах:

  • звонок на onion не выходя из Tor
  • звонок на onion, IKE в Tor, затем переход на p2p UDP с NAT Traversal c помощью Tor
  • непосредственный звонок на IP:port (в этом режиме не нужен доступ в Интернет, возможна работа в полностью изолированной сети). Порт можно выбрать любой, в т.ч. 80, 443 и т.п., это как часть адреса.

Переделал IKE для обеспечения лучшей безопасности в третьем режиме:

  • IKE выполняется в две TCP-сессии со случайным временным промежутком между ними;
  • во время первой сессии выпоняется DH, ключи псевдослучаны (в представлении Elligator2) со случайным дополнением;
  • во второй сессии весь обмен (включая заголоки) шифруется секретом, выведенным в первой сесии, используется случайное дополнение пакетов – транскрипт неотличим от рандома;
  • во второй сесии требуется доказательство работы для расшифровки транскрипта (для защиты от сканирования);
  • аутентификация производится с помощью протокола тройной DH (tDH) (как в Signal) с использованием ключа контакта, хранимого в адресной книге;
  • ID вызывающего абонента защищен с PFS (используется протокол SPEKE параллельно с tDH);
  • для обеспечения отрицаемости наличия ключа в книге введена возможность неаутентифицированного звонка и возможность (отключаемая) автоматического добавления любого ключа в удаленную адресную книгу;
  • при первичном контакте перед обменом своими ключами абоненты могут аутентифицированться альтернативными способами:
a) сравнив SAS во время звонка или позже (SAS является частью имени, автоматически присваемого принятым от удаленной стороны ключам в адресной книге с возможность переименования позже). Коммитмент позволяет использовать короткие отпечатки.
b) сравнив заранее согласованный секрет (аналогично SMP в OTR, используется протокол с нулевым разглашением разглашением SPEKE). Можно использовать короткие секреты (пин-код).
c) аутентификация по onion (средствами Tor): по встречному соединению от вызываемого к вызывающему абоненту (как в Torchat, фактически протокол Martin Abadi).

Для уменьшения латентности вызываемый Тофрон устанавливает встречное соединение с вызывающим, используя onion из своей записной книги.
Это происходит только в случае аутентифицированного звонка, когда абоненты уже имеют ключи друг друга и переименовали их в своих записных книгах (убрали знак + в начале имени, разрешив использование этого ключа при входящих звонках).

Фишка проекта – относительная простота работы (особенно с Андроид-версией) по сравнению с консольным OnionPhone.
Необходимо установить apk, однократно ввести пароль до 31 символа (защита телефонной книги, сменить его будет невозможно, и надо будет ввести при повторной установке для восстановления из резервной копии данных), и перезапустить Торфон. Все остальное выполнится автоматически: запустится Tor, подтянется ваш онион-адрес и адресная книга из резерва или сформируются новые. Кроме того, Андроид-версия порождает сервис, перезапускающий Торфон при выгрузки системой в случае нехватки ресурсов. Также контролируется смена IP интерфейса (при переходе в WiFi и обратно или смене сотовым оператором), при этом Tor перезапускается. Также выполняется самотестирование (звонок себе) каждые полчаса, и перезапуск Tor при неудаче. Ну, и выполняется по возможности энергосбережение (но в меню телефона надо отключить экономию батареи для Торфона в Андроид 5 и выше).

Тестировал Андроид-версию в аеропортах, вокзалах и гостиницах Мюнхена, Москвы и Киева, везде голосовая связь была возможна, задержки вполне терпимые. Переключение на p2p UDP не выполнялось в публичных WiFi вокзалов Москвы (там же не работал WhatsApp и Viber голосом), но голосовая связь Торфоном через Tor работала. Также тестировал в полностью закрытой сети (неподключенная к Интернет мощная WiFi точка в центре зоны обслуживания), все работает без проблем.

К сожалению, катастрофически не хватает времени все систематизировать и выложить на github. Делал все сам, команду безвозмездно собрать сейчас нереально. Поэтому исходники и бинарники для все поддерживаемых ОС пока упаковал в архивы и разместил на своем сайте. Сам сайт http://torfone.org пока старый, как и 7 лет назад, не знаю, когда получится занятся.

Ссылки и PGP-подписи в файле: http://torfone.org/download/Torfone.txt

fileТехническое описание (в т.ч. подробное описание протокола): filehttps://github.com/gegel/torfone/blob/master/white.pdf

Корявая fileинструкция для Андроид-пользователей тут: filehttp://torfone.org/download/Torfone_Android_howto.pdf

Код ядра на github: https://github.com/gegel/torfone

Статья на Habr: https://habr.com/ru/post/448856/

Буду рад, если проект окажется кому-нибудь интересен как решение или полезен для практической деятельности в нашей непростой жизни.
Моя почта: gegelcopy@ukr.net, gegelcopy@protonmail.com и torfone@ukr.net, PGP на сервере MITM и на форуме (с тех пор не изменился).
— Piano (01/08/2019 14:03)   профиль/связь   <#>
комментариев: 110   документов: 17   редакций: 16
Буду рад, если проект окажется кому-нибудь интересен

А уж как я рад, что после стольких лет забвения вы опять появились! :))
gegel, гляньте ваши почты, отправил вам сообщения, может, хоть какое-то доехало
— r1010 (02/08/2019 18:43)   профиль/связь   <#>
комментариев: 1   документов: 0   редакций: 0
Скомпилил под линукс, "find / -name torfone" ничего не нашло. Как запустить?
— gegel (05/08/2019 10:03, исправлен 05/08/2019 10:04)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0

Был в разъездах, почту не смотрел.
Все пришло, ответил.


По компиляции под Linux: сначала отдельно собирается ядро
( https://github.com/gegel/torfone или filehttp://torfone.org/download/tf_core_src_140719.zip )
Получаем статическую библиотеку libtf.a (для дальнейшей сборки GUI-версии) и исполняемый файл tf (подробнее смотри Makefile). Но этот файл фактически только для теста и для использования с внешним модулем на микроконтроллере, подключенным через COM-порт, в нем нет интерфейса с пользователем.


Для сборки GUI-версии качаем проект для WideStudio:
filehttp://torfone.org/download/tf_src_linux_ws_140719.zip
Инструкция внутри: устанавливаем саму WideStudio и зависимости, прописываем путь к libtf.a и собираем GUI-версию.


Для сборки Android-версии:
качаем проект для Embarcadero RAD studio 10.2: filehttp://torfone.org/download/tf.....droid_rad_140719.zip


Инструкции внутри. Саму RAD студию можно взять на рутрекере.
Конечно, это далеко не идеальный вариант, было выбрано для быстрого старта. Нужно будет все переписать на Qt под все системы, или, в крайнем случае, сделать для Android классически: в Android-студии + NDK. Но катастрофически не хватает времени.

На страницу: 1, 2, 3, 4, 5, ... , 46, 47, 48, 49, 50 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3