ZAS Communicator
ZAS Communicator Opensource Project: secure voice, file transfer and text chat.
Комментарии, советы, предложения?
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
Нормы пользования. Некоторые права на материалы сайта защищены по условиям лицензии CreativeCommons. Движок
openSpace 0.8.25a и дизайн сайта © 2006-2007 Vlad "SATtva" Miller.
|
||||||||||||||||||||||||||
Не ту половину ID – это раз.
Совпадение – это уже два.
Не более и не менее шатко, чем верификация по хешу общего секрета (тем более что такой режим тоже поддерживается).
Зиммерман – руководство к действию, а не образец для копирования во всем.
http://www.zas-comm.ru
Инсталлер, бинарники, исходники. Работает сразу, настраивать не требуется.
Рекомендуется UPnP или отфорвардить порты вручную; хотя по факту работает и без того и другого.
Cовместимо с XP/W7/W8, 32/64. Нормально идет в виртуалке.
Не требует дополнительных сущностей типа Tor, Java, QT и пр. и рингтон работает.
Изменений много:
Полностью переделана симметричная криптография.
Решена проблема со связью между пользователями за NAT. Работает без NAT reflection.
Хорошо работает Find по DHT. Можно искать юзеров по ключевым словам и по части userid.
Исправлено багов; добавлено новых опций в GUI по пожеланиям юзеров.
Изменился формат ключей и сетевой протокол. Нужно перегенерить ключи; соответственно будут другие userid.
комментариев: 393 документов: 4 редакций: 0
Можно по этим двум пунктам поподробнее?
Поскольку порт под Linux теперь всегда будет по остаточному принципу.
Просмотрел сайт, не заметил описания установки программы. Она устанавливается в систему или работает в портабельным виде?
Большой проблемой было непрохождение UDP от одного юзера к другому, если оба юзера находятся на одном и том же внешнем IP адресе, поделенном через NAT. То есть я могу позвонить кому угодно в Интернете, но только не своему соседу за соседним столом. Если посылать UDP на свой внешний IP адрес, то разные роутеры создают разнообразные глюки. Пакеты могут ходить, а могут не ходить, или могут доходить с измененным IP/port, и.т.п. Даже если в роутере через NAT reflection нормально ходит TCP, то не означает, что ходит UDP.
Решение: работаем с локальными юзерами напрямую по локальным адресам, c дальними юзерами – по внешним адресам. Пришлось переделать сетевой протокол.
В предыдущей хеш-функции были найдены псевдоколлизии. Хотя до атаки на второй прообраз далеко, решено было переделать и cделать с хорошей перестраховкой. Заодно переделан основной потоковый шифр, и многие другие вещи в симметрике продуманы и вычищены. Асимметрика прежняя: DH и электронная подпись на 4096-битных числах.
С удовольствием обсужу детали, что, как и почему сделано; отдельная большая тема.
Cначала нужно добиться безукоризненной работы ядра сетевого протокола и DHT. Это непросто.
В планах приделывание QT интерфейса и видео. Если кто-то может помочь в реализации кросплатформенного юзеровского интерфейса, будем рады.
http://www.zas-comm.ru
Работает в портабельном виде. Продвинутым пользователям нужны два файла: zas.exe и upnp.dll. Все прочие файлы создаются в той же директории. Ничего в реестр Windows не пишется, если сами не взведете соответствующие галочки в опциях. Можно запускать с флешки.
Для непродвинутых пользователей есть инсталлер.
Для advanced пользователей – исходники. Собирается VS12.
http://www.zas-comm.ru
комментариев: 393 документов: 4 редакций: 0
Проблема остается, если клиенты одного провайдера, раздающего серые адреса, дополнительно находятся каждый за своим роутером. Это вполне реальная ситуация, но не смог ее решить в Онионфоне. По локальной сети было решено изначально (инвайт у меня содержит как локальный адрес, так и адрес, возвращаемый STUN).
Kто-то третий должен быть хабом. Думали насчет протокола с мультихопом; тогда хабы получаются сами собой. Это есть в коде и даже как-то работает в тестовых условиях, но реально никогда не пробовали.
http://www.zas-comm.ru
Главное нововедение: ВИДЕО. В зависимости от скорости интернета, поддерживается три режима H.264 (64/128/256kbit) с соответственно различным качеством.
Прилагается инсталер, портабельные бинарники и исходники. Пользоваться просто: запустить программу, сгенерировать пароль и ключ, найти нужного абонента в DHT с помощью find. Опции конфигурации очевидны и устанавливаются галочками в GUI; конфигов править не требуется; все работает сразу по дефолту.
Программа представляет собой один портабельный файл zas.exe. Все библиотеки прилинкованы статически, конфиги, ключи и прочие файлы aвтоматически создаются в текущей директории.
Хеш функции теперь считаются в режиме wide pipe: размер состояния функции вдвое превышает выходной размер хеша. Это усилило криптографию, однако привело к несовместимости с предыдущими версиями ZAS. Рекомендуется clean install, т.к. файлы ключей, телефонной книги и пр. предыдущих версий несовместимы.
Почти сделана версия ZAS для Linux (на основе QT). Будет выложена в следующем релизе.
zas@zas-comm.ru
комментариев: 393 документов: 4 редакций: 0
Будет ли большой проблемой:
– предусмотреть возможность прямой p2p связи по указанному IP-порту (портам)?
– предусмотреть возможность полного отключения бутстрапа (например, указанием пустого домена сервера в конфиге; в этом случае программа не должна отправлять абсолютно никаких пакетов, кроме как в случае установки прямого соединения строго по указанному IP)?
DHT хороша для обычного пользователя, но иногда IP участников известны и порты заранее проброшены; в этом случае остальное можно рассматривать лишь как дополнительный источник отказов и уязвимостей.
Кроме того, я планирую реализовать прозрачный бридж (по типу ZFone) для защищенного/аутентифицированного проброса диапазона UDP-портов на заданный HS как универсальное решение, позволяющее различным медиа-коммуникаторам, поддерживающим p2p, устанавливать соединение через Tor: в этом случае возможность p2p на локалхост расширит область примемения ZAS-коммуникатора.
Меню File -> Connect to.
Легко сделать.
Учтем. IP:port сохраняются в телефонной книге; тогда нужно сделать возможность редактирования.
Интересная идея. Как в этом случае осуществляется адресация?
http://www.zas-comm.ru
комментариев: 393 документов: 4 редакций: 0
В этом решении планирую осуществлять адресацию исключительно силами ониофона (по онион-адресу). Т.е. выбрасываю аудио, но оставляю метки времени и буферизацию. Получается демон с возможностью подключения к указанному онион-адресу. Он создает пару UDP-портов на локалхосте, прозрачно соединенных с удаленным демоном и его парой портов. Т.е. получается бридж с защищенным и аутентифицированным каналом (средствами онионфона).
Внешнее медиа-приложение c поддержкой p2p (например, ZAS) настраивается для соединения с 127.0.0.1:onionphone_port. Второе приложение слушает свой 127.0.0.1:defaultRTPport. Демон онионфона пакует полученные UDP-пакеты в TCP-поток, пересылает через Tor и на другом конце распаковывает и отсылает опять в виде UDP. Это решит проблему отсутствия поддержки UDP в Tor и даст возможность прозрачно пробросить RTP.
Приблизительно так же работает ZFone, перехватывая RTP-поток и пакуя его в ZRTP (шифруя предварительно p2p согласованным ключом), только без смарт-буферизации и преобразования в TCP и обратно.
комментариев: 9796 документов: 488 редакций: 5664
Onioncat?
комментариев: 393 документов: 4 редакций: 0
Типа да, но заточен под задачу: с соответствующими таймаутами, смарт-буферизацией, дублированием и сменой цепочек – вобщем, все из онионфона.
Дополнительный слой p2p независимого аутентифицированного шифрования. IPv4. "Из коробки" (два года назад пытался поднять Onioncat под Win32 – это было что-то...).