03.12.2014 Очередной релиз ZAS 2.1.0 (билд 403) для Windows
Для передачи файлов применена библиотка UDT. Это существенно улучшило скорость передачи файлов по сравнению с предыдущими релизами. Новая версия ZAS полностью совместима с предыдущими версиями.
Из других изменений добавлена возможность выбора рингтонов. И, как всегда, пофиксено несколько мелких багов и сделано небольших улучшений.
03.12.2014 Выпущен ZAS Communicator 2.0.1 (Win32/Win64)
В основном багфикс релиз, однако появились новые возможности и удобства.
Сразу же после выпуска ZAS версии 2.0 для Windows с поддержкой видео, выяснилось несколько проблем в интерфейсной и протокольной части. Пришлось срочно устранять; вследствие чего релиз обещанной версии ZAS для Linux отошел на второй план. Но ничего, будет и под Linux.
Новые свойства:
- По совету gegel сделана возможность отключать бутстрап и Kademlia, чтобы работать только в режиме прямого соединения на заданный IP:port. Это требуется, например, чтобы направить траффик ZAS через анонимайзерные сети типа Tor или I2P. В таком режиме адресация осуществляется внешними средствами. Коммуникатор служит только конечным устройством, осуществляющим передачу зашифрованного траффика.
- По совету avb введена возможность посылать "keep alive" пакеты по всем UDP направлениям. Это сделало возможным нормальную работу системы, даже если одна из сторон линка находится за несколькими уровнями NAT и не имеет возможности открыть порты. Регулярная отправка "keep alive" не дает устаревать автоматической таблице маршрутизации UDP пакетов в роутерах. Интервал посылки "keep alive" задается; при желании можно отключить.
- Поддерживается список известных аудиоустройств в порядке предпочтения. Теперь программа пытается подключать аудиоустройства cогласно списку. Удобно, если приходится переключаться между разными аудиоустройствами.
Как обычно, сделано разных усовершенствований и оптимизаций по мелочи.
17.11.2014 Выпущен ZAS Communicator 2.0.0
Скоро исполняется год с момента выхода первой версии программы ZAS. За год мы узнали много нового об особенностях устройства IP телефонии, криптографии и распределенного управления в бессерверных системах. Задача оказась непростой; пришлось искать и находить решения нетривиальных проблем. Наконец получилась достаточно надежная система, простая и удобная в работе.
Мы отмечаем год выходом версии ZAS 2.0. Главное нововведение - поддержка видео. Теперь можно не только разговаривать голосом, передавать файлы и чатиться текстом, но и смотреть друг на друга. В зависимости от качества интернета, для видео, как и для аудио, поддерживаются режимы с различным битрейтом.
Кроме того, обновлена и усилена криптография и исправлено несколько старых багов в GUI и сетевом интерфейсе. Библиотеки теперь прилинкованы статически. Вся функциональность ZAS заключается в одном портабельном файле: ZAS.exe.
ZAS 2.0 не работает с предыдущими версиями ZAS, также не будут читаться предыдущие файлы чата и телефонной книжки. Требуется чистая установка с генерацией нового ключа.
Eще одна новость: анонс ZAS для Linux. До настоящего времени ZAS работал только в среде Windows. Сейчас доделывается версия под Linux; почти готово.
26.06.2014 Выложен ZAS Communicator 1.8.1 (билд 352)
Исправлено несколько старых багов в сетевом протоколе и интерфейсе программы.
Накопитель энтропии теперь самостоятельно непрерывно обрабатывает системные события, в дополнение к вызовам штатной функции WinAPI::CryptGenRandom, и сбору энтропии из передаваемых и принимаемых данных. Так сделано, чтобы компрометация любого из источников случайной информации не приводила к ухудшению качества данных, используемых для генерации сеансовых ключей.
Состояние накопителя энтропии состоит из двух пулов, каждый размером в 1 килобайт.
Поступающие на вход случайные данные, системные события, движения мышки, нажатия клавиатуры и пр. ксорятся с состоянием нулевого пула. Когда весь нулевой пул будет проксорен с входными данными, от обоих пулов вычисляется хеш функция с размером состояния в два килобайта (соответственно пул – 0 и пул – 1). И снова, поступающие входные данные ксорятся с пулом – 0, и.т.д.
Данные ксорятся с пулом, а не просто кладутся в него; чтобы в пуле не содержались участки передаваемых и принятых данных в открытом виде.
Если программе требуются cильные случайные числа для инициализации сеансовых ключей или значений, используемых при генерации электронной подписи, то сначала выполняется хеш-функция накопителя энтропии (независимо от степени заполненности пула-0), потом генерируются случайные числа, используя пул-1 как seed генератора, и после генерации опять вызывается хеш функция накопителя энтропии. Таким образом, по состоянию пулов накопителя после генерации нельзя установить последовательность случайных чисел.
В начале работы программы пул-1 инициализируется из файла seed.bin и от системного источника энтропии. Файл seed.bin переписывается в начале и в конце работы программы.
25.05.2014 Выпущен ZAS Communicator 1.8 (билд 340)
В этой версии мы постарались уменьшить оверхед сетевого траффика. Опыт эксплуатации системы показал, что встречаются низкоскоростные интернетовские каналы, которые не пропускают больше нескольких килобайт в секунду. Чтобы успешно работать в таких каналах, cделана установка качества/битрейта аудио (Economy/Normal/High), переделан формат зашифрованных пакетов и обфускатора сети, модифицирован сетевой протокол. Телефонный траффик вписывается минимально примерно в 4 килобайта в секунду. Причем более половины нагрузки составляет оверхед UDP протокола.
Если возникнет необходимость, можно будет сжать траффик даже сильнее, чем сейчас. Потребуется аудио кодек с более низкой скоростью. Также, придется склеивать аудиоданные в пакеты большего размера для уменьшения оверхеда UDP.
Из-за переделки обфускатора сетевая часть стала несовместимой с предыдущими вариантами. Зато теперь программа умеет сама ходить на www сайт и проверять наличие новых версий.
Длинные строки в чате теперь не режутся на куски, как раньше, а автоматически доставляются по частям и склеиваются на приемной стороне. Добавлено несколько усовершенствований и оптимизаций в DHT и криптографическую часть.
Усовершенствован адаптивный буффер для подавления джиттера времени доставки данных. Теперь буффер адаптируется как в сторону удлиннения, так и в сторону укорочения. Алгоритм оптимизирован так, чтобы поддерживать минимально необходимую задержку при приемлемом качестве звука.
Как всегда, исправлено багов и добавлено новых опций по мелочи.
11.05.2014 Выпущен ZAS Communicator 1.7 (билд 332)
Основным отличием от предыдущих версий является обфускация сетевого траффика. Теперь траффик выглядит как UDP пакеты со случайной длиной и случайным заполнением. Нет никаких стандартных размеров пакетов, узнаваемых полей данных или характерных сигнатур. Обфускация повышает скрытность системы, что позволяет обойти детекторы протокола и блокировки.
Из-за обфускации протокол стал несовместимым с предыдущими версиями; но по-другому не получится сделать. Также увеличился оверхед траффика, потому что для рандомизации длины пакеты данных добиваются случайным количеством cлучайных чисел. Возможно, в следующих версиях придется подстроить параметры обфускатора.
Другое усовершенствование – адаптивный буффер компенсации джиттера доставки пакетов. В зависимости от качества связи, джиттер может меняться в больших пределах.
Теперь буффер настраивается автоматически, чтобы обеспечить минимально необходимую задержку.
Сохраниение/удаление чата теперь задается оперативно и отдельно для каждого юзера из списка. Сделана проверка новой версии. Как обычно, исправлено багов, добавлено опций.
Как показывают недавние события между Россией и Украиной, обе стороны беcпардонно перехватывают весь телефонный, скайповый, емайловый, и, по-видимому, вообще любой траффик друг у друга. Регулярно публикуемые в Интернете результаты прослушки переговоров гос. служащих, политиков, лидеров боевиков, олигархов и пр. говорят о размахе деятельности. Довольно странно, что те, кому, казалось бы, положено знать о небезопасности каналов связи, сами первые попадают в ловушку.
Что это: от общей бестолковости, помноженной на отсутствие удобных общедоступных средств защиты информации?