Безопасно ли хранить токены доступа/обновления Oauth2 в общих настройках в Android?

Я знаю, что могу установить значения «MODE_PRIVATE», и только мое приложение/идентификатор пользователя сможет получить к ним доступ, однако есть ли способ для пользователя получить к ним доступ в любой момент? Так безопасно ли хранить их в общих настройках или есть лучшее место?

Кроме того, если позже я решу открыть некоторые настройки для установки пользователем, смогу ли я скрыть эти значения?

Спасибо.

Изменить: я также знаю о внутреннем хранилище, но мне интересно, смогу ли я добиться чего-то более простого с помощью общих настроек.


person Igor    schedule 23.04.2011    source источник


Ответы (3)


Общие настройки — это обычный текстовый XML-файл, хранящийся в папке данных приложения. Это ни в коем случае не безопасное место. Просмотреть эти файлы и извлечь токены довольно просто. Вы по-прежнему можете использовать общие настройки, но вам необходимо зашифровать информацию, которую вы храните. Что касается «Внутреннего хранилища», они находятся в том же месте, что и «Общие настройки», поэтому их по-прежнему легко просматривать.

Ваши незашифрованные данные защищены от ДРУГИХ приложений, работающих в телефоне, но не от злоумышленников.

person dmon    schedule 23.04.2011

Даже если вы храните токены доступа в безопасном месте на устройстве, вы должны думать, что их можно раскрыть. Поэтому в коде мобильного приложения не должно быть секрета клиента. Что касается токенов доступа, вы можете попытаться обеспечить их безопасность, но вы не сможете сделать их безопасными на 100%. Таким образом, вы не должны получать ненужные области действия или токены с неоправданно долгим сроком службы.

пс. Как правило, мобильное устройство использует «тип_ответа=токен (неявное предоставление)» и не должно получать токены обновления. Хотя это зависит от политики сервера аутентификации.

person nov matake    schedule 01.05.2011
comment
Спасибо за помощь. Используемый нами протокол oauth2 требует использования токенов обновления, а также обычных токенов доступа. Проблема в том, что нам нужно хранить их где-то на устройстве, поскольку они должны быть постоянными между сеансами, а приложение не может их хранить. - person Igor; 02.05.2011
comment
Спецификация OAuth2 требует, чтобы мобильные устройства (все клиенты, которые не могут иметь секрет клиента) НЕ использовали токены обновления. Если сервер OAuth2, который вы используете, требует этого, это означает, что сервер не поддерживает таких клиентов. - person nov matake; 06.05.2011
comment
Можете ли вы дать ссылку на это? Я просматриваю: tools.ietf.org/html /draft-ietf-oauth-v2-15#section-4.4 и говорит, что refresh_token является необязательным - person Igor; 06.05.2011
comment
Неявное предоставление — это поток для клиентов, у которых не может быть секрета клиента. tools.ietf.org/html/draft-ietf- oauth-v2-15#section-4.2 - person nov matake; 17.05.2011

Если вы хотите показать некоторые настройки пользователю, вам не придется беспокоиться об их отображении. Я думаю, что shared_preferences, вероятно, будет «самым безопасным» местом для хранения этих вещей. Если у пользователя нет рутированного телефона и он не дает вредоносному приложению корневое разрешение на чтение ваших файлов данных, то, насколько мне известно, беспокоиться не о чем. Хотя жду ответов других. помечено!

person Nathan Schwermann    schedule 23.04.2011