Size: a a a

2018 April 02

NK

Nikita Kulikov in Android Guards
Rtem
Какая версия ведра?
Выше было, API23
источник

R

Rtem in Android Guards
Nikita фишка кейстора в том, что у тебя в памяти приложения не появляется ключ. Поэтому его поюз безопасен. Но не на всех версиях ведра
источник

NK

Nikita Kulikov in Android Guards
Pavel Vasiliev
Добрый день.
Да, кейс по сути именно такой "Если телефон попал человеку в руки, шоб он не смог достать ключ". Защищаемся от недобросоветсного пользователя который захотел на рабочий аппарат поставить рут и различные приблуды для анализа установленных приложений.
Строка сама зашифрована ключом, который лежит в AndroidKeystore, и хранится аппаратно (по крайней мере isInsideSecureHardware() возвращает true)
Мне вот интересно, насколько человек вооруженный рутом и/или xposedом на устройстве может поковырять AndroidKeystore?
Ну вы от такого не защититесь. Я думал вы пытаетесь защититься от кражи
источник

NK

Nikita Kulikov in Android Guards
Rtem
Nikita фишка кейстора в том, что у тебя в памяти приложения не появляется ключ. Поэтому его поюз безопасен. Но не на всех версиях ведра
Как минимум с помощью Xposed можно перехватить вызов методов, которые юзают этот ключ
источник

R

Rtem in Android Guards
И толку?
источник

R

Rtem in Android Guards
Ну данные можно получить, но не ключ
источник

NK

Nikita Kulikov in Android Guards
Ключ можно перехватить
источник

NK

Nikita Kulikov in Android Guards
Еще раз. Есть место где нам требуется этот ключ. Мы хандлим вызов этого метода и из аргументов берем ключ
источник

R

Rtem in Android Guards
С кейстором так не работает
источник

R

Rtem in Android Guards
Ну либо PoC в студию, я поизучаю =)
источник

PV

Pavel Vasiliev in Android Guards
Rtem
С кейстором так не работает
К сожалению, я действительно вынужден получать в коде расшифрованый ключ в чистом виде, т.к. в AndroidKeystore нельзя загружать свои ключи, можно только генерить случайные.
Получается в TEE происходит расшифровка непосредственно  секретной строки, а не операции с ней
источник

PV

Pavel Vasiliev in Android Guards
Была бы возможность загрузить туда свой ключ, можно было бы хранить её там как секреткей и при необходимости делать cipher.doFinal() внутри TEE не раскрывая её значения в процессе приложения
источник

PV

Pavel Vasiliev in Android Guards
Если xposed может перехватывать вызов методов, то в моём случае он действительно может схватить значение этой строки
источник

R

Rtem in Android Guards
Угу. Если ключ появляется в памяти приложения, то ауфидерзейн безопасность )
источник

PV

Pavel Vasiliev in Android Guards
Rtem
Угу. Если ключ появляется в памяти приложения, то ауфидерзейн безопасность )
А нельзя ли каким то образом обмануть SecretKeyGenSpec заставив его сгенерировать неслучайное случайное значение? :)
Или в этом случае работает RNG непосредственно с секурити чипа?
источник

R

Rtem in Android Guards
“Заставить сгенерировать неслучайно случайное значение” - в этой фразе прекрасно все =)
источник

R

Rtem in Android Guards
Найдите багу в PRNG и генерируйте пожалуйста =)
источник

R

Rtem in Android Guards
Только сдается мне, что после нахождения этой баги вы сможете больше никогда не работать ;)
источник

NK

Nikita Kulikov in Android Guards
Pavel Vasiliev
Если xposed может перехватывать вызов методов, то в моём случае он действительно может схватить значение этой строки
Он это и делает
источник

Kd

Konstantin dmz9 in Android Guards
так все таки кейстор можно использовать для хранения ключей или лучше на сервере хранить?
источник