0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 3
1

Как идентифицировать узлы в децентрализованной системе

16.11.2017, 21:53. Показов 907. Ответов 6

Появилась идея создать децентрализованное приложение по типу diaspora. Есть приложение, компьютеры с запущенным приложением будем называть узлами. Когда пользователь хочет создать свой узел, он устанавливает приложение на компьютер, добавляет себе в контакты уже запущенные узлы. Приложение делает запрос к тем узлам, они заносят его в базу и рассылают другим узлам. Таким образом у каждого узла есть база данных с узлами, которой он периодически делится с другими. Нужно предотвратить пересылку ложных адресов. Например, пользователь добавляет в свою базу адрес, на котором рабоет не наше приложение, а какое-лиюо другое, адрес пересылается другим узлам. Как различить фейковый адрес от нормального?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2017, 21:53
Ответы с готовыми решениями:

как идентифицировать цены
Здравствуйте. Мне поставщики присылают прайсы с ценами и обновлениями. Как сделать чтоб по артикулу...

Как идентифицировать диод?
Мне нужны диоды Шоттки, и у меня есть горстка СМД диодов, только вот неизвестно каких. Помогите их...

Как идентифицировать комп
На работе столкнулся с проблемой - привезли комп с другой организации, установили в кабинете - все...

Как идентифицировать элемент?
Всем привет! Требуемый алгоритм 1. Считали HTML 2. Записали в базу 3. Считали ещё раз 4....

6
34 / 32 / 10
Регистрация: 15.07.2017
Сообщений: 123
16.11.2017, 22:15 2
Приложение прежде чем добавить новый адрес может "попинговать" его на предмет наличия там такого же приложения.
0
0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 3
16.11.2017, 23:11  [ТС] 3
Каким образом вы предлагаете это сделать?
0
Модератор
2832 / 1996 / 431
Регистрация: 26.03.2015
Сообщений: 7,670
17.11.2017, 08:41 4
Лучший ответ Сообщение было отмечено Undefined3102 как решение

Решение

Возможно, не совсем в тему:
Задача византийских генералов
0
34 / 32 / 10
Регистрация: 15.07.2017
Сообщений: 123
17.11.2017, 21:13 5
Если не предполагается попыток "взлома" Вашей системы, то достаточно коннектиться по адресу и проверьть его по схеме позывной-отзыв.
А если Вам нужно еще и противодействовать атакам, тоShamil1 правильно путь указал где смотреть. Но с учетом возможности декомпиляции программы Ваша схема в таком случае трудноосуществима. Дело в том, что если Ваша программа умеет убеждать остальных в том, что она оригинальная, то и другую программу можно этому "научить", грубо говоря позаимствовав соответствующий код из Вашей. Думаю тут не обойтись без какого то дополнительного подтверждения оригинальность, хотя бы при первоначальном вхождении в сеть.
0
0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 3
17.11.2017, 21:42  [ТС] 6
Декомпиляции осуществлять не пришлось бы - она opensource

Добавлено через 1 минуту
В целом алгоритм решения понятен: когда узел получает новый контакт, нужно проверить есть ли у этого контакта контакт отправителя, также нужно посмотреть его наличие у других контактов отправителя, в случае отсутствия контакт распознаётся как недействительный
0
34 / 32 / 10
Регистрация: 15.07.2017
Сообщений: 123
18.11.2017, 00:18 7
Лучший ответ Сообщение было отмечено Undefined3102 как решение

Решение

Если нужна прям защита от несанкционированного проникновения я бы предложил такой вариант навскидку:
0) Узлы общаются между собой по защищенным соединениям типа SSH;
1) Каждый узел имеет два ключа: старый и новый;
2) Каждый узел хранит список остальных узлов и их пар ключей;
3) Каждый час старый ключ отбрасывается, новый становится старым, а в качестве нового берется случайное число;
4) При обновлении ключей остальные узлы оповещаются об этом;
5) Чтобы проверить на "вшивость" узел - запрашиваем у него ключи, если его новый ключ совпадает с новым или старым в таблице, то узел наш;
6) О любом изменении структуры списка узлов каждый узел рассылает остальным извещения. Здесь есть минусы: нагрузка на сеть и возможность коллизий (например по причине ошибки узлы могут рассылать противоречивую инфу).
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2017, 00:18

Как идентифицировать ноут
Всем привет! Помогите, пожалуйста, идентифицировать ноутбук. Не могу найти инфу по нему в инете....

MenuStrip, как идентифицировать кнопки?
как обратится к определенной кнопке в menuStrip? я поменял свойство Enabled=false на всех кнопках...

Как идентифицировать блок с динамическим id?
Всем привет! Ребята, помогите пожалуйсто решить такую проблему. У нас есть некий скрипт, который...

Как идентифицировать форму, не имеющую id и name?
Есть множество форм, которые создаются динамически, и атрибутов id и name у них нет. Сабмит любой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.