Различные способы аутентификации приложений для смартфонов, таких как Android - PullRequest
0 голосов
/ 15 февраля 2012

Я ищу разные способы аутентификации клиента, такие как приложения для Android, iphone, Windows и BlackBerry, и какое из них лучше и почему

Согласно моим исследованиям, я знаю 2 способа аутентификации клиента 1. Закрытый ключвстроено в приложение для смартфона, которое будет использоваться для подписи сообщения: проблема в том, что хакеру легко получить доступ к закрытому ключу 2. Сертификат клиента

Существуют ли другие способы аутентификации в этом приложении для смартфона и какойнаиболее защищенный?

1 Ответ

0 голосов
/ 15 февраля 2012

Обе опции, перечисленные здесь, действительно одинаковы.Сертификат клиента - это на самом деле просто часть открытого ключа частной / открытой пары ключей, которая подписана каким-либо объектом вместе с некоторой идентификационной информацией.

Лучший способ аутентификации клиента - это использование SSL с взаимной аутентификацией.Здесь вы можете использовать самозаверяющие сертификаты, поэтому вам не нужно покупать какие-либо сертификаты в ЦС, при условии, что вы контролируете все клиенты, которым вы хотите разрешить доступ, и вы контролируете серверы, с которыми они будут общаться.Это гарантирует, что ваши клиенты будут получать данные только с вашего законного сервера (настройте систему SSL для вашего приложения так, чтобы она принимала только самозаверяющий сертификат, используемый вашим сервером), а ваш сервер будет принимать данные только от ваших авторизованных клиентов (настройте свой сервер наДоступ только к самозаверяющим сертификатам, развернутым в вашем приложении, в качестве ресурса для аутентификации клиента).Существует полное пошаговое краткое изложение того, как сделать это для Android в Application Security для платформы Android , опубликованной O'Reilly.

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

...