The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommunist 1.0, opennews (?), 05-Сен-22, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


34. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +3 +/
Сообщение от ProfessorNavigator (ok), 06-Сен-22, 00:19 
> Правда в этом он наломал дров - явно не задав себе простой вопрос: "как другим юзать эту либу?"

В документации английским по белому написано - смотрите код Коммуниста. Со временем, если руки дойдут, сделаю нормальный пример.

> Плюсатое апи у либы - ну вы поняли

Какой язык программирования автор знает, на том и написал. Изучить тот же С - дело нехитрое. Другой вопрос - зачем? С учётом того, что я ни разу не программист. Ни по образованию, ни по роду занятий.

> Дока не говорит о структурировании протокола

Сделаю со временем и описание протокола. Хотя ничего особенного там нет. Сообщение шифруется и разбивается на датаграммы. По 512 байт в каждой. Первые 32 байта - ключ отправителя, затем 2 байта - тип сообщения (латинские заглавные буквы), дальше - время создания датаграммы (time_t, переведённый в uint64_t). Дальше могут быть вариации, в зависимости от типа сообщения. В целом размер "шапки" 50 байт. Дальше - содержательная часть (если таковая есть). Каждые пять секунд на каждый контакт уходит техническое сообщение для поддержания соединения (если вы работаете в режиме "интернет" и не прошло установленное время, после которого контакт считается "не в сети" - смотрите, есть в настройках, в их описании и в документации библиотеки). В режиме "локальная" сеть раз в минуту отправляется широковещательный запрос (по протоколам ipv4 и ipv6). Если пришёл отклик, и ключ ответившего есть в списке, то устанавливается соединение. Грубо - как-то так, подробнее будет позже в репозиториях. Если интересует протокол работы STUN или ретранслятора - смотрите код. Весь функционал ретранслятора вынесен в отдельный класс (и серверная, и клиентская части), там не много. STUN - там тоже не сложно, одна функция по большому счёту.

Ответить | Правка | Наверх | Cообщить модератору

36. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от Lex20email (ok), 06-Сен-22, 00:31 
STUN сервер выдаёт белый ip и порт клиента. Как клиент передаёт свой адрес другому клиенту? Для обмена нужен внешний сервер с белым ip.
Ответить | Правка | Наверх | Cообщить модератору

80. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от ProfessorNavigator (ok), 06-Сен-22, 09:57 
> STUN сервер выдаёт белый ip и порт клиента. Как клиент передаёт свой
> адрес другому клиенту? Для обмена нужен внешний сервер с белым ip.

DHT. Используется реализация libtorrent-rasterbar.

Ответить | Правка | Наверх | Cообщить модератору

91. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от Lex20email (ok), 06-Сен-22, 10:54 
Понятно. Т.е. Если добавите TURN, то соединять будет не хуже скайпа.
Ответить | Правка | Наверх | Cообщить модератору

101. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от ProfessorNavigator (ok), 06-Сен-22, 11:22 
> Понятно. Т.е. Если добавите TURN, то соединять будет не хуже скайпа.

Ну... На тестах показал в принципе неплохие результаты (ipv4). И аналог TURN есть - я его "обозвал" ретранслятор. Через ретрансляторы передавать сообщения будет гарантировано, но существенно медленнее. Недостаток - нужен кто-то с белым ip для запуска у него того самого ретранслятора. Ну и скорость передачи, но это в принципе решаемо чисто программными средствами - подшаманю со временем. И да, наилучший вариант, если у вас и вашего оппонента ipv6. В этом случае соединение происходит "на ура".

Ответить | Правка | Наверх | Cообщить модератору

102. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от Lex20email (ok), 06-Сен-22, 11:39 
Всё же мне TURN понятнее. Ретранслятор не пускает к себе не авторизованных пользователей? Или его любой может ддосить?
Ответить | Правка | Наверх | Cообщить модератору

118. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +1 +/
Сообщение от ProfessorNavigator (ok), 06-Сен-22, 12:47 
> Всё же мне TURN понятнее. Ретранслятор не пускает к себе не авторизованных
> пользователей? Или его любой может ддосить?

В принципе - любой. Если узнает ip. Защита от этого - ip серверов распространяются только в сети Коммуниста в шифрованном виде (если вы сами не опубликуете где-либо). Ну и протокол получения. Размер "сырого" буфера сообщений - 10000 байт. Больше - разрыв соединения и "разбор" полученного. Плюсом - буфер уже разобранных сообщений ограничен размером в 100 штук. Если буфер заполнен - сервер все запросы будет отфутболивать. Ну и разобранный буфер самоочищается. Если в течение 10 секунд за сообщением никто "не пришёл", оно удаляется.

Ответить | Правка | Наверх | Cообщить модератору

120. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от Lex20email (ok), 06-Сен-22, 12:59 
Всё равно не понял чем TURN не понравился, он всё то же самое делает плюс соединение сбрасывает когда не нужен, плюс неавторизованных не пропустит. Поднять сервер проще простого, вот этим https://github.com/coturn/coturn
Ответить | Правка | Наверх | Cообщить модератору

122. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +1 +/
Сообщение от ProfessorNavigator (ok), 06-Сен-22, 13:17 
> Всё равно не понял чем TURN не понравился, он всё то же
> самое делает плюс соединение сбрасывает когда не нужен, плюс неавторизованных не
> пропустит. Поднять сервер проще простого, вот этим https://github.com/coturn/coturn

Да так-то ничего плохого в TURN не вижу. Просто одна из глобальных целей - сократить до минимума зависимость от других библиотек. В идеале - вообще использовать только стандартную, но это вряд ли реализуемо. А писать свою реализацию TURN... Мой протокол проще (не значит, что лучше - посмотрим, как работать будет). Время в общем. Весь проект - чисто моя инициатива. А мне ещё неплохо иногда что-то есть. Иными словами - если народ подкинет деньжат на существование, то займусь всем этим вплотную, нет - буду заниматься, когда будет время. Ну и на всякий случай, чтобы не подумали чего, официально заявляю: пока у меня есть физическая возможность выходить в сеть, оригинальный проект останется бесплатным с открытым исходным кодом. За производные, как сами понимаете, ручаться не могу.

Ответить | Правка | Наверх | Cообщить модератору

168. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от Аноним (-), 07-Сен-22, 09:27 
> Всё равно не понял чем TURN не понравился, он всё то же
> самое делает плюс соединение сбрасывает когда не нужен, плюс неавторизованных не
> пропустит. Поднять сервер проще простого, вот этим https://github.com/coturn/coturn

На самом деле факап в том что Tox уже умеет аналог STUN + TURN, и все это без какой либо мануальщины, указывания локалочно-не локалочных режимов и прочего. Т.е. автодетект и zero-conf с точки зрения чайника. А те кто хотел большего имеют весьма продвинутый контроль над тем что именно оно могет делать. Ну так, на правах примера как эти вещи делать правильно.

Ответить | Правка | К родителю #120 | Наверх | Cообщить модератору

37. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от john_erohin (?), 06-Сен-22, 00:38 
> В режиме "локальная" сеть раз в минуту отправляется широковещательный запрос (по протоколам ipv4 и ipv6).

спасибо автору за загаживание локальной сети (дважды).

Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

42. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +3 +/
Сообщение от Аноним (42), 06-Сен-22, 01:24 
> спасибо автору за загаживание локальной сети (дважды).

Раз в минуту она это переживет. Стандартный способ бутстрапа p2p-образных и даже скайпа. У вас там что, 10 мегабит на всю ораву через тупые свичи чтобы этим париться? Да даже так существенный процент бандвиза не займет.

Ответить | Правка | Наверх | Cообщить модератору

55. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от Sw00p aka Jerom (?), 06-Сен-22, 07:54 
>Да даже так существенный процент бандвиза не займет.

ага нетворклуп переживет

Ответить | Правка | Наверх | Cообщить модератору

78. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +2 +/
Сообщение от Аноним (-), 06-Сен-22, 09:52 
> ага нетворклуп переживет

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

Ответить | Правка | Наверх | Cообщить модератору

45. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от Аноним (45), 06-Сен-22, 01:50 
> В документации английским по белому написано - смотрите код Коммуниста. Со временем,
> если руки дойдут, сделаю нормальный пример.

Если бы была 1 программа на планете, номер катил бы. Но есть штуки типа tox, они установили некую планку. Это как "москвич" с гнилыми порогами, а тут, оказывается, вон какие иномарки уже делать умеют. О пользе конкуренции - на конкретном примере :P

> Какой язык программирования автор знает, на том и написал. Изучить тот же
> С - дело нехитрое. Другой вопрос - зачем?

Чтобы другие могли пользоваться либой? А смысла в либе если ее остальные не поюзают? К тому же между нами, плюсы часто юзают матерые и крутые кодеры. Они с вон того кода блевать будут как единорог радугой. Почему? Если вы продолжите эволюционировать с той скоростью, через несколько лет сами поймете и сами глядя на этот код проблюетесь.

> С учётом того, что я ни разу не программист. Ни по образованию, ни по роду занятий.

C это по сути subset C++, и я не догоняю как можно знать C++ но при том не знать си. Я это впервые за мою жизнь встречаю =).

> 32 байта - ключ отправителя, затем 2 байта - тип сообщения

Ага. Тогда еще нехило бы описать какие гарантии хотя-бы теоретически оно собиралось предоставлять. Чтобы юзеры и кодеры понимали то ли это что они хотят или нет вообще.

Самое очевидное:
1) Пров сразу видит кто, с кем в каком объеме, даже без участия в p2p сети. Крипто штука хитрая, зачастую можно вообще не расшифровывать и все равно узнать все что хотелось.
2) При этом как я понимаю утекает и айпишник юзера бонусом.
3) Там есть хоть какой-то намек на PFS? Или эфемерными ключами там не пахло совсем?

> (латинские заглавные буквы), дальше - время создания датаграммы (time_t, переведённый
> в uint64_t).

Из очевидных траблов бонусом утекает системное время юзера. С этим можно жить, но это тоже некая особенность.

> таковая есть). Каждые пять секунд на каждый контакт уходит техническое сообщение
> для поддержания соединения

До такой жести даже tox не допер. Это сразу кабзда всему что на батарейном питании типа ноутов и смартов. Там времени в спячку брякнуться по сути не остается и батарейка мигом улетит в эфир. С этим в p2p в принципе не все так просто, но вы прострелили колено сразу на старте. Большая часть натов и проч переживут 30 сек ... 1 мин.

> В режиме "локальная" сеть раз в минуту отправляется широковещательный запрос (по
> протоколам ipv4 и ipv6). Если пришёл отклик, и ключ ответившего есть
> в списке, то устанавливается соединение.

Для меня кстати всегда было загадкой зачем "устанавливать соединение". Особенно в UDP. Токс этим тоже частично страдает. В чем прикол? А проехайтесь в поезде с вашим нечто и попробуйте початиться на ходу. Увидите.

Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

67. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от n00by (ok), 06-Сен-22, 09:07 
>> С учётом того, что я ни разу не программист. Ни по образованию, ни по роду занятий.
> C это по сути subset C++, и я не догоняю как можно
> знать C++ но при том не знать си. Я это впервые
> за мою жизнь встречаю =).

Очень просто - автор знает, что в Плюсах управление памятью «автоматическое». И понимает, что в Си за этим надо следить, а ему не хочется прославляться переполнениями стека и времени нет лишнего. Вон там string передаётся по значению, лишнее копирование, ну и ладно.

Ответить | Правка | Наверх | Cообщить модератору

169. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от Аноним (-), 07-Сен-22, 09:54 
> Очень просто - автор знает, что в Плюсах управление памятью «автоматическое».
> И понимает, что в Си за этим надо следить, а ему
> не хочется прославляться переполнениями стека и времени нет лишнего. Вон там
> string передаётся по значению, лишнее копирование, ну и ладно.

В сях так тоже можно. Ну вон struct с хоть там чем в функцию можно передавать/возвращать. Так даже массив из функции можно by-value вернуть, вместо by-pointer, если делать не...й. Правда если он здоровый, лишнее копирование не очень круто. Но корректность довольно неплохо прозванивается, а динамическая аллокация не является чем-то обязательным, от слова вообще. К тому же это только внешнего апи либы касается, там не так уж много. А самые нудные части внутрях могут наслаждаться плюсатой автоматикой если автору так хочется.

Ответить | Правка | Наверх | Cообщить модератору

87. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от ProfessorNavigator (ok), 06-Сен-22, 10:37 
> Если бы была 1 программа на планете, номер катил бы. Но есть
> штуки типа tox, они установили некую планку. Это как "москвич" с
> гнилыми порогами, а тут, оказывается, вон какие иномарки уже делать умеют.
> О пользе конкуренции - на конкретном примере :P

Всё верно. Но может так случится, что ездить вам придётся на "гнилом" москвиче. Потому что производители крутых иномарок скажут вам, что вы... не можете пользоваться их продукцией. Впрочем, не суть. А суть в том, что цели составить конкуренцию tox вообще не стояло. Я делал то, что было интересно мне. Если это окажется кому-то полезно - хорошо. Нет - на нет и суда нет.

> Чтобы другие могли пользоваться либой?

Кто хочет - пользуется. Кто не хочет - ищет отговорки. Честное слово, вы на написание комментариев времени потратили столько же, сколько могли бы на написание "тренировочного" кода для себя.

> C это по сути subset C++, и я не догоняю как можно
> знать C++ но при том не знать си. Я это впервые
> за мою жизнь встречаю =).

Век живи - век учись)) А если серьёзно - то код на С я вполне понимаю. Но понимать - это одно, а писать самому - совсем другое. С и С++ очень похожи, но это не одно и то же. Дьявол кроется в деталях.

> Ага. Тогда еще нехило бы описать какие гарантии хотя-бы теоретически оно собиралось
> предоставлять. Чтобы юзеры и кодеры понимали то ли это что они
> хотят или нет вообще.

Читайте текст лицензии. Там опять же говорится английским по белом "без каких-либо гарантий".

> Самое очевидное:
> 1) Пров сразу видит кто, с кем в каком объеме, даже без
> участия в p2p сети. Крипто штука хитрая, зачастую можно вообще не
> расшифровывать и все равно узнать все что хотелось.
> 2) При этом как я понимаю утекает и айпишник юзера бонусом.
> 3) Там есть хоть какой-то намек на PFS? Или эфемерными ключами там
> не пахло совсем?

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

> Из очевидных траблов бонусом утекает системное время юзера. С этим можно жить,
> но это тоже некая особенность.

Каждая датаграма шифруется. Отдельно. Так что ничего никуда не утекает. Время видит только ваш оппонент после расшифровки. Тщательнее выбирайте собеседников.

> Большая часть натов и проч переживут 30 сек ... 1 мин.

А вы их много пытались пробить?)) Сделано было на основе того оборудования, которое было доступно мне. Значение подбиралось исходя из того, чтобы пробивать любые NAT. Впрочем, добавлю пункт в настройки - просто забыл.

> Для меня кстати всегда было загадкой зачем "устанавливать соединение". Особенно в UDP.
> Токс этим тоже частично страдает. В чем прикол? А проехайтесь в
> поезде с вашим нечто и попробуйте початиться на ходу. Увидите.

Честное слово - лучше взгляните на код, чем писать глупости здесь)) Наверное p2p мессенджеры страдают этим не зря, раз уже в двух, известных вам, это встречается))


Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

170. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от Аноним (-), 07-Сен-22, 11:24 
> Всё верно. Но может так случится, что ездить вам придётся на "гнилом"
> москвиче. Потому что производители крутых иномарок скажут вам, что вы... не
> можете пользоваться их продукцией. Впрочем, не суть.

Как это? В случае какого-нибудь токса они мне его отдали со всей фабрикой и документацией, где мне будет надо там и пересоберу, у меня для этого все есть. Как мне это можно обломать?

> А суть в том, что цели составить конкуренцию tox вообще не стояло. Я делал то,
> что было интересно мне. Если это окажется кому-то полезно - хорошо.
> Нет - на нет и суда нет.

В принципе прикольная цель, но если уже есть тойота и тесла, логично с них и драть дизайн, прикинув что можно улучшить, не?

> вы на написание комментариев времени потратили столько же, сколько могли бы
> на написание "тренировочного" кода для себя.

Это вы так можете - потому в курсе структуры проекта, как оно задумано, где там что. Но остальные не имеют это сакральное знание. Поэтому оно либо в доке должно быть как дважды два прописано, либо конкретный минимальный пример. Иначе тяжко. Раскуривать флоу по здоровенному полному клиенту - удовольствие ниже среднего.

> Век живи - век учись)) А если серьёзно - то код на
> С я вполне понимаю. Но понимать - это одно, а писать
> самому - совсем другое. С и С++ очень похожи, но это
> не одно и то же. Дьявол кроется в деталях.

Ну да. И у сей есть свои дурные траблы, не отнять. Однако вот именно сей там не так уж много и надо, чисто на внешние интерфейсы.

> Читайте текст лицензии. Там опять же говорится английским по белом "без каких-либо
> гарантий".

Это то понятно, но неплохо формально озвучить предпосылки к появлению этой штуки и честно указать какие задачи она решает и НЕ решает. А чтоб юзеры не раскатывали губы, не обламывались, не подставлялись и проч. Трезво оценивая чем оно является и не является.

А так совсем без гарантий - можно и вазап использовать. В as is даже он умешается :)

> Факт контакта вы не скроете никак.

Это почему? Tox умеет делать тунели допустим. Пров уже не видит истинное назначение и вообще это сильно менее удобно сразу. А в каком-нибудь TCP через TOR допустим уже можно довольно долго мозг ломать кто есть кто и такой порнографией будут заниматься только если ну вот очень припекло. А дежурно пошпионить таким манером уже слишком накладно.

> Если нужно будет - вычислят на раз, причём даже несетевыми методами, просто
> оперативной работой.

Чем это проще делать тем по более мелким и гадким поводам это все будет происходить. Ну вон как с камерами выписывающими штрафы на автомате. Сколько это мануально гайцы выписывали если чтобы номер прочитать надо за вами тапку в пол на пативэне, и сколько штрафов с камер стало?

> А вот информацию получить из ваших сообщений за разумное время будет затруднительно.

Знание вот так по простому с кем, в каком объеме и когда я общался может сделать остальное не настолько уж и нужным. Если кого-то немного знать, остальное можно прикинуть и без взлома крипто.

> На это и был сделан упор. Поэтому никаких заморочек с анонимизацией нет и
> не будет. Оно только усложняет и без того не простой процесс
> пробития NAT. А польза от этого весьма сомнительная.

Оно и правда несколько усложняет сетевую логику, зато зарубает откровенную халяву такого плана для DPI и тому подобного, которого развелось не меньше чем камер на дорогах уже. А что до логики обхода нат - не понимаю какая разница, обойти его для окончательного назначения или для peer'а туннеля? Более того, участников тунеля можно и из N выбирать, пока удачный не попадется, с котороым вон то еще и сработает. А дальше уже как бы его проблема с вон тем сконтачится. Да, при этом может выйти что-то типа "супернод" на белых айпи, но это бонусом улучшит состояние сети. При прямом конекте если nat traversal failed - то чего? Все, чатика не будет? А в вон тех случаях можно опробовать пачку вариантов, даже если оба за дурными натами, оба найдут постепенно пиров к которым они прицепиться смогут, а те уже могут быть не особо то и зафайрволеными. Это на самом деле проблема для всяких токсеров как раз, с их желанием там всякие видеопотоки гонять - они с самого начала "мы косим под скайп" рассказывали. Там с латенси напряжней, но даже так - сделали.

> Каждая датаграма шифруется. Отдельно. Так что ничего никуда не утекает.

Так вы ж написали что там ключ в начале указан. А дальше уже и не важно, весь поток можно скоррелировать и отстроить неплохую картину по таймингам. Для VoIP особо ушлые господа делали снятие шифрования на основе сугубо объема данных в единицу времени. При этом не надо знать ни алгоритм, ни ключ. Разные слова давали разные всплески данных, уникальные для разных слов. Крито штука забавная.

> Время видит только ваш оппонент после расшифровки. Тщательнее выбирайте собеседников.

Иногда ну вот надо бывает законтачиться с неопределенным кругом лиц. Условно, "продаю килограмм меда, стучаться <контакт>". Вполне нормальный вариант использования месенжеров. Сие однако не повод меня подставить.

> А вы их много пытались пробить?))

Сколько-то - было. Но я не знаю что для вас много и мало.

> Сделано было на основе того оборудования,которое было доступно мне.

И что, реально кто-то за 5 секунд забывает конект? Просто с такими свойствами у его владельца должно быть полкило траблов с довольно много чем еще.

> Значение подбиралось исходя из того, чтобы пробивать
> любые NAT. Впрочем, добавлю пункт в настройки - просто забыл.

Да я как-то так и понял но не все так просто в этой жизни. Это я так - посмотрел как токсеры радуются претензиям "батарейку пипец жрет!". При том что у них пакеты в друг друга чаще чем раз в 30 сек вроде не летают.

> Честное слово - лучше взгляните на код, чем писать глупости здесь)) Наверное
> p2p мессенджеры страдают этим не зря, раз уже в двух, известных
> вам, это встречается))

Код кодом а конекции конекциями. Они при intermittent connectivity летают постоянно, реконекты и смены статуса - ну вот не айс. По-моему там есть место для улучшения.

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

Ответить | Правка | Наверх | Cообщить модератору

174. "Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommuni..."  +/
Сообщение от ProfessorNavigator (ok), 07-Сен-22, 14:37 
> Как это? В случае какого-нибудь токса они мне его отдали со всей
> фабрикой и документацией, где мне будет надо там и пересоберу, у
> меня для этого все есть. Как мне это можно обломать?

Очень просто - у вас есть текущая версия. Но автор вам может перекрыть дальнейшее обновление. Да, у вас есть исходный код, и вы его можете поддерживать самостоятельно, но сможете ли и будете ли - вот это вопрос. Ну и никто не гарантирует, что нас в принципе не отрежут от "большого" интернета. С учётом происходящего вокруг вероятность такого сценария есть (хотя и невысокая на мой личный взгляд).

> В принципе прикольная цель, но если уже есть тойота и тесла, логично
> с них и драть дизайн, прикинув что можно улучшить, не?

И получится тойота или тесла. А кто сказал, что они - эталон? В науке есть такой принцип исследования: одну и ту же тему дают разрабатывать разным группам, с полным запретом обмена информацией. А потом смотрят, что у кого получилось. Здесь примерно то же самое.

> Раскуривать флоу по здоровенному полному
> клиенту - удовольствие ниже среднего.

А вам код целиком и не нужен. Я, если мне память не изменяет, указал конкретную функцию в документации, в которой можно посмотреть, чтобы разобраться, как работать с базовыми функциями библиотеки, а остальное вам будет ясно из описания функций в документации. Разложить по полочкам - это конечно хорошо, но не всегда физически возможно и нужно. В том же libcommunist используются несколько функций из libtorrent-rasterbar, которые вообще не документированы. Я о их существовании узнал только благодаря подсказкам IDE. Потом полез в исходный код, посмотрел, как это работает у автора, и начал использовать у себя.

> Это то понятно, но неплохо формально озвучить предпосылки к появлению этой штуки
> и честно указать какие задачи она решает и НЕ решает. А
> чтоб юзеры не раскатывали губы, не обламывались, не подставлялись и проч.
> Трезво оценивая чем оно является и не является.

Так в общем в readme Коммуниста вполне честно написано - в случае с симметричным NAT используйте прокси или VPN. И в документации библиотеки тоже самое есть. А в остальном - если уж вы полезли в тему p2p, то будьте добры узнать сначала, что это такое. Вся информация есть в открытом доступе. Повторять статьи из Вики и научных журналов (да, были и такие) не вижу смысла.

> А так совсем без гарантий - можно и вазап использовать. В as
> is даже он умешается :)

Если вы немного подумаете над темой, то поймёте, что никто и ни для чего гарантий в этом мире вам дать не может. Могут лишь сказать, что это может случиться/не случиться с такой то вероятностью. На основании того, что мы знаем вот это и вон то. Любой, кто даёт вам "гарантию 100%" мош... не заслуживает доверия. Единственная гарантия лично для вас - проверить всё самому. Я вам такую возможность дал, выложив код в открытый доступ. WhatsApp лишает вас даже этого.  

> Это почему? Tox умеет делать тунели допустим. Пров уже не видит истинное
> назначение и вообще это сильно менее удобно сразу. А в каком-нибудь
> TCP через TOR допустим уже можно довольно долго мозг ломать кто
> есть кто и такой порнографией будут заниматься только если ну вот
> очень припекло. А дежурно пошпионить таким манером уже слишком накладно.

Если у ваших "противников" есть доступ к узлам связи, то всё остальное дело техники. Если возникнет необходимость - ваши контакты вычислят на раз, два и три. Если вам мессенджер нужен для борьбы с текущим положением вещей с целью сделать мир лучше, то Коммунист для этого вполне подходит. Если же вы собираетесь проворачивать разные тёмные делишки в своих личных шкурных интересах, то тут я вам не помощник.

> Знание вот так по простому с кем, в каком объеме и когда
> я общался может сделать остальное не настолько уж и нужным. Если
> кого-то немного знать, остальное можно прикинуть и без взлома крипто.

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

> Да, при этом может выйти что-то типа "супернод" на белых айпи,
> но это бонусом улучшит состояние сети. При прямом конекте если nat
> traversal failed - то чего? Все, чатика не будет? А в
> вон тех случаях можно опробовать пачку вариантов, даже если оба за
> дурными натами, оба найдут постепенно пиров к которым они прицепиться смогут,
> а те уже могут быть не особо то и зафайрволеными. Это
> на самом деле проблема для всяких токсеров как раз, с их
> желанием там всякие видеопотоки гонять - они с самого начала "мы
> косим под скайп" рассказывали. Там с латенси напряжней, но даже так
> - сделали.

Если вы не заметили - ретранслятор я добавил. Именно на такой вот случай. В остальном - пользуйтесь прокси или VPN туннелями. Тщательно я не тестировал, но к openvpn туннелю Коммунист подключается нормально и сообщения вроде бы проходят.

> Так вы ж написали что там ключ в начале указан. А дальше
> уже и не важно, весь поток можно скоррелировать и отстроить неплохую
> картину по таймингам. Для VoIP особо ушлые господа делали снятие шифрования
> на основе сугубо объема данных в единицу времени. При этом не
> надо знать ни алгоритм, ни ключ. Разные слова давали разные всплески
> данных, уникальные для разных слов. Крито штука забавная.

Ключ тоже зашифрован)) Идентификация, от кого пришло, в случае с ipv4 осуществляется по сокету, на который свалилось сообщение. По сокету берётся ключ (который известен заранее), на основе которого вычисляется пароль и вектор инициализации для расшифровки. Если после расшифровки ключ из датаграммы не совпадёт с ключом, хранящимся у вас, датаграмма удаляется, в противном случае - обрабатывается. В случае с ipv6 идентификация осуществляется по ip приславшего сообщение. Если ip совпадает с ip, полученным из DHT или широковещательного запроса, то происходит расшифровка и аналогичная сверка ключей.

> Иногда ну вот надо бывает законтачиться с неопределенным кругом лиц. Условно, "продаю
> килограмм меда, стучаться <контакт>". Вполне нормальный вариант использования месенжеров.
> Сие однако не повод меня подставить.

Как написал выше - в тёмных делишках с целью личного обогащения я вам не помощник. И в попытках убить собственный мозг тоже.

> И что, реально кто-то за 5 секунд забывает конект? Просто с такими
> свойствами у его владельца должно быть полкило траблов с довольно много
> чем еще.

Там много чего ещё было. Например произвольные разрывы уже установленного соединения, произвольные же блокировки, из-за чего был введён механизм смены сокета.

> "батарейку пипец жрет!"

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

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру