id: Гость   вход   регистрация
текущее время 21:14 19/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, ... , 41, 42, 43, 44, 45, ... , 50 След.
Комментарии
— Гость (16/01/2015 20:39)   <#>
Интересный эффект обнаружил при разговоре по OnionPhone: иногда наступают паузы, и потом, после них, тембр голоса собеседника уносится на высокие частоты, голос становится как бы детским, а скорость произношения слов ускоряется.
Это нормально, или кто-то перехватывает трафик?
— unknown (16/01/2015 21:01, исправлен 16/01/2015 21:03)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Автор программы ответит подробнее, но меньше всего вероятность чтобы перехват проявлял себя таким образом. Наверное, глюки кодека накладываются на особенности программной реализации при потерях и задержках пакетов. Что-то типа синхронизации после восстановления, чтобы и фрагмент речи не пропадал и отставания не накапливались.

— Гость (17/01/2015 03:27)   <#>

Аналогичный эффект наблюдается при sip через vpn.
— gegel (17/01/2015 09:51)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
меньше всего вероятность чтобы перехват проявлял себя таким образом

Боюсь, что перехват заметить вообще невозможно. Это продолжение иллюзии о щелчках в старых PSTN: настоящая прослушка абсолютно незаметна.

Что-то типа синхронизации после восстановления, чтобы и фрагмент речи не пропадал и отставания не накапливались.

unknown как всегда в точку. Это компенсация после "замерзания" Tor-цепочек, которое не смог скомпенсировать текущий анти-джиттер буфер. Есть различные варианты решения, реализованные в разных VOIP:

– просто дропать излишние пакеты. Часть речи будет утеряна;
– буферизировать задержанную речь, пришедшую "кучей", и затем проигрывать тем быстрее, чем больше в буфере. Именно этот способ использует ОР;
– Вместо ресемплинга искать в речи паузы и укорачивать их;
– Использовать ресемплинг + сдвиг тональности в обратную сторону дополнительным LPC транскодером.

Последние два механизма по эффективности аналогичны второму, но исключают настороживший вас эффект и обычно применяются в HQ VOIP для домохозяек. Учитывая сложность реализации, я не стал их применять, чтобы не запутывать код.

ПС: приятно, что идет тестирование. Просьба и в дальнейшем отписывать все, что вас настораживает или выглядит неожиданно и неестественно.
— Гость (17/01/2015 20:25)   <#>
Тестирование идет непрерывно, не сомневайтесь :)
И ждем-с, когда вы осуществите обещанные изменения в командной строке.

Также нужно реализовать анализвтор отлавливания ошибок пользователя.
А то набираешь типа -O gegelcy5fw7dsnsn
а нужно, оказывается, -Ogegelcy5fw7dsnsn, но кто ж все это упомнит.

И на счет регистро не- за-висимости – не слушайте этих красноглазных линуксоидов :) делайте регистронезвисимый интерпретатор, и это единственно правильное решение.

– буферизировать задержанную речь, пришедшую "кучей", и затем проигрывать тем быстрее, чем больше в буфере. Именно этот способ использует ОР;

Очень хорошо – так и оставьте, ничего не меняйте.
— Гость (17/01/2015 20:35)   <#>

Идиотское предложение. Путосвитчер себе настрой.

Ни одна нормальная программа не должна пытаться быть умнее юзера и вольно фиксить то, что он ввёл. В крайнем случае задаётся вопрос, не хотел ли юзер ввести иное, при этом есть возможность согласиться или отказаться (так сделано в zsh). Кто хочет, пусть себе пишет обёртку вокруг OP со всеми фичами, какие пожелает. Нужно отличать: сами интерфейсы — одно, обёртки вокруг них (юзерские программы) — другое.


Gegel, не слушайте идиотов.
— Гость (17/01/2015 21:08)   <#>
В зеркало посмотри! Научись не только читать, но и понимать написанное – где ты увидел "фиксер"? Речь шла только и только об анализаторе ошибок. Поэтому засунь свой пунтосвитчер себе в то самое место, которым ты здесь производишь неприличные звуки.

Для остальных: как известно, любая законченная программа обязательно содержит анализатор ошибок пользователя, которые в принципе неизбежны, поскольку такова природа человека – снижение концентрации внимания, механические ошибки и т.д. И если программа молчит, ничего не сообщает об ошибке пользователя, то и пользователь будет долго сидеть, ожидая нужной для себя реакции, а ее не будет, поскольку ожидаемая им команда не выполняется.

Gegel, не слушайте пи$доболов.
— Гость (17/01/2015 21:56)   <#>

Фразу

реализовать анализвтор отлавливания ошибок пользователя

можно понять, в том числе, и так.


С этим согласен. Если юзер нарушил синтаксис, а программа об этом молчит, это баг. Но gegel выше сам признавался, что там пока ещё всё слишком «неполноценно». Наверно, есть какие-то UNIX'овые стандартные библиотеки для парсинга командной строки и введённых опций, где можно легко задать всё, что нужно для конкретной программы.
— unknown (17/01/2015 22:30, исправлен 17/01/2015 22:33)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Обычная libc, только к ней рекомендуется соблюдать стандарты, есть стандарты и на формат конфигов и ведение документации и пр. Но большинству разработчиков часто невтерпёж получить работающий продукт любой ценой и ложили они на все стандарты и удобство дальнейшей разработки и подержки своих проектов ;) Если проект не ведёт куча народу на финансировании, а только небольшие группки энтузиастов, то выбор часто: или плохой код урывками, или никакого кода и проекта вообще.

— gegel (17/01/2015 23:02, исправлен 17/01/2015 23:12)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
то выбор часто: или плохой код урывками, или никакого кода и проекта вообще

Именно. Я выбрал плохой код урывками, иначе не было бы ничего по сей день. Допилим. Но тут пока есть проблема: как я уже писал, консоль в ОР поломанная, интерпретатор мой собственный. Наверное, все-таки придется добавлять отдельный поток для консоли. Или же все переложить на телнет и полностью убрать стандартный ввод в ОР.


делайте регистронезвисимый интерпретатор

Gegel, не слушайте

Мнения разошлись :) Выскажу и свое. Я далеко не красноглазый линуксист, а виндузятник. Но и тем не менее пишу на С/С++, где регистр-зависимость – само собой разумеющееся свойство. Поэтому лично мне ближе имеющийся вариант интерпретатора, но если большинство будет за регистр-независимый подход, то не вижу проблем дописать несколько строк в коде.


Также нужно реализовать анализатор отлавливания ошибок пользователя

Я бы предложил другой подход: генератор команд. Частично это уже реализовано в web-интерфейсе. Можно ввести онион-адрес, и он будет автоматически преобразован в команду, которая выполнится при повторном клике по кнопке.

— Гость (18/01/2015 01:37)   <#>

Имхо,
  1. Зря вы начали с разработки под виндой (это скажется не лучшим способом на архитектуре кода и его портабельности, как мне кажется).
  2. Зря вы используете свой велосипед в качестве интерпретатора, когда есть для этого стандартные решения, проверенные годами и сотнями проектов. Проще адаптировать чужое, чем изобретать собственное.


Вот давайте без этих говновиндовых идей. В любом серьёзном проекте есть собственно код, а есть интерфейс к нему. Код не должен быть завязан на интерфейс. И, кстати, почему telnet?! Потому что в вашей идеологии всё всем должно рулиться из браузера кнопочками и менюшками? А telnet — типа браузер для бедных? Из браузера рулят только тупоголовые домохозяйки, и их регулярно через ошибки в этом самом браузере рутают вместе со всей сложной и серьёзной архитектурой, которая управляется из этого браузера (типа хостингов).
— 5лайтов (18/01/2015 01:43)   <#>
Программа еще в альфа-версии, а какие уже баталии, не иначе, как делим шкуру неубитого медведя :))
Ладно, сделаю усилие над свое ленью (лень двигатель прогресса, однако), потому что писать придется много и аргументировано, чтобы на конкретных примерах попытаться убедить красноглазых, чем плох регистрозависимый интерпретатор команд. Впрочем, уверенности переубедить красноглазых нет, на то они и красноглазые.

Берем, например, команду rsync
В ней ключ -r означает рекурсивный вход в подкаталоги, а -R означает использование относительных путей.
Ключ -c означает проверку контрольных сумм, а -C означает автоматический пропуск файлов, задаваемых cvs.
Ключ -t – сохранять время, -T – каталог для временных файлов
И т.д. и т.п. во всех, за малым исключениям команд.

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

А теперь скажите: что человеку легче запомнить – только символ, за который закреплена команда, или символ + его регистр? Ответ очевиден.

Также очевидно и то, что система должна подстраиваться под свойства человека, а не человек под систему (если конечно, это совершенная система).
Может, кто-то хочет напомнить, что при регистроНЕзависимости не хватит букофф алфавита для команды? Да бросьте – вместо односимвольных команд можно использовать двух-, трех- -сколько надо символьных команд, хоть целые смысловые слова, и все равно их всегда будет легче запомнить, чем вспоминать, на каком регистре надо набирать ту или иную однобуквенную команду – таково свойство человеческой памяти.
Лучше всего придумал дедушка Вирт: как правило, употребление вместо кратких символов целых слов, и поэтому никакой путаницы.
Возражения типа "Я каждый день набираю односимвольные команды, и нормально, ничего не забываю" не принимаются. Именно потому, что каждый день, а стоит пройти месяцу, году, и знания регистра улетучатся как дым, и вам придется лезть в хелп – гораздо чаще, чем при регистровой НЕзависмости.

Из-за этого бага разработчиков (не иначе как умственного) в BSD/Linux всем, чтобы не было путаницы, пришлось набирать команды только маленькими, Уже одно это ущемляло самолюбие и возможности юзеров, чего изначально не наблюдалось в DOS: там набирай хошь маленькими, хоть большими – ОС всегда поймет тебя правильно, зато команды с большими и малыми буквами выглядят куда привычнее и человечнее.

Видимо, этот исторический баг не давал покоя *никсоидам и порождал творческий зуд. Но к сожалению, не в том месте, и вместо того, чтобы исправить этот баг кардинально, они пошли по совершенно неразумному пути – ничего не изменив в интерпретаторе, они стали позволять себе непозволительные шалости, т.е., не только по-прежнему создавать ключи большими и маленькими, но и (ужас!) сами команды стали создавать смесью больших и малых букв!
И смотрите, что получилось:

Первая ласточка – команда xorg. В ней сделали первую букву большой, вот так – Xorg. И что они этим добились? В первое время – воплей от консервативных линуксоидов, которые заучили как Отче наш, что все команды в Линуксе набираются сугубо малыми буквами, а тут вдруг на тебе – если набрать xorg, то такой команды нет в природе – "команда не найдена"
Пришлось юзерам, ломая свои многолетние привычки, привыкать к эксклюзиву и делать здесь исключение – запоминать и набирать Xorg.
Итог: что дало миру набор одной команды с большой буквы? Ни-че-го. Кроме начинающегося хаоса, разумеется.

За Xorg последовала Xvnc. Далее NetworkManager. Ясное дело, проку от этих новшеств тоже голый ноль, только неразбериха усилилась.
Но камень был брошен, и понеслось...
Апофеозом украшательского "творчества", с который мне пришлось столкнуться – это: VBoxBalloonCtrl

Вот скажите, каким надо быть долбоклюем, чтобы изобрести команду, в которой с малыми сочетаются 3 (три!) больших буквы?! На кой хрен надо запутывать юзера, который должен морщить репу и вспоминать, где и сколько там больших и малых буквы?! Где системность?! Кто кому должен помогать – человек машине, или машина человеку?!

То обстоятельство, что клавиша Tab помогает довольно быстро подобрать правильные символы в команде, не в счет – это уже следствие, костыль, который помогает облегчить принципиальный недостаток, который есть и пока остается в Линуксе. Нужно лечить не болезнь, а ее причину.

В Майкрософте, к счастью, это быстро поняли и сразу заложили в DOS правильный принцип – РЕГСТРОНЕЗАВИСМЫЙ. И там не нужно помнить, какой регистр использовал в разработке тот или другой долбоклюй – СИСТЕМА ВСЕГДА ПОЙМЕТ ВАС ПРАВИЛЬНО, в какой регистре вы не набирали команду.

И наконец, возьмем венец творения природы – человек. Вы как общаетесь голосом с собеседником – с использованием регистрозависимых слов? :)
Так какого ж х.. компьютер должен пудрить вам мозги словами-командами с труднозапоминаемыми регистрами?! В общении человека то ли с человеком, то ли с компьютером важен не регистр слов, а их смысл, регистр в данном случае – только помеха его восприятию.

Я линуксоид со стажем, но в отличие от некоторых, не красноглазый, а потому имею полное моральное право критиковать отдельные недостатки линукса, как бы он мне не нравился. Критика, между прочим, тоже двигатель прогресса.

Но и тем не менее пишу на С/С++, где регистр-зависимость – само собой разумеющееся свойство. Поэтому лично мне ближе имеющийся вариант интерпретатора, но если большинство будет за регистр-независимый подход, то не вижу проблем дописать несколько строк в коде.

Да, Си тоже регистрозависимый. Но почему так получилось? Потому что язык Си создавал Дэннис Ритчи – паталогический лентяй (куда больший, чем я), который мечтал каждую команду в Си изображать одной буквой всего лишь для того, чтобы... меньше набирать на клавиатуре... :-O
Вот его поганая рожа: https://upload.wikimedia.org/w.....Alistair_Ritchie.jpg

Тотального успеха (одна буква = одна команда) Ритчи, к счастью, не достиг, но напакостил в сокращении команд в Си изрядно.
И поскольку *никсы создавались в основном как раз на этом долбаном Си, они и унаследовали от него эту злополучную регистровую заисимость.

Я бы предложил другой подход: генератор команд.

Конгениально! Gegel, вы как всегда, рассудили наиболее здраво!
Действительно, OnionPhone – не ОС, для нее интепретатор команд будет излишеством, вполне хватит генератора команд.

Короче надоело всё, всем спать. Имеющий уши да услышит.
— 5лайтов (18/01/2015 01:59)   <#>
Опередили. Поэтому пара замечаний:

Вот давайте без этих говновиндовых идей......... Из браузера рулят только тупоголовые домохозяйки, и их регулярно через ошибки в этом самом браузере рутают вместе со всей сложной и серьёзной архитектурой, которая управляется из этого браузера (типа хостингов).

Не надо зря гнать на браузер и домохозяек. Этот инструмент отшлифован десятилетиями, и им пользуются для самых серьезных дел – от серфинга по сайтам до денежных транзакций, как школьниками, так и системными администраторами. Кроме того, у него есть такое важное преимущество, как кроссплатформенность – он есть ВЕЗДЕ. К тому же браузер нужен для самого OnionPhone – TBB.

Вы сами-то по Интернету чем ходите – неужто телнетом? :) Думаю, даже не lynx'ом, а чем-то посовременнее. И чем вам не угодили домохозяйки – они вам невкусно готовят?

А вот то, что OnionPhone нужно вначале отшлифовать чисто в консольном виде – присоединяюсь. А потом можно и подумать, к чему его еще можно пристегнуть. Может и к браузеру, а может и сразу к QT или еще к чему.
— Гость (18/01/2015 02:45)   <#>

Стараются выбирать исходя из каких-то разумных соображений, чтоб легче было запомнить. Сохранить системность, действительно, на 100% не получится, потому что букв мало, на одну букву две команды не повесишь. Например, gpg -k и gpg -K связаны по смыслу, так что говорить о том, что связи нет никогда, я бы не стал.


Я не знаю, откуда вы такой взялись, но у меня никогда не было такого, чтобы я забыл регистр. Забыл опцию полностью — да, было дело, но вот чтоб опцию помнил, а регистр нет — ни разу такого не припомню. Да и вообще опции забываются редко, т.к. обычно одно и то же используется годами, я в любом состоянии наберу любую из стандартных команд. В крайнем случае, man под рукой.

Два и более символов тоже часто используется в опциях, но проблема в том, что их не слить в одну. Например, я могу написать gpg -e -s -a как gpg -esa, и меня gpg поймёт правильно. Аналогично и в куче других команд. Можно даже с регистрами: cp -iRv вместо cp -i -R -v. С двухбуквенными такой халявы в сокращении уже не будет.


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


Вообще-то ещё в стародавние времена была такая команда как X, просто иксы обычно запускали через xinitrc или startx. Однако, если переименовывать X в X, который org, логично просто дописать org в конец, получите Xorg. Аналогично и про др. X-команды. X-сервер всегда был именно X-сервером, а не x-сервером, так уж сложилось, ищите причины в 70-ых.


Новодел, написанный под влияением винды. Юзерофилия и всё такое. Поглядите на их PowerShell:



VBoxBalloonCtrl — такой же юзерофильный новодел, плохо дружащий с косолью, насколько я помню. Мысль была в том, что когда команд много, чтобы сделать их более человечными и легче читаемыми, слова сливают в одно, а первые буквы в них делают заглавными — правило простое и универсальное. Не вижу, где тут пространство для путаницы. Вы, кстати, ещё пакет ImageMagick забыли и Eterm.

P.S.

Есть альтернативный подход, чем-то более здравый (CISCO IOS, BSD), там минусов нет, и названия опций могут быть сокращены до тех пор, пока они однозначны, но всё равно всё друг от друга отделяется пробелами (этот стиль использует, например tmux).

Вот, например. Я могу написать:
tmux attach
tmux attac
tmux atta
tmux att
tmux at
tmux a
И все эти сокращения ранозначны, поскольку на «a» начинается только одна команда. Если бы на «a» начиналось две команды, то, максимум, можно было бы сократить до того числа букв, где появляется отличие в последней букве (если от балды, то attach и attractor сокращаются, максимум, до atta и attr). Никаких минусов перед опциями нет, заметьте. В OpenBSD PF тоже чем-то похожий синтаксис. Изначально он взялся в коммерческих системах. Насколько я знаю — что-то типа командной строки CISCO.
— Гость (18/01/2015 03:00)   <#>

А что вы хотели? Всем наплевать на безопасность:

Там уловки из-за юзерофильности, не имеющие никакого отношения к ошибкам в виртуалке. Вы почитайте сами-то свою же ссылку:
Уязвимость была даже не по вине программистов VMware. Дело в том, что веб-интерфейс этого менеджера (висит на TCP-порту 9084) использует в качестве веб-сервера
Т.е. за такое надо убивать сразу. Какое ещё «управление виртуалкой из браузера»?! Это для секретуток делают в фирмах, которые принимают заказы «клиентов», а мозги куринные. Управление всем — только с консоли.

Точно так же деньги крадут через ошибки в браузере, браузер — основное окно проникновения троянов в систему, даже деанон юзеров FH АНБ делал как? Правильно, не через ошибки в Tor, а через ошибки в браузере. То, что браузером до сих пор пользуются для всего и вся — это повод не для гордости, а для осознания печальной действительности с текущей ситуацией в ИБ.


Да вряд ли. Tor'а достаточно. То, что ему передаёт TBB, можно и в командной строке передать (в крайнем случае, через тот же telnet).


Я хожу через TBB, но это не заслуга Mozilla, а сложившиеся обстоятельства. Когда выбирали единый браузер для всех, гиков не спрашивали и ориентировались на большинство. В частности, именно поэтому в TBB так много дыр: Mozilla'у безопасность волнует в самую последнюю очередь, их браузер разрабатывался для захвата рынка, а не для параноиков.


Упаси бог. Чем к QT, так лучше уж к браузеру. По-хорошему, нужна просто команда в командной строке, которая прозрачно интегрируется с другими посредством шелла и написана в той же идеологии. Это удобно и универсально. Кому нужны окошки, тот пусть их и создаёт. Оконный интерфейс — вообще зло злейшее, его приходится терпеть по необходимости. Лично мне удавалось им не пользоваться много лет, и ничуть об этом не жалею, что-то где-то до сих пор только так работает.
На страницу: 1, ... , 41, 42, 43, 44, 45, ... , 50 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3