id: Гость   вход   регистрация
текущее время 21:27 28/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, ... , 8, 9, 10, 11, 12, ... , 50 След.
Комментарии
— gegel (12/03/2013 22:13, исправлен 12/03/2013 22:24)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
М.б. 56-битным?

Сорри, описка. 56, конечно!

Можно посмотреть, как организован OTR в XMPP.

Я смотрел: OTR достаточно сложен в основном за счет Plausible deniability. Если к этому не стремиться, то можно, как вариант, сделать почти "детскую" АУ:


в начале Алиса и Боб выполняют DH, в итоге имеют расшаренный секрет: AES-ключ 256 бит (да, я уже добавил AES, будет в TORFone 0.3 вместо Blowfish), общий отпечаток 32 бит и ники друг друга. Оба абонента инициализируют АУ, вводя ау-фразу, уникальную для каждого своего контакта и предварительно с ним согласованною любым способом. Фраза собеседника аналогична, но последние два символа меняются местами.


Этап 1: после ввода фразы Алиса считает SHA1 от строки "отпечаток + ау-фраза без посл. двух символов + свой ник" и отправляет Бобу открытым текстом. Аналогично Боб.
Получив такой пакет, TORFone сверяет с хешем своих данных, и сообщает о ошибке АУ, если не совпадает.


Если все ОК, то считается хеш от ау-фразы без последних двух символов и его 64 бита используются как nonce (дописываются в счетчик, увеличенный мною для AES-блока с 64 до 128, добавленные биты изначально 0). Это изменяет шифрование, вводя дополнительную зависимость от текущей ау-фразы.


Этап 2: тотчас после успешного завершения этапа 1 абонент отсылает текстовое сообщение по шифроканалу, содержащее последний символ своей ау-фразы. Получив такое сообщение, абонент сравнивает его с предпоследним символом своей ау-фразы (он должен совпадать с последним символом ау-фразы абонента, т.к. они изначально переставлены). Если совпадают, то выводится сообщение о полной АУ, иначе – "под принуждением".


Идея такова: абонент под принуждением выдает ау-фразу, меняя последний символ на другой. При аутентификации с его стороны все выглядет как обычно, и шифрование согласовано, но второй абонент получает предупреждение.


Просьба к крипто-гуру покритиковать, предложив реальный способ выдать себя за Боба, или предложить более подходящее решение. И еще: можно ли доверять SHA1 при описанном использовании в плане вычисления ау-фразы или подмены хеша выдавая себя за Боба или при MitM?

— Гость (13/03/2013 00:56)   <#>

Вы в какой-то мере к этому тоже стремитесь. Вы же хотите, чтобы была отрицаемость, для этого и DH наворачиваете, иначе всё и всегда можно было бы шифровать одним статическим ключом.


O'rly?!


АУ — это «Аy!» в смысе леса, автономное управление или АУтентификация?


Не уверен, что многих это устроит (каждый раз что-то вводить). Можно было бы сделать такой функционал опциональным для собеседников. В XMPP+OTR вообще можно работать без сверки отпечатков, в этом случае они просто будут помечены, как непроверенные. Бывает, не всегда можно сразу всё сверить, а пообщаться надо (это было бы в каком-то смысле оппортунистическим шифрованием).
— gegel (13/03/2013 02:10, исправлен 13/03/2013 02:13)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0

- Сколько максимально бит доступно на выходе DH в AuthenticationFifo, я не готов сказать точно. Повнимательнее просмотрю исходники. Наверное, можно использовать и хеш от ключа (DH использует expSize 458 бит для 4096 прайма, ключ для AES256 обеспечивается "с натяжкой").
– Ау-АУтентификация, конечно. Речь то о ней :)
– Конечно, это будет опционально. Устанавливается соединение без АУ, и может длиться сколько угодно. В процессе разговора по договоренности оба могут ввести АУ-фразу. Криптография изменится только после того, как оба введут одинаковую (за исключением последних двух символов) – дополнительно защита от MitM.

— Гость (18/03/2013 01:17)   <#>
Torfone под Wine, к сожалению, у меня по-прежнему, не работает, поневоле придется обратить свои взоры на Windows.
Но полноценную ОС только ради одного приложения ставить не прельщает.

Посоветуйте, плиз, какую минимальную сборку XP в формате LiveCD выбрать, чтобы она нормально работала с сетью (Интернетом) и поддерживала аудиотракты, необходимые при общении с Torfone?

Надыбал было на "Windows XP LiveCD Reversion", но судя по описанию, она предназначена не для сетевых забав, а больше как ремонтный диск, и к тому в ней не предсумотрена простая интеграция новых приложений, что нужно для Torfone.
Или LiveCD для Torfone вообще не подходит? (невозможно сохранять переписку, адреса и т.п.).
Или может есть более удачные и менее затратные по ресурсам решения?
— Гость (18/03/2013 02:54)   <#>
Или может есть более удачные и менее затратные по ресурсам решения?
Ставить винду как гостевую ОС в виртуальной машине.
— Гость (18/03/2013 21:16)   <#>
Это уже пробовал, обнаружилась нестыковка со звуком, он не слышен не мне, ни собеседнику (базовая ОС – Linux).
Хотя вызов на Totfone собеседника проходит и обнаруживается.
— gegel (18/03/2013 23:45)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
А что именно не работает под Wine? Повторно попробовал на Gentoo+Wine 1.5.26: по крайней мере прямое соединение установил без проблем (с Tor не пробовал).
В MiniXpLiveCD работает, но там нет драйверов звука.
Только что нашел первый попавшийся LiveCD с драйверами:
http://rutracker.org/forum/viewtopic.php?t=1137127

Поддерживает звук:
Creative SB Audigy 2 ZS WDM Driver 5.12.1.444
Microsoft UAA Bus Driver for High Definition Audio (KB888111)
Realtek AC'97 Audio Driver A4.00 Lite
Realtek High Definition Audio Driver R1.67 Lite

Попробовал на старом Accer Aspire 3000 (Realtec AC'97 audio, SiS900 Ethernet, 1.8ГГц, 704МБ ОЗУ): с флешки запустил TBB и TORFone, все работает прекрасно.
— Гость (19/03/2013 15:51)   <#>
Отличный проект, надеюсь автор не сделает его потом платным. По-хорошему надо еще анонимизировать сам голос, в идеале распознавать и воспроизводить механически.
— gegel (19/03/2013 21:35, исправлен 19/03/2013 21:41)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0

Даже при моем желании сделать платным p2p-приложение с уже открытым кодом нереально.


По поводу анонимизации голоса – уже обсуждалось выше. Можно добавить синтезирующий кодек типа LPC10, он существенно искажает речь (попробуйте в SpeakFreely). Но в любом случае голос – штука индивидуальная. А хорошего распознавателя нет пока, да и в любом случае он к языку привязан будет, это уже совсем другой проект.


PS: добавил AES256 и аутентификацию + анти-MitM на базе hmac_sha1 с использованием заранее согласованной фразы и возможностью тихого уведомления о прессинге, будет в новой версии.


ToDo:
– оперативное переключение с TCP over Tor на UDP direct и обратно со средствами прохождения NAT без помощи SIP-сервера и т.п. (TORFone как добавка к TorChat);
– добавить новый современный codec2 (сжатие в 4.7 раза больше, чем у gsm).
Также есть идея попробовать задавать несколько HS слушающим абонентом в torrc и выполнять несколько независимых подключений к ним звонящего, дублируя пакеты по каждому каналу. В PGPFone уже есть механизм восстановления последовательности и исключения дублей (остался от UDP). По идее, латентность связи через Tor с параллельным использованием нескольких независимых цепочек будет ощутимо ниже.
И еще есть задумка сделать консольную версию под вин32 и линукс с опциональным управлением через отдельный Control port с другого GUI-приложения: компромисс между простотой кода/портируемостью и юзерофильностью.

— Гость (19/03/2013 22:07)   <#>
Я тихо фигею... Т.е радуюсь, что в Рунете нашлись люди, которые вместо ежедневного трепа на разных сайтах с умным видом и надуванием щек, реально делают что-то полезное!
gegel, мои респекты! :)
— Гость (19/03/2013 23:25)   <#>

А где она добавилась?
В меню Edit – Preferences – Encryprtion видны по прежнему те же 3 алгоритма:
– Triple-DES
– Blofish
– CAST

AES не наблюдается.
Версия 02a.
— gegel (20/03/2013 01:32, исправлен 20/03/2013 01:44)   профиль/связь   <#>
комментариев: 393   документов: 4   редакций: 0
будет в новой версии.

Добавил (вместо Blowfish) и проверил, но пока V03a не релизил – еще потестирую и исправлю несколько мелких багов (например, при снятии флажка Unencrypted на вкладке Phone, т.е. блокировке передачи ника открытым текстом при конекте (до ответа абонента) виснет при работе через Tor). Также не до конца согласован по времени момент смены nonce (Анти-MitM) после аутенификации уже в процессе разговора при соединении через Tor (из-за возможных больших задержек).
Скорее всего, выдам уже вместе с поддержкой UDP, чтобы не плодить много промежуточных релизов.

— Гость (20/03/2013 03:27)   <#>

Не лучше ли вместо Triple-DES ?
— Гость (20/03/2013 05:38)   <#>
В самом деле, Triple-DES алгоритм древний, как фекалии мамонта, и с точки зрения стойкости интереса давно не представляет.
Blofish, детище Шнайера, куда более актуален.
— Гость (20/03/2013 23:29)   <#>

И как это скажется на анонимности?


Им нельзя много шифровать, да и как обстоят дела с его безопасностью на текущий момент... Всё же надо отдавать себе отчёт в том, что Blowfish — не конкурент современных шифров типа AES. Если и брать что-то из того семейства, то лучше более современное типа TwoFish'а. ИМХО.
На страницу: 1, ... , 8, 9, 10, 11, 12, ... , 50 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3