2013-11-01 4 views
1

Недавно я обнаружил, что базы данных приложений для Android полностью открыты. Тем не менее, моя конфигурация раскрывается, я сохраняю там пароли.Проблемы с безопасностью Android

Итак, теперь мое сомнение возобновляется по Java-коду.

String value = "example"; 

Это может быть пример, когда я храню пароль для передачи по ссылке на webservice.

Люди, имеющие какое-то программное обеспечение (например, этот пример Is there a way to get the source code from an APK file?) могли бы получить весь код? (Я попытался выполнить шаги без успеха)

Я прочитал около http://developer.android.com/tools/help/proguard.html, откуда я знаю, что это уже реализовано в моем проекте?

Когда вы создаете проект Android, файл proguard.cfg имеет , автоматически создаваемый в корневой директории проекта.

Я проверил свой корневой каталог, и у меня его нет.

Спасибо, ребята.

+2

Можете ли вы уточнить, в чем вопрос? Вы спрашиваете, могут ли люди перепроектировать ваше приложение, как использовать proguard или как предотвратить обратное проектирование? – Geobits

+0

да, вы можете декомпилировать apk и получить доступ к исходному коду (хотя и не всегда надежному), proguard там, чтобы обфускать ваш код, но его все еще можно понять. Вы всегда можете сделать какое-то шифрование всего, что захотите, прежде чем сохранять его, а затем снова расшифровать его, когда хотите его использовать. – tyczj

+0

Существует простое правило. Если вас это волнует, не кладите его на телефон. Выполняйте аутентификацию на сервере и не храните пароль. если вы храните его на телефоне, невозможно ** сделать это безопасным. Есть шаги, которые вы можете предпринять, чтобы сделать это сложнее, но тогда это всего лишь вопрос: «Это попытка разорвать его на вознаграждение?» Если ответ «да», то не кладите его на телефон, потому что кто-то его получит. Вот почему у меня есть удаленная стирка на моем телефоне. – Simon

ответ

0

Вы можете зашифровать свою локальную базу данных с помощью sqlcipher. Proguard обфускает код, но не скрывает ваши пароли, если у вас есть их жестко закодированные в любом месте, это не инструмент для защиты [reference]. Также весь ваш сетевой трафик уязвим, если вы не используете какой-то TLS.

Как вы сейчас описываете свое приложение, тривиально получить пароли в вашем приложении.

0

Вы можете использовать char [] вместо строкового типа данных для хранения чувствительных значений, таких как пароль. Это затруднит восстановление, если кто-то принимает дамп памяти, поскольку значение не содержит пул строковых литералов, если используется тип данных char [].

2

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

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

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