Смотрю видеоуроки по безопасности, которые нужно пройти всем сотрудникам компании и заодно взглянул один урок по безопасной разработке под Android. В нем меня заинтересовало одно утверждение, что во время разработки своего API, который будет работать с сервером, не нужно сохранять локально имя пользователя и пароль. Если уж очень нужно, то для хранения используйте хранилища, которые предоставляет платформа, а не путайтесь разработать вое шифрование и хранение.
Абсолютно согласен, что не нужно хранить пароли локально. Имена и явки конечно же можно, а вот пароли на мобильном телефоне сохранять нельзя. Это устройство, которое достаточно легко украсть, а сколько их теряют ежегодно вообще не подсчитаешь.
Так как шифрование требует дешифрования, то ключ скорей всего будет хранится где-то в памяти телефона и уйдет в не добрые руки вместе с телефоном.
Вопрос больше в другом - какой может быть случай, чтобы очень сильно захотелось сохранять пароль локально на телефоне? Даже в хранилище, которое предоставляет платформа?
У качестве примера в этом видео было сказано, что если вы хотите, чтобы у пользователя не было необходимости вводить каждый раз пароль, то доверьте его платформе. Не вижу связи. Например, Facebook не хочет, чтобы пользователь каждый раз вводил свой пароль на сайт, он же не будет доверять пароль пользователя браузеру или даже ОС?
Вместо этого создается сессия, которая не вечна и в зависимости от типа приложения может потребовать повторного входа. Для банковских приложений сессия может длиться часы, а для социальных сетей недели и даже месяцы. Эт работает в браузере и подобное достаточно легко реализовать и для мобильных приложений.
Самое главное, что сессия может устаревать сама и если пользователь захочет явно выйти из своего аккаунта в приложении, можно так же просто пометить сессию, как закрытую. Можно даже сделать возможность на сайте закрытие мобильных сессий, если телефон утерян. Быстро и эффективно и не нужно сохранять пароли в мобильном устройстве.
Если честно, то я не могу себе представить случай, когда сохранение пароля локально на телефоне может принести выгоду и удобство.
Мне кажется, что самый безопасный метод хранить пароли в телефоне - не делать этого. И даже представить себе не могу случай, когда это может реально понадобиться. Есть идеи?
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Многое, что повышает надежность, создает неудобство и опасность утраты. Многое, что создает удобство и снижает опасность потери, снижает надежность.
Можно программно генерировать пароли, хранить их и имена где-то записанными где-то внутри запакованными, но не буквально, а производные от них, помещенные в базу менеджера под (аналогично составленным) мастер-паролем. Производные создавать по строгим правилам, которые держать только в уме.
Мишаня,
а в чём проблема, Мишаня?
Менеджер паролей надёжно запирает базу данных паролей с помощью главного пароля, который хранится только у пользователя в голове.
А без главного пароля базу данных не открыть.
Пользуюсь KeePass 2 на компьютере и KeePass на Android. Общая база паролей на личном FTP сервере. Ничего вводить не надо вручную, все прога сама вводит в формы ввода.
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.