id: Гость   вход   регистрация
текущее время 10:42 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, ... , 25, 26, 27, 28, 29, ... , 50 След.
Комментарии
— Гость (23/04/2014 10:40)   <#>

Вы — большинство? Читали бессмертное? Windows (а также Ubuntu и оконный интерфейс, в частности) не имеют ничего общего ни с удобством, ни с безопасностью. Их фишка — низкий порог вхождения для тех, кто привык к оконному интерфейсу, не более того.


Не имя красит продукт, а продукт имя. С учётом завязки на TorChat это вполне нормальное и естественное имя.


Винда головного мозга — это диагноз.


А что, их несколько? Если нет особенностей, я бы взял последнюю стабильную версию (это же верно и для любого другого продукта).
— unknown (23/04/2014 11:35)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Про торчат.
— SATtva (23/04/2014 12:43)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Лучше оставьте минимум методов и протоколов, но наиболее востребованных и с наилучшими характеристиками.

Мне кажется, это и есть необходимый минимум.

There is only one mode and it is secure. ©
— Гость (23/04/2014 12:45)   <#>

Альтернатив у него пока нет. Впрочем, тот минимум коммуникаций, который нужен gegel'ю, наверно, можно получить и без всяких TorChat'ов — достатоно написать свой небольшой протокол для взаимодействия скрытых сервисов.
— gegel (23/04/2014 20:34, исправлен 23/04/2014 20:45)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
Вы — большинство?

Маскируюсь :) Но я привык к оконному интерфейсу, и ценю те удобства, которые он предоставляет.


тот минимум коммуникаций, который нужен gegel'ю, наверно, можно получить и без всяких TorChat'ов

Собственно, никакой минимум, кроме Tor, и не нужен: Торфон подключается к SOCKS5-порту Tor непосредственно. TorChat работает независимо параллельно через тот же Tor-HS и интересен в двух аспектах:


1. TorChat обеспечивает взаимную аутентификацию (по онион-адресам). Если на ваш Торфон кто-то звонит, вы понятия не имеете, кто это. Если вам кто-то пишет в TorChat, вы уверены, что это именно тот адрес, который отображается в контактах. В разных ситуациях и то, и другое может быть как полезно, так и нет.


Сам по себе протокол TorChat очень простой: в начале вызывающий подключается к скрытому сервису вызываемого и открыто передает ему свой онион-адрес. Сообщение маршрутизируется средствами Tor строго по назначению, и информация шифруется публичным ключем HS получателя (также средствами Tor), только получатель может ее прочитать.


Вызываемый создает параллельное соединение к HS вызывающего и передает ему nonce по вновь созданному каналу.


Вызывающий возвращает полученный nonce по первичному каналу. Т.е. это в точности протокол Abadi. Далее абоненты отсылают сообщения каждый по созданному им же каналу без всякого дополнительного шифрования (Tor сам шифрует их публичными ключами HS получателей).


Кстати, Торфон неявно делает то же в случае использования режима дублирования цепочек.
Это можно без проблем реализовать в течение получаса, или даже в точности повторить синтаксис протокола TorChat, инкапсулировав его в Торфон.


Я не вникал подробно в протокол Tor, и не могу сказать, как в данном случае обстоит дело с PFS и тем более с отрицаемостью в TorChat: если позже злоумышленник получит доступ к файлу private_key в папке hidden_service получателя, сможет ли он прочитать ранее записанные сообщения, или же внутри канала производится еще и DH (т.е. используются сеансовые ключи). Но это проблемы Tor, а не TorChat.


2. И основное, что меня склоняет к использованию Linux-Торфона совместно с TorChat: возможность определения он-лайн присутствия контактов с готовым графическим интерфейсом. Конечно, можно реализовать это и на С, но вылепить вывод в консоли – это как секс стоя в гамаке, тем более при моем положительном отношении к оконному интерфейсу.

— Гость (24/04/2014 01:00)   <#>
какой вариант TorChat лучше использовать
А можно без всяких торчатов? Мне не нужна эта наркоманская хрень, мне нужен аналог скайпа. Зависимость от сторонних программ – большой минус.
— Гость (24/04/2014 01:04)   <#>
Крик души: Gegel, ну дайте хоть что-нибудь, обеспечивающее наиболее надежуную высокую степень безопасности! :-)
Начните с консоли, окна/рюшечки можно и потом прикрутить.

Кстати, не холивар: начинал с Доса, т.е. с консоли, потом засосала окошечная Винда, после которой очень-очень долго перепривыкал снова к консоли, теперь уже в Линуксе.
Вывод – среди этих интерфейсов бессмысленно определять лучшего, каждый из них хорош под свою задачу.
Например, ведь никто не будет утверждать, что рисовать в Bash удобнее, чем в Gimp? :)) И наоборот.
— Гость (24/04/2014 01:06)   <#>

Угу. И дело даже не только в этом – как, т.е. по каналу скрытно передать собеседнику адреса полученных скрытых сервисов?
— unknown (24/04/2014 09:42)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Private_key используется только для аутентификации перед клиентом и директориями скрытых сервисов. Для шифрования используется сеансовый DH с PFS. Так что ранее записанный трафик при знании private_key расшифровать невозможно.
— Гость (24/04/2014 14:54)   <#>

«... при моем положительном отношении к двупальцевому методу набора на клавиатуре против десятипальцевого».
No comments...
— Гость (24/04/2014 20:27)   <#>

... и, как следствие, массовость, является критичным при угрозе профилирования.
— Гость (24/04/2014 20:30)   <#>

Так исходники открыты – форкайте под свой вкус всеми десятью вашими пальцами! :)
— gegel (01/05/2014 14:02, исправлен 01/05/2014 14:11)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0

Как и обещал, адаптировал Unix-версию SpeakFrealy7.6 для работы через TCP и Tor. Бинарные файлы с поддержкой TCP/SOCKS5 (с сайта Торфона) в filesf76_01a.tar.gz, исходники (чистый С) в filesf76_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 (совместима с моей версией SpeakFrealy_7.2_TCP, кроме кодека CELP), так и по UDP (полностью совместима с версиями SpeakFrealy_7.6_Win32 и SpeakFrealy_7.6_UNIX).


Для выполнения исходящего звонка по 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.

— Гость (01/05/2014 18:37)   <#>
@gegel, А почему не работает с 64битными?

Выложи исходники на github. Что бы инструкция выглядела так:



А Ваши эти '!', '$' вначале – это плохо. Там что, нет возможности определить, ip addr/или доменное имя/или у доменного имени суфикс .onion?

Как torchat сделан все видели, там в коробке маленький Tor, сразу запиливается в него, и не нужны никакие слушания на raw ip, с пробросами через router.
— Гость (01/05/2014 18:56)   <#>
@gegel, а что думаете о chatroulette?

Завертеть на Вашей шарманке, такую же прикалюху в Tor-сети.

Придётся вероятно отдельную башню поднимать для того, что бы она индексировала тех кто on-line.

Но зато, какой ажиотаж будет. Стелс-видео-рулет-чат.

Правда, ждёт Вас там такое же цунами из педафилов, как и в TorChat-е. Но кнопочку `ignore` можно допилить.
На страницу: 1, ... , 25, 26, 27, 28, 29, ... , 50 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3