Size: a a a

2018 September 16

ПД

Павел Дреманович in Android Guards
Rtem
Храни в зашифрованном виде свои данные. Ключ выводи из пина.
А какой длины должен быть пин что бы это давало хорошую защиту?
источник

NA

Nikolay Anisenya in Android Guards
Не менее 10 символов, большие и маленькие буквы, цифры и спецсимволы, но это уже не пин)
источник

ПД

Павел Дреманович in Android Guards
))
источник

Y

You in Android Guards
Nikolay Anisenya
Не менее 10 символов, большие и маленькие буквы, цифры и спецсимволы, но это уже не пин)
И чтобы запомнить сложно было👍
источник

Y

You in Android Guards
Лучше фразу
источник

R

Rtem in Android Guards
Да ладно вам, пин может быть и 4 символа. Просто соль генери для каждого юзера свою
источник

R

Rtem in Android Guards
Ну и да, в PBDKF передавать нужно конечно же не пинкод сам по себе =) Я так, на всякий случай =))
источник

YS

Yury Shabalin in Android Guards
Rtem
Ну и да, в PBDKF передавать нужно конечно же не пинкод сам по себе =) Я так, на всякий случай =))
Ты имеешь ввиду от пина считать хэш и потом передавать в PBDKF2? Входные данные - функция для генерации, пароль, соль, количество итераций, желаемая длина ключа.
источник

YS

Yury Shabalin in Android Guards
Или как?)
источник

AE

As Encrypt3d in Android Guards
Павел Дреманович
Всем привет, у меня следующая задача:
Приложение должно хранить KeyPair (Ed25519) и при входе должен запрашиваться пинкод.
Должна быть поддержка устройств начиная с 19 API.

Вот как я планирую это реализовать:
С помощью Android Keystore API подпишу ключевую пару пинкодом. Подпись вместе с ключем зашифрую с использованием того же API и положу в SharedPreferences. Сам пин-код + количество неверных попыток я буду хранить также зашифрованным в SharedPreferences.

Что в моем понимании мне это даст:
1. Поскольку ключ подписан пином, будет невозможно отключить проверку пина даже имея доступ к файлам внутри приложения. (При попытке восстановления ключа подпись не совпадет)
2. Перебор пинкода затруднит счетчик попыток и длительный таймаут, а в случае наличия у злоумышленника доступа к файлам приложения защита строится на том что простого перебора не достаточно, нужно знать ключ которым зашифрован пинкод.

Какие есть подводные камни у такого метода? Возможно я чего-то не учел, возможно есть способ проще?
Насчёт второго пункта: много работы, но небольшая отдача - были случаи, когда снимали образ устройства, клонировали его на N эмуляторов и спокойно себе обходили счётчик попыток.
источник

AE

As Encrypt3d in Android Guards
(в случае с даже нерутованым андроидом, даже это было бы лишним)
источник

A

Andrew in Android Guards
источник

GK

Gregory Klyushnikov in Android Guards
Кстати, секретные вопросы бы законодательно запретить
источник

А

Артёмка in Android Guards
Gregory Klyushnikov
Кстати, секретные вопросы бы законодательно запретить
А что предлагаешь?
источник

GK

Gregory Klyushnikov in Android Guards
Артёмка
А что предлагаешь?
Как у всех нормальных людей - восстановление пароля через почту или телефон
источник

А

Артёмка in Android Guards
А, я думал какую-то альтернативу
источник

GK

Gregory Klyushnikov in Android Guards
Нет никакой альтернативы этому
источник

GK

Gregory Klyushnikov in Android Guards
"создайте более слабый пароль, который, скорее всего, знают другие люди, чтобы вы могли восстановить ваш аккаунт, если вы забудете пароль, потому что мы заставили вас его поменять просто так"
источник

R

Rtem in Android Guards
Yury Shabalin
Ты имеешь ввиду от пина считать хэш и потом передавать в PBDKF2? Входные данные - функция для генерации, пароль, соль, количество итераций, желаемая длина ключа.
Да. Пароль это как раз и будет хэшированный пин
источник

YS

Yury Shabalin in Android Guards
Rtem
Да. Пароль это как раз и будет хэшированный пин
Да)
источник