id: Гость   вход   регистрация
текущее время 00:45 27/12/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, ... , 33, 34, 35, 36, 37, ... , 50 След.
Комментарии
— gegel (06/11/2014 20:54, исправлен 06/11/2014 21:07)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
то ли там используется Java, то ли JavScript

Используется именно JavaScript. Но не в проекте. Собственно, онионфон написан на чистом С. Он может быть запущен в виде демона, управляемого через контролирующий TCP-порт. Одним из протоколов, используемых для управления демоном (отсылки на него команд и получения ответов и уведомлений) является протокол WebSocket. В качестве клиента выступает любой браузер, в котором открыта специально созданная HTML5-веб-страница с элементами графического интерфейса (кнопки, флажки...) Для обеспечения функциональности этих элементов как раз и используется нативный JavaScript, поставляемый в виде отдельных js-файлов вместе с html-файлом страницы и исполняемый в браузере. К Java это никакого отношения не имеет.

— Гость (19/11/2014 12:39)   <#>
gegel, мне тут пришло в голову: у нас нет ни одного открытого протокола общения, который бы удобно гарантировал надёжную доставку сообщений. Самое близкое – опциональный XEP в Jabber, сигнализирующий, что сообщение было доставлено. В результате если видишь, что человеку не приходят сообщения, а потом он пропадает из сети, приходится перекопировать все эти недоставленные сообщения вручную.

Если планируете поддерживать возможность обмена текстом в onionphone, насколько сложно было бы приделать к нему эту функцию? Очевидно, что придётся содержать базу хэшей доставленных сообщений и время от времени её сверять. Звучит нелегко.
— gegel (19/11/2014 20:44)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
Если планируете поддерживать возможность обмена текстом

Возможность чата реализована: после установки соединения набираете в консоли текст, жмете Ввод, и текст отображается в консоли абонента (максимальная длина строки 252 символа) Ввод кириллицы не поддерживается, но при использовании веб-интерфейса браузеры кодируют строки в UTF8, поэтому кириллица проходит с максимальной длиной строки 126 символов.

у нас нет ни одного открытого протокола общения, который бы удобно гарантировал надёжную доставку сообщений.

Это, скорее, относится к серверным решениям (потеря может быть на сервере) и p2p UDP-решениям. Онионфон использует p2p TCP, а этот транспорт безпотерьный по определению.

Но Вы неожиданно обратили мое внимание на другую, скорее противоположную, проблему. Немного о шифровании в онионфоне:

Ониофон работает с шифропакетами, пакуемыми в TCP-поток. Каждый пакет содержит нешифрованное поле типа (длины пакета), шифрованное тело и МАС. На обоих сторонах организованы синхронные счетчики пакетов, принимающие участие в шифровании: для каждого пакета sponge абсорбирует ключ, счетчик и флаг инициатора, затем выжимает гамму. После ксора считается МАС: новый sponge аналогично абсобирует ключ, счетчик, флаг инициатора, затем шифропакет, и затем выжимает МАС. После отправки пакета счетчик продвигается вперед. Если МАС на приемной стороне не совпадает, то пакет отвергается, а если все ОК, то их счетчик синхронно также продвигается вперед (назад – никогда). В UDP я предусмотрел синхронизацию (в каждом пакете в открытом виде передаю 7 младших бит счетчика, что дает возможность восстановить актуальный номер счетчика – только вперед!-на приемной стороне при потерях). Но в TCP я это не использовал, понадеявшись на безпотерьность транспорта. Но не учел возможность спонтанных искажений в канале: если МАС не совпадет, пакет не зачтется и сбой синхронизации счетчиков будет фатальный.
Ваша функция с гарантией доставки как раз полностью обеспечивается (при любой потере или искажении сообщения связь будет неизбежно прервана). Но я пару раз во время тестирования наблюдал ситуацию спонтанного сбоя в обычных условиях с серией последующих сообщений "Lost crypto synchronization, trying to restore..." и разрывом соединения. А вот восстановление для TCP я как раз и забыл доделать. По уму надо бы при получении серии неверных пакетов пробовать подгонять счетчик вперед, предполагая предыдущие пропуски. Уведомления о неверном (и потерянном) пакете будет достаточно, незачем рвать соединение.
Исправлю.
— Гость (20/11/2014 15:41)   <#>
Подскажите, как соотносятся TorFone и OnionPhone?
Это разные проекты, или TorFone просто заброшенный проект, а OnionPhone его продолжение?
Непонятно чем надо пользоваться
— gegel (20/11/2014 20:08, исправлен 20/11/2014 20:08)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
как соотносятся TorFone и OnionPhone?

Ответ уже был тут.
И еще в самом начале fileописания об этом упоминается.
Просто TorFone -это был первый блин, и хоть и не совсем комом, но возможности для совершенства были значительные. Не утверждаю, что онионфон – это идеал, но все же к его релизу опыта уже побольше.
Фактически онионфон сейчас в стадии альфа-тестирования, официального релиза и беты пока нет.

— Гость (03/01/2015 22:33)   <#>
Листал, листал этот топик, но так и не понял – где же страничка для быстрого старта, эта, что ли?
http://torfone.org/onionphone/indexru.html
— gegel (04/01/2015 02:05, исправлен 04/01/2015 02:09)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
но так и не понял – где же страничка для быстрого старта

Приношу извинения: в описании это действительно с первого прочтения понять трудно. Обязательно переделаю.
Конечно же, нет. Онионфон – приложение, работающее локально, и абсолютно не зависящее от внешних факторов (серверов и т.п.). Однажды скачанное (собранное) приложение никогда не сигнализирует о себе куда-то, не апдейтится, не может управляться извне, и не может быть блокировано (будет работать, пока работает Tor).


Для управления онионфоном из браузера необходимо открыть браузером файл indexru.html, находящийся в папке web пакета онионфона. (Запустите браузер и перетяните на него мышью указанный файл.)
Жмите Connect на открывшейся в браузере страничке. Если онионфон запущен, то браузер подключится к нему и Вы сможете управлять ониофоном из браузера, используя графические элементы.
Разобраться с управлением помогут всплывающие подсказки (потом их можно отключть).


Заметьте: выполнение JavaScript в браузере должно быть разрешено. Загруженный html-файл не "лезет" в интернет, использует только скрипты из js-файлов в папке web. И html, и js легко проверяются на отсутствие опасных элементов и инициализаторов внешних соединений. Браузеру нужен лишь доступ к localhost:8000, остальное можно запретить.


ПС: адаптировали код к сборке в 64-битных системах, тестируем.

— Гость (04/01/2015 14:10)   <#>
Простите, все равно не понял :( Вот на гитхабе лежит код, описание на английском, что с ним делать – непонятно.
Дальше: так надо запускать TorChat, или Онионфон работает самостоятельно?
Вот у меня Windows XP/32, у приятеля какая-то Федора, скорее всего тоже /32, что нам нужно пошагово сделать, чтобы говорить по Онионфону через Tor?
Простите на настырность ;)
— gegel (04/01/2015 19:00)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
так надо запускать TorChat, или Онионфон работает самостоятельно?

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

что нам нужно пошагово сделать

Прежде, чем расписать пошагово, уточните: есть ли у Вас и у Вашего приятеля Тор-браузер? Можете ли Вы найти и редактировать конфигурационный файл torrc? Я сам не совсем в курсе, где он локализуется в современных сборках TBB.

Просто тяжело определить, с какой степенью детализации необходимо расписывать: с одной стороны, чтобы все было понятно, а с другой – чтобы не показалось, что я Вас недооцениваю :).
— Гость (04/01/2015 19:31)   <#>
Спасибо за деликтность :)
Да, TBB присутствует, и частенько редактирую torrc
— Гость (04/01/2015 19:44)   <#>
TBB в Виндовс можно проинсталлировать куда угодно, и torrc может находиться например здесь:

C:\Program Files\Tor Browser\Browser\TorBrowser\Data\Tor\
— unknown (04/01/2015 19:47)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

[off] забавно получилось, как будто от слова деликт [/off]
— Гость (04/01/2015 19:49)   <#>
Ох уж эти знатоки римского :)
— gegel (04/01/2015 22:59, исправлен 04/01/2015 23:06)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0

Последовательность действий для быстрого начала работы
(без компиляции и без использования PGP-аутентификации)


1. Скачиваем, распаковываем Тор-браузер, ищем torrc файл.
2. В torrc добавляем строки:
HiddenServiceDir hidden_service
HiddenServicePort 17447 127.0.0.1:17447
3. При запуске Тор-браузера будет создан каталог hidden_service
Открываем находящийся в нем файл hostname и копируем свой онион-адрес, например: gegelcy5fw7dsnsn.onion
Сообщаем его своим абонентам.
4. Скачиваем сборку онионфона:
fileдля linux
fileдля windows
Распаковываем в любую папку. Это не самые новые версии, но рабочие.
5. В файле conf.txt устанавливаем значения параметров:
Our_onion=gegelcy5fw7dsnsn
Tor_interface=127.0.0.1:9150
(значение первого параметра – ваш адрес без суффикса .onion,
в значении второго параметра изменен порт для TBB вместо TorChat)
6. Запускаем Онионфон, для этого заходим в консоли в папку онионфона и выполняем ./oph (или oph.exe)
7. Проверяем аудио: набираем -RV <Enter>, жмем <Enter> для включения передачи
Для отключения теста -R <Enter>
8. Звоним абоненту: -Ogegelcy5fw7dsnsn <Enter>
9. После ответа жмем <Enter> для включения дуплекса или используем клавишу Tab как тангенту.
10. При получении входящего звонка используем <Enter> для приема соединения, затем (после согласования ключа)
аналогично жмем <Enter> для включения дуплекса или используем Tab как тангенту.
11. Завершение разговора -H <Enter>, выход из программы -X <Enter>


Использование веб-интерфейса:
12. Запускаем браузер на вашем компьютере
13. Из подпапки web папки онионфона перетягиваем на окно браузера файл indexru.html (или открываем его через меню браузера)
14. На открывшейся веб-странице жмем кнопку Connect, браузер должен подключиться к запущенному онионфону.
15. Используем графические элементы в окне браузера для управления онионфоном. Наводим мышью и получаем всплывающие подсказки.


Если что-то непонятно, или что-то пошло не так, пишите, чтобы у нас была обратная связь.

— Гость (04/01/2015 23:28)   <#>
Спасибо вам огромное! Ну, щас спою попробую и отпишусь всенепременно!
Может, будет учтено в ваших доках.
На страницу: 1, ... , 33, 34, 35, 36, 37, ... , 50 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3