2010-04-20 3 views
13

В моем приложении Android используется секретный ключ для генерации токена для целей аутентификации. Есть ли более безопасный способ сохранить это, чем просто поместить это в хранилище данных? Я думаю, что для iPhone мы храним его в цепочке ключей. Мне известно о android.accounts.AccountManager, но это, похоже, дает другим приложениям возможность доступа к паролю (если пользователь выбирает неправильный вариант) и поэтому кажется менее безопасным.Хранение секретного ключа на Android

ответ

6

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

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

+0

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

+0

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

+0

Это не безопасно. Это эквивалент обфускации. Это защитит вас от случайного браузера и сценариста, но не того, кто хочет знать ответ. Но если вас беспокоит только сценарий, то это решение ОК. –

4

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

Но это не защитит ключ от считывания самим пользователем.

+7

Правда, НО Я МОГУ ПОЛУЧИТЬ ВАШ КЛЮЧ В МИНУТУ, ЕСЛИ ВЫ ДЕЛАЕТЕ ЭТО! попробуйте apktool, и вы можете получить целые строки.xml. Просто сделал это на знаменитом социальном приложении Android и получил свой ключ от пользователя и секретный секрет, секрет facebook, идентификатор google analytics, .... Принял меня на 2 минуты. –

1

если вы можете запустить apk tool, то его отлаживать, и вы собираетесь запустить устройство. Нет никакой защиты на брелках в iOS, когда его jailbroken

+1

Ошибка пользователя в том, что система не защищена – Casebash

0

Вы можете хранить секретные данные, зашифровав его ключом, сгенерированным Android Keystore System, а затем сохраните результат, хотите ли вы.

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