Как получить авторитет автора сообщений в локальной сети p2p без использования учетных записей, хранящихся на внешних серверах? - PullRequest
0 голосов
/ 26 декабря 2011

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

PS. Мое приложение может быть похоже на то, как работает Twitter, но у него нет учетных записей и нет основных серверов для их хранения. Он разработан на Android и не может использовать Интернет просто потому, что использует Wi-Fi для подключения только к маршрутизаторам локальной сети, и я бы не хотел, чтобы пользователи использовали 3G / Edge.

Возможные решения:

  1. Используйте специальный идентификатор телефона (IMEI), но также как мне получить его программно и действительно ли он уникален?

  2. Использовать MAC-адрес телефона (фактически хэшированное соединение Bluetooth и MAC-адреса WiFi), это уникально для каждого телефона? Проблема с этим и вышесказанным заключается в том, что подлинный автор может со временем сменить телефон.

  3. Если подлинный автор ранее входил в свою учетную запись Google, сохраняется ли она в памяти телефона, и можно ли программно получить эту информацию в автономном режиме?

Ответы [ 2 ]

1 голос
/ 26 декабря 2011

Я не думаю, что вы можете что-либо сделать с ложным именем, но в большинстве случаев поддельные имена в порядке - от того, кого вы хотите защитить, является один пользователь, изображающий из себя другого. Цифровые подписи были бы подходящим способом - убедитесь, что у каждого есть случайно сгенерированный секрет, который он может использовать для подписи всех своих сообщений.

Для мобильной связи вы можете сделать еще один шаг и заставить людей подтвердить, что они знают другого человека, используя связь на малых расстояниях. Например, ваше приложение может осуществлять обмен Bluetooth с другим телефоном, и в каждом профиле будет указано, что «доверенный человек X подтверждает, что встретил ненадежного человека Y». Поскольку для этого потребуется согласие обеих сторон, если одна сторона пользуется доверием, вероятно, может быть и другая. Связь на коротких расстояниях гарантирует, что стороны встретились (и, возможно, удостоверяют, что человек похож на их аватарку).

Вы также можете сделать то же самое, что и Gravatar - использовать хэш имени и секрета для выбора из широкого спектра аватаров (или генерировать случайное изображение, используя очень длинный хэш). Таким образом, два человека, публикующие под одним и тем же маркером, будут иметь очень разные аватары, и сообщество пользователей может легко их различить.

1 голос
/ 26 декабря 2011

Использование цифровых сертификатов для подписи сообщений также может быть решением.Хотя его использование может вызвать некоторые вопросы типа " Кто эмитент? ".Ну, это может быть «сущность», созданная вами, если подлинность сообщений важна только в вашем собственном приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...