2008-10-13 2 views
0

Я унаследовал мобильное приложение, которое отправляет аутентификационные данные (идентификатор пользователя/пароль) в поле clear.Поиск безопасного способа аутентификации из мобильного приложения

Я бы предположил, что у меня есть 2 варианта: a) использовать TLS. b) Напишите мой собственный протокол аутентификации.

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

ответ

-1

Для обоих «вы не можете получить иск за это» и «разумно защищены» определения «безопасной» для мобильного приложения, можно предположить, что линия защищена против человека-в -средние атаки и широко открыты для подслушивания. SSL/TLS - самый простой способ, но это может зависеть от вашего оператора и целевых телефонов.

Если вы не можете сделать TLS работу и вам нужно свернуть свой собственный, использовать Diffie-Hellman обмена ключами и установил библиотеку криптографических (Legion of the Bouncy Castle есть реализация jightweight, которое соответствует J2ME.)

+0

Да, мое мобильное приложение J2ME. И да, у меня были проблемы с SSL. Благодарю. – 2008-10-13 08:56:48

3

Если вы используете б), основными принципами являются: Не используйте. Если вы хотите, чтобы это было безопасно, то есть.

Постарайтесь придерживаться a).

+0

Я не смотрел новые телефоны, но раньше у меня были проблемы с установленными сертификатами SSL. – 2008-10-13 07:04:06

0

Для (б) Я думаю, что вы делаете вызов-ответ.

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

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

1

Дать свой собственный протокол безопасности не нужно, и плохая идея. Это почти наверняка будет иметь эксплуатационные недостатки. Если вам нужно только защитить конфиденциальность учетных данных, то SSL/TLS - это то, что вы должны использовать. Это также позволяет вам более легко обновлять аутентификацию на основе сертификата клиента в будущем.

Смежные вопросы