Что защищает пароли Android AccountManager от чтения другими приложениями?

Я пишу 1) приложение, которое хранит имя пользователя и пароль в AccountManager, и 2) отдельное приложение фоновой службы, которое обращается к этим учетным данным для входа на мои серверы, и т.д. Играя с этим, я обнаружил, что могу вызвать AccountManager.getPassword (account) из службы (приложение 2), чтобы получить доступ к типу учетных записей, которые я добавил в AccountManager с помощью другого приложения (приложение 1).

В связи с этим я начинаю задаваться вопросом, что мешает произвольному вредоносному приложению: 1) включение полей в манифесте для доступа к управлению учетной записью, а затем 2) повторение всех учетных записей определенного типа и вызов mAccountManger.getPassword (аккаунт) на них. Я знаю, что во время установки появляется диалоговое окно со всеми разрешениями, которые приложение запрашивает для использования, но я не думаю, что мы можем рассчитывать на то, что средний пользователь отклонит приложение, потому что оно запрашивает подозрительные разрешения.

Есть ли способ предотвратить вызов getPassword для определенного типа учетной записи? Есть ли способы защитить учетные записи в AccountManager от приложений, которые предоставили себе множество разрешений для учетных записей?

13
задан liucheia 17 November 2011 в 21:50
поделиться