Обсуждение: Шифрование для приложения Password Keeper для Android

#java #android #security #encryption #mobile

#java #Android #Безопасность #шифрование #Мобильный

Вопрос:

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

Будучи разработчиком Android, я решил начать разработку приложения Password keeper, для которого я могу хранить свои имена пользователей и пароли, так как трудно запоминать разные пароли. Я не хочу идти простым путем и загружать существующее стороннее приложение Password Keeper.

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

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

Ответ №1:

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

Комментарии:

1. Да, я требую, чтобы пользователь определил PIN-код или пароль по умолчанию. Однако я не думал об использовании PIN-кода / пароля в качестве ключа шифрования. Мне нравится эта идея. Спасибо!

Ответ №2:

взгляните на приложение 1password, вероятно, это лучшее приложение для хранения паролей на рынке. Их философия заключается в том, что они хранят все ваши пароли за 128-битным шифром, для входа в который вы используете свой пароль 1password. Кроме этого, все пароли веб-сайтов представляют собой случайно сгенерированные буквенно-цифровые строки. Таким образом, на самом деле нет вероятности столкновения, и вы в безопасности, где бы вы ни просматривали.

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

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

Последнее только потому, что я могу

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

Кредиты XKCD