Задать вопрос
@AlekSt7

Как реализовать механизм доверия между двумя Android приложениями?

Всем привет! По задумке должны быть два разных приложения, которые будут общаться внутри локальной сети. Нужно реализовать какой-то механизм доверия, что бы приложения знали, что общаются именно друг с другом, а не с подставными копиями. Может кто сталкивался, как подобное реализовать? Может кто-то знает хорошие источники, где можно почитать про подобное, куда копать?
  • Вопрос задан
  • 190 просмотров
Подписаться 1 Средний 9 комментариев
Пригласить эксперта
Ответы на вопрос 3
@AlexVWill
Есть два стандартных способа:
1. VPN. Тут речь идет скорее не про два, а про несколько клиентов, которые доверяют друг-другу через сервер VPN (ну, на тот случай, если "два" просто некоторая условность).
2. Если все-таки "два" это два, то стандартных и наиболее безопасный способ - это SSL и обмен ключами между устройствами. Погугли как это реализовано у Matrix, там оба способа реализованы (хотя первый не VPN, но механизм аутентификации похож в чем то).
Ответ написан
Комментировать
@Refguser
Решения для бизнеса: от создания ИМ до...
Как вариант.
Приложения по секретному алгоритму, завязанному на непостоянные и индивидуальные данные (от IP/МАС устройств до текущего времени времени. Дополнительно можно использовать вводимые пароли) генерируют ключи, по которым происходит опознавание свой-чужой.
Ответ написан
Комментировать
@rPman
Есть две 'задачи', какая из них вам нужна, не понятно:
1. передача данных по сети
* что бы никто не подсмотрел
* что бы никто не мог скрытно подменить
это решается ssl шифрованием и удостоверяющими центрами (которым можешь быть ты сам), пример https протокол и инфраструктура вокруг
2. предоставление гарантий что алгоритм на устройстве пользователя не будет подменен на похожий/прикидывающийся настоящим
* что бы никто не мог украсть данные
* что бы никто не мог украсть алгоритмы
* что бы никто не мог навредить соседним устройствам
Эта сложнейшая не решена, но в частных случаях есть какие то решения, типа обфускации алгоритма и структур данных для удорожания их понимания и внесения изменений... т.е. вся защита будет строиться на экономической целесообразности процесса, если взлом будет дороже профита от него, этим заниматься не будут.
Отличный пример - вместо запуска кода на машине пользователя, его можно запустить на защищенной удаленной машине, к которой доступ только по определенным правилам, тупой пример - удаленное управление машиной, на которой запущено требуемое приложение в режиме kiosk-mode, т.е. без интерфейса ОС и возможности выйти за границы этого приложения. Сломать или как то проанализировать приложение в этом случае невозможно, а автоматизация для кражи данных решается лимитами доступа к ним.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы