PDA

Просмотр полной версии : Криптоанонимная звонилка - TorFone



stayer
17.01.2013, 18:17
Voice over TOR (torfone)

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

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

Приветствуются замечания и пожелания.
Сайт проекта https://www.pgpru.com/themes/plastiq/icons/web.gifhttp://torfone.org (англ./рус.), там же доступны исходники (Visual C 6).[/URL]

[url]https://www.pgpru.com/forum/anonimnostjvinternet/voiceovertor (https://www.pgpru.com/forum/anonimnostjvinternet/voiceovertortorfone)

stayer
20.01.2013, 16:30
Походу проект получился. Разговор из-за задержек напоминает обмен репликами в ток-шоу или обмен по рации (задержки 4-6 секунд), но можно привыкнуть. Автор доработал известный проект Циммермана PGPFone под использование через Tor, было мнение что задержки не позволят реализовать VoIP через Tor и поэтому никто за много лет так и не сделал эти относительно несложные доработки, но оказалось не так страшен черт, как его малюют. Тестовый вариант сделан под платформу Windows 32bit, следующий на очереди - под Android и Linux. Если автор дожмет это дело, то впервые появится возможность совершать криптоанонимные звонки со смартфонов, персоналок и ноутбуков с бесплатного и открытого программного обеспечения. Параллельно развивается коммерческая версия самого Циммермана https://silentcircle.com/web/silent-phone/ , но там большой вопрос с анонимностью.

https://www.pgpru.com/forum/anonimnostjvinternet/voiceovertortorfone


Краткое руководство по тестированию со скриншотами в rtf:
https://www.pgpru.com/themes/plastiq/icons/file.gifhttp://torfone.org/download/testing.zip (http://torfone.org/download/testing.zip)

Руководство (en, ru) в html:
https://www.pgpru.com/themes/plastiq/icons/file.gifhttp://torfone.org/download/help.zip (http://torfone.org/download/help.zip)




PGPFone не мой проект, я просто изменил транспорт на TCP, добавил поддержку SOCKS5 и дополнительный буфер для компенсации большого Jitter. То же, в принципе, могу попробовать сделать и с speakfreely. Большой буфер там уже, кстати, есть.

Мне кажется, speakfreely даже моложе, чем PGPFone. Самый древний из них скорее всего, https://www.pgpru.com/themes/plastiq/icons/web.gifhttp://nautilus.berlios.de/ (http://nautilus.berlios.de/) (консольный), но обновляется (2009). Все три используют практически одинаковый код. В speakfreely отсутствует DH (по лицензионным соображениям), используются preshared key или паралельно с PGP. А плюсы: больше кодеков, больше криптоалгоритмов, больше протоколов (в т.ч. стандартные) – вобщем, более гибкие настройки. Ну, и кроссплатформенность исходников.
А silentcircle, думаю, тоже заслуживает доверия, т.к. это теперешний проект лично Циммерманна. Бизнес есть бизнес. Но не думаю, что что-то основательно поменялось в сырцах по сравнению с PGPFone, кроме GUI и добавки сервера :)
А вот TOR Циммерманна не заинтересовал: из его ответа на мое уведомление об использовании его сырцов:
"TOR is too slow for any real time protocol, such as telephony."
И тем не менее, TORFone реально рабочий получился :)
Теперь на очереди I2P...




- Кроме вас кто-нибудь ещё этим пытался пользоваться? Наверняка ведь вы не только на pgpru.com об этом сообщили. Какие впечатления народ пишет?

Например, цитата:
The results were as expected. The lower the number of the servers and the more fast they are, the lower the latency will be .
I experienced latencies down to 300 msec.The worst case occured only once with 8 chains where the latency rised over 10.000 msecs,but it was also peak time of traffic for Europe.
...
My general conclusions are VERY POSITIVE !!!

Ermolov
20.01.2013, 17:39
Интересно, я нельзя разве шифровать в обыкновенном sip адаптере - у меня вот что в настроечках на эту тему видно. Я, правда, не изучал еще эти возможности.
11157

stayer
21.01.2013, 11:33
Интересно, я нельзя разве шифровать в обыкновенном sip адаптере - у меня вот что в настроечках на эту тему видно. Я, правда, не изучал еще эти возможности.
11157
Есть шифрование для SIP: http://forum.dpni.org/showthread.php?t=38506
Но без анонимности.

stayer
13.06.2013, 19:14
Проект растет. Появилась русская инструкция для ОС Windows: http://torfone.org/download/testingru2.pdf
Ждем Linux-версию ...

stayer
06.05.2014, 10:37
Короткая инструкция по установке

https://www.pgpru.com/themes/plastiq/icons/web.gifСкачиваем последний TBB (https://www.torproject.org/download/download.html.en), распаковываем в папку. Открываем файл \tor-browser_en-US\Data\Tor\torrc и добавляем строку:
HiddenServicePort 17447 127.0.0.1:17447

Запускаем ./start-tor-browser, дожидаемся подключения. Открываем появившийся файл \tor-browser_en-US\Data\Tor\hidden_service\hostname и копируем созданный ваш onion-адрес.

Скачиваем https://www.pgpru.com/themes/plastiq/icons/file.gifпатченую SpeakFrealy7.6 (http://torfone.org/download/sf76_01a.tar.gz), распаковываем в отдельную папку. Запускаем ./start
Для исходящего звонка вводим onion-адрес абонента с восклицательны знаком вначале и жмем ввод. Для приема входящего звонка жмем ввод. Для тестирования жмем ввод и слышим себя.

https://www.pgpru.com/comment79252

Некоторое описание Linux-версии

Как и обещал, адаптировал https://www.pgpru.com/themes/plastiq/icons/web.gifUnix-версию SpeakFrealy7.6 (http://sourceforge.net/projects/speak-freely-u/) для работы через TCP и Tor. Бинарные файлы с поддержкой TCP/SOCKS5 (с сайта Торфона) в https://www.pgpru.com/themes/plastiq/icons/file.gifsf76_01a.tar.gz (http://torfone.org/download/sf76_01a.tar.gz), исходники (чистый С) в https://www.pgpru.com/themes/plastiq/icons/file.gifsf76_01a_src.tar.gz (http://torfone.org/download/sf76_01a_src.tar.gz)
Пока ссылки выложил эксклюзивно только на форуме, так сказать, для внутреннего тестирования.

Тестирование: распаковываем архив в домашний каталог, работаем из консоли.
Программа работает с ALSA, использует устройства plughw:0,0. Если надо по другому, сразу меняем в файле alsacf.
(также можно перекомпилировать под старый OSS, тестировано на Ubuntu).

Запускаем ./sflaunch, жмем ввод, и еще раз. Если все ОК, слышим свой голос (loopback через localhost).
Если получаем ошибку (так было на DebianLiveCD), открываем файл alsacf и комментируем # первую строку (там размер чанка и их к-во в буфере). После комментирования система сама выбирает значение, и оно будет выведено в консоль. Если ОК, то меняем в первой строке на значения по умолчанию и убираем комент. Или можно поиграть с величинами, рекомендации ниже в фале alsacf.

Программа слушает порт 17447 на всех доступных интерфейсах (этот порт по UDP/TCP надо пробросить в роутере для возможности приема прямых соединений по IP), прокси установлен на 127.0.0.1:9150 (последний TBB). Если не так, меняем в файле spfrc.

Для запуска используем ./start, в нем прописана командная строка запуска с опциями. Используется кодек LPC10, включен VOX, компенсация дрожания 0.5 сек. Если надо по другому, меняем. Краткое описание опций ниже в файле start.

После запуска программа готова принимать входящие как по TCP (совместима с моей версией https://www.pgpru.com/themes/plastiq/icons/web.gifSpeakFrealy_7.2_TCP (http://torfone.org/spfr.html), кроме кодека CELP), так и по UDP (полностью совместима с версиями https://www.pgpru.com/themes/plastiq/icons/web.gifSpeakFrealy_7.6_Win32 (http://speak-freely-w.sourceforge.net/) и https://www.pgpru.com/themes/plastiq/icons/web.gifSpeakFrealy_7.6_UNIX (http://speak-freely-u.sourceforge.net/))

Для выполнения исходящего звонка по UDP (совместимо с оригинальными версиями) вводим доменное имя или IP-адрес.
Для выполнения исходящего звонка по TCP вводим доменное имя или IP-адрес с символом '$' в начале.
Для выполнения исходящего звонка через Tor вводим доменное имя или IP-адрес или onion-адрес (с суффиксом .onion) с символом '!' в начале.

Для приема входящего звонка жмем ввод. Во время разговора используем ввод для включения/отключения микрофона (MUTE). Можно использовать PTT-режим удержанием клавиши пробела. Для завершения звонка, а также для завершения сеанса после завершения звонка другой стороной жмем Esc. Для входа в режим чата жмем точку. Выход из программы – Ctrl+C.

Примечания:
– собирал на Ubuntu 10.04 i386, gcc 4.4.3. Требует libsound2-dev, остальное – по умолчанию. На 64-битных платформах не собирается, но бинарники работают. Тестировал на Ubuntu и DebianLiveCD. Использовал последний TBB, в файл torrc добавил скрытый сервис на порт 17447 (надеюсь, это не вызовет затруднений, если что – опишу подробнее). На Tails, к сожалению, пока не работает, т.к. я не блокировал UDP-сокеты для совместимости с оригинальной SpeakFrealy, поэтому при соксификации генерируется ошибка. Исправлю в OnionPhone.
– код вроде вычистил на предмет утечек, внешним снифером проверил. Но пока не гарантирую, это ответственный момент, надо еще погонять в разных режимах.
– шифрование в данной версии AES, IDEA, DES, есть возможность использования GPG для согласования сеансового ключа. В реализацию я не вникал, все равно буду прикручивать свое. При работе со скрытыми сервисами Tor это не важно, т.к. Tor обеспечивает оконечное шифрование и PFS.
– набор кодеков остался из оригинальной версии: GSM, CELP, LPC и LPC10. Наверное, для связи через Tor лучшим будет LPC10. Это первый низкобитрейтный (2400 бит/с) синтезирующий кодек, анализирующий голос в описатели на этапе кодирования и затем синтезирующий голос по описателям на этапе декодирования. Т.к. алгоритм старый и малотребовательный к ресурсам, то анализ не очень аккуратный, из-за чего голос звучит крайне неественно (но достаточно разборчиво). В нашем случае это может быть плюсом, т.к эти же описатели используются для голосовой идентификации, и чем они грубее, тем хуже идентификация. Собственно, вокодер Торфона использует этот же алгоритм (LPC), но целенаправленно манипулирует описателями после анализа исходного голоса.

ПС: надеюсь, я не зря потратил время, и хоть кто-нибудь попробует, буду рад услышать замечания и пожелания. Если будет интерес, то перейдем к постепенному превращению данного патча SpeakFrealy в новый OnionPhone.

https://www.pgpru.com/comment79192