id: Гость   вход   регистрация
текущее время 19:52 23/04/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, ... , 4, 5, 6, 7, 8, ... , 50 След.
Комментарии
— Гость (11/02/2013 02:34)   <#>
Так это концептуально, а практически кто нибудь пробовал, есть какието отзывы?

Я не пробовал, а так, это вопрос к автору, пусть он отвечает. Он писал, что и с Tor пробовал, и с i2p оно как-то работало, значит, принципиальных причин не работать и напрямую нет. Дальше вопрос, что поддерживает конкретный, им реализованный, интерфейс (чтобы самому не лезть в код при запуске продукта).
— gegel (11/02/2013 03:43, исправлен 11/02/2013 03:45)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0

Конечно, будет работать. Смотрите руководство по тестированию в картинках в части "неанонимный режим": filehttp://torfone.org/download/testingru.pdf


При этом работа программы ничем не отличается от PGPFona
https://www.pgpru.com/forum/ob.....hanizmrabotyiprochee
за исключением того, что используется TCP вместо UDP.


Собственно, имеется настраиваемый слушающий интерфейс (IP-адрес и порт), а как Вы к нему подключитесь – без разницы: напрямую из интернета, через роутер, из ТОР (настроив скрытый сервис) или из I2P (настроив туннель на IP и порт интерфейса), или из ВПН и т.д.
Что касается исходящего вызова, то при звонке создается исходящий интерфейс, работающий по выбору или напрямую (на IP – порт входящего интерфейса получателя), или же через SOCKS5 прокси.


ПС: по многочисленным просьбам
http://sourceforge.net/p/advto.....d/9d735faa/?limit=50
скомпилировал сырцы SpeakFrealy, разбираюсь с их "торификацией" (по наличию вдохновения). Хотя лично мне PGPFone больше нравится и кажется элегантнее.

— Гость (13/02/2013 23:00)   <#>
Ремарка автору проекта: настроил torfone.ini, т.е. внес в него
после чего запустил TORfone.exe. После этого стало возникать окошко
Это бы ладно, но при нажатии на окошке кнопки OK оно снова выскакивает, и так снова по кругу, из которого невозможно вырваться.
Может, надо какое-то другое, более удобное решение для индикации этой ошибки?
— Гость (13/02/2013 23:32)   <#>
ListenAddr:Prt=192.168.50:17447
Не слишком ли короткий IP у вас?
— Гость (13/02/2013 23:42)   <#>
Да, машинально пропустил, когда здесь писал – на самом деле оно было так:

ListenAddr:Prt=192.168.1. 50:17447

К тому же непонятно, откуда берется эта ошибка, о чем она, если Intrenet в наличии и файрвол для Torfone настроен?
— gegel (14/02/2013 01:24)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
Невозможно биндить сокет по этому адресу. Возможные причины:
1. Нет такого IP на вашем компьютере. Выполните "Пуск"->"Выпонить"->ipconfig /all и посмотрите, какие IP имеются на ваших сетевых адаптерах. Если хотите слушать все (автовыбор), то используйте 0.0.0.0, это лучший вариант для приема входящих звонков через интернет.
2. Порт 17447 занят другим приложением. Запустите, например, avz и посмотрите, кто занимает этот tcp-порт. Смените порт на другой свободный. Скорее всего, в памяти остался еще один экземпляр torfone (возможно, некоректно завершенный. Снимите задачу через диспетчер).

Ошибка выскакивает постоянно, пока флажок Listen установлен: приложение тупо пытается создать слушающий сокет. Если вобще не хотите слушать, поправьте в ini: EnabledListen=0

ПС: учитывая, что у вас IP за роутером, для возможности приема звонков из интернет не забудьте проключить используемый порт на этот IP в роутере (создать VirtualServer). Если на WAN-конце роутера тоже серый айпи (например, 10.10.x.x), то ничего не получится.
Для этого случая могу дописать к родному PGPfone функцию работы с заданным STUN-сервером и дальнейшим "ручным" обходом NAT (например, предварительно обменявшисть строками, скопированными с окна PGPfone в ICQ). Это более приватно, чем автоматически использовать SIP, т.к. ни STUN-сервер, ни ICQ не знает, что вы собираетесь делать.
— Гость (14/02/2013 01:35)   <#>
на самом деле оно было так
Теперь пробел лишний.
— Гость (14/02/2013 03:54)   <#>
Уважаемый gegel!

Детализирую проблему, и одновременно признаю, что в предыдущем описании кое-что упустил.
Итак, по порядку:
1. Указанный IP = 192.168.1.50 реально существует и принадлежит компьютеру, на котором запускается Torfone, проверял специально.

2. Порт 17447 не занят никем, да и при выборе других портов картина та же.

3. >> Ошибка выскакивает постоянно, пока флажок Listen установлен: приложение тупо пытается создать слушающий сокет. Если вобще не хотите слушать, поправьте в ini: EnabledListen=0
Почему же, я хочу, чтобы сокет слушался, но не такой ценой, когда упомянутое окошко выскакивает мгновенно, и мешает добраться до интерфейса TorFone и внести необходимые правки.
Может, стоит сделать какую-то временную задержку, что ли, чтобы успеть до появления окошка, закрывающего интерфейс программы, сделать что-то необходимое.

4. >> не забудьте проключить используемый порт на этот IP в роутере (создать VirtualServer).
Не понимаю этой формулировки. Может, вы хотели сказать "пробросить порт"? (т.е. форвардинг). Так он он у меня проброшен. И внешний адрес роутера белый (хотя и динамический).

5. И вот вам сладкая пилюля :) в описании ошибки выше я упустил комментарий, что запускал TorFone под Wine, и вот возникала указаная ошибка.
И когда запустил TorFone под настоящей XP, ошибка не возникла.
Но ведь в этом топике один юзер ведь написал, что под Вайном у него Torfone заработал нормально, на это и я расчитыввал. Почему у меня не сработало, не понимаю.

И пара пожеланий:
1. Каждый раз прописывать в конфиге ListenAddr не проблема.
Но как быть, когда компьютер получает свой IP по DHCP и он каждый раз меняется? Это напрягает, может, найдется какое-то вспомогательное решение?
2. Не хотите ли завести на вашем сайте какую-нибудь багзиллу, форум, блог?
Потому что email для коллективного взаимодействия не годится, и приходится писать здесь, на pgpru.
3. И конечно, терпеливо ждем-с порт под Android и Linux.
— Гость (14/02/2013 03:58)   <#>
3. И конечно, терпеливо ждем-с порт под Android и Linux :-)

А пробел да, лишний, но он только здесь на pgpru затесался, реально его не было.
— unknown (14/02/2013 10:29, исправлен 14/02/2013 16:15)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

netcat, speex (желательно в режиме CBR), aplay и вот вам самопальный VoIP. Iptables и настройку скрытых сервисов Tor добавлять по вкусу.


Вот такой уютный чат. Возможно, хорошо бы в нём заменить алгоритм симметричного шифрования или ввести асимметричные ключи. Или вообще заменить openSSL на OpenPGP. Хотя, нужно ли какое-то дополнительное шифрование, если вы будете пускать его только между двумя скрытыми сервисами Tor — решать вам.


Есть ещё socat со встроенным openssl (кому охота пообщаться вне тора). А можно и в нём. Вот пример.


А вместе с torsocks должно быть совсем хорошо. Возможно даже что-то соорудить и под виндой и без прозрачной торификации файрволлом.

— Гость (14/02/2013 17:20)   <#>

Можете более подробно прокомментировать эту самоделку? Ее плюсы, минусы, прочее.
Спасибо.
— unknown (14/02/2013 21:11)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Лучше всего использовать Tor не из TBB, а грамотно зафайрволенный системный Tor. Примерно как здесь.
Чтобы трафик юзера железно заворачивался в Tor и без утечек DNS.

После этого надо поднять каждому свой скрытый сервис Tor — двум корреспондентам. Для пущей безопасности посмотреть в сторону опций: HidServAuth onion-address auth-cookie [service-name] и HiddenServiceAuthorizeClient для совсем скрытой работы скрытого сервиса (невидимого незнающим ключ аутентификации).

Тогда всё остальное (чат, передача файлов, голосовая связь) в общих чертах становится тривиальным: анонимная связь точка-точка с шифрованием точка-точка (не требует дополнительных средств шифрования помимо самого Tor, т.к. трафик не выходит из сети через exit-узлы). Все вышеперечисленные утилиты входят в состав практически любого Линукса лет десять как и носят общий характер.

Например, netcat или nc — утилита управления tcp-потоками через любой порт в режиме сервера или клиента .

Запускаем на одной машине со скрытым сервисом nc -l -p $PORTNUMBER (грамотно завёрнутый файрволлом в скрытый сервис, естественно!), на другой — nc $ONIONNAME.onion. Всё — между машинами работает консольный чат реального времени, прикручивать к нему доп. шифрования не надо. Но если очень охота, можете оформить какие-то навороты простейшим скриптом типа этого.

Аналогично, cat file.tar.gz | nc -l -p $PORTNUMBER на одной машине, nc $ONIONNAME.onion $PORTNUMBER > file.tar.gz — на другой машине. Передача файлов между двумя скрытыми сервисами пользователей.

Для полудуплексного VoIP нужна arecord — утилита захвата потока с аудио-системы — алсы, ей можно указать устройство, откуда захватывать поток (микрофон). Утилиты speex-utils — голосовые кодеки (говорят, разборчивость речи сохраняется до 2 kbit/s !), лучше подобрать режим CBR — постоянного битрейта.

Перенаправляем голосовой поток с первой машины arecord -t raw | speecenc --8bit --denoise – - | netcat $HOST.onion $PORT, воспроизводим на второй netcat -l -p $PORT | speexdec – .

В принципе, так можно даже и нетяжёлый видеопоток передавать.

Надо на самом деле поиграться с параметрами, где тут включать CBR, выбирать устройства.

Другие утилиты вместо netcat (Socat, Torsocks) более навороченные (для данных задач скорее избыточным функционалом) и больше подойдут для случая. когда Тор не закручен в системе нормальным файрволлом.

Недостатки понятны:

  1. Убогий функционал. Сервер чата отваливается при выходе из него клиента, хотя может это и настраивается.
  2. Только чат двусторонний. А передача голоса — в одну сторону. Или надо городить два встречных потока на двух портах.
  3. Это система для связи только двух абонентов. Нет списка доступных юзеров в сети, не форум, не конференция, не портал.

Плюсы: всё тривиально, прозрачно, малоуязвимо, скриптуемо, есть в любом Линуксе, полная независимость и максимальная безопасность потенциально достижимы. Не требуется разворачивания сложных серверов, нет избыточной транспортной нагрузки на тор-сеть. Достаточно кому-то одному наваять скрипты, отладить и выложить их вместе с инструкциями.
— Гость (14/02/2013 23:56)   <#>

Да, там по ссылке даже в лоб сказано:
if you're concerned about anonymity, you can try piping tcp through tor to a hidden service.
— Гость (15/02/2013 00:39)   <#>
Torfone является наследником старого Pgpfone и унаследовал от него весьма неприхотливые системные требования.
Но не пора ли их повысить и благодаря этому сменить древний малонадежный по нынешним меркам 3DES на современный AES?
— unknown (15/02/2013 10:05)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Для воспроизведения audio/video (хоть вместе, хоть по отдельности) через pipe1-TCP-HS1-tor-HS2-TCP-pipe2 можно ещё использовать mplayer — у него размер буфера можно задавать в широких пределах.
На страницу: 1, ... , 4, 5, 6, 7, 8, ... , 50 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3