Size: a a a

2021 March 15

PV

Pavel Vasiliev in Android Guards
Vladyslav Yarokh
Всем привет! Возможно, вопрос покажется глупым, но.
В приложении используется шифрование с алгоритмом AES/GCM/NoPadding через AndroidKeyStore, как выяснилось, между бэкапами приложения/на разных девайсах KeyGenerator генерит абсолютно разные ключи для одних и тех же эллиасов (даже с одним и тем же SecureRandom), что делает невозможным дешифровку данных.
Вопрос: какие есть альтернативы AndroidKeyStore или как из него достать и корректно сохранить SecretKey (чтобы через бек передавать на нужные девайсы пользователя и использовать в дешифровании данных на клиенте)?
Достать нельзя, в этом весь смысл кейстора
источник

PV

Pavel Vasiliev in Android Guards
Скорее надо придумывать схемы с прицелом на то что ключ может пропасть
источник

VY

Vladyslav Yarokh in Android Guards
можно ли тогда как-то сгенерить такой же ключ, что использовался ранее? Так как зашифрованные данные не получается расшифровать на разных девайсах/между бэкапами аппки
источник

VY

Vladyslav Yarokh in Android Guards
Pavel Vasiliev
Достать нельзя, в этом весь смысл кейстора
возможно, есть какая-то адекватная альтернатива AndroidKeyStore?
источник

PV

Pavel Vasiliev in Android Guards
Мне кажется, зависеть в бэкапах от конкретного сгенерированного ключа - не лучшая идея. Ключи генерятся каждый раз заново, не важно какой им назначен алиас. Смысл SecretKey в кейсторе в том чтобы шифровать и использовать данные локально в рамках одной установки приложения, например когда мы хотим совершить лишний шаг в сторону безопасности песочницы или придумываем схему с входом приложения через пин-код, где с помощью данного ключа расшифровываем ключ для расшифровки данных. Он не может шариться между бэком и инстансом приложения

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

СП

Сергей П. in Android Guards
А о каких бэкапах речь? Штатных андроидских? Либо в них данные и так зашифрованы, то есть шифруем их уже при сохранении на устойстве (надежным паролем юзера), либо их надо хранить, скажем, на сервере. Отправлять туда зашифровав его опенключом.
источник

СП

Сергей П. in Android Guards
Кейстор не нужен к этой задаче. Tink нужен
источник

NK

ID:0 in Android Guards
Записали подкаст с Сергеем Тошиным. По его словам, а также по версии Google Play Security Rewards — Сергей является хакером #1 😎. В выпуске обсуждаем путь на вершины bug bounty, часто встречающиеся баги и авторский проект для поиска таких багов — Oversecured сканер.

Послушать выпуск можно в Google/Apple подкастах и на Youtube:
🎥 YouTube: https://youtu.be/wvSnM8YFcVM
🎙 Google Podcasts: http://bit.ly/2PVXGh5
🍏 Apple Podcasts: http://apple.co/3eDKkAB
источник

PV

Pavel Vasiliev in Android Guards
Крутой выпуск и крутой гость, спасибо!
источник

R

Rtem in Android Guards
Pavel Vasiliev
Крутой выпуск и крутой гость, спасибо!
источник

M

Max | BM Studio in Android Guards
Любой навык - это жопа-часы!! 😄
источник

M

Max | BM Studio in Android Guards
И не поспоришь ведь)
источник

R

Rtem in Android Guards
Чистая правда между прочим =) Еще ни разу не получалось что-то изучить “по быстрому” и сразу на приемлемом уровне. Но может быть я просто не очень ))))
источник

VR

Vitaliy Raevskiy in Android Guards
Rtem
Чистая правда между прочим =) Еще ни разу не получалось что-то изучить “по быстрому” и сразу на приемлемом уровне. Но может быть я просто не очень ))))
дышать получилось сразу
источник

R

Rtem in Android Guards
Vitaliy Raevskiy
дышать получилось сразу
Это не навык =)
источник

VR

Vitaliy Raevskiy in Android Guards
с какой стороны посмотреть
источник

R

Rtem in Android Guards
Со стороны закрытия базовой потребности в кислороде
источник

VR

Vitaliy Raevskiy in Android Guards
тоже самое и в любом другом . Если себя искусственно поставить в такую ситуацию что нужно научиться быстро и на мидл уровне иначе "смерть" , то эффект будет гораздо лучше
источник

VR

Vitaliy Raevskiy in Android Guards
но вывинуть себя из зоны комфорта - это сложно
источник

Д

Дима in Android Guards
мне кажется тут некорректная метафора. дышать на "миддл уровне" никто не учился, это в организм заложено сразу после рождения, и включается сразу в полном объёме в определённый момент, сложнейший механизм.

ну и обучение в ситуации когда нужно быстро или всё, это обучение не миддл уровню, а обкладыванию всего что можно костылями, которые можешь придумать на своём уровне.
источник