Size: a a a

2020 November 15

RC

Roman Chumachenko in Android Guards
Anton Pankratov
А можно ли в KeyStore сохранить нужную мне инфу без ее запоминания в других хранилищах (db, shared pref)?
Я не знаю на счет других реализаций кистора, но вот андроид кистор меня порадовал, в каком-то смысле - он не отдает на руки ключи. Интерфейс вполне допускает возврат null-а, так что когда мне понадобился ключ как он есть, то ничего я не получил. То есть ключ изолирован от процесса прилаги, согласно докам
источник

R

Rtem in Android Guards
Anton Pankratov
В PINKman предлагается юзать EncryptedFile, но можно ли вместо него использовать тот же keystore?
В keystore можно хранить только ключи. Никакой кастомной инфы там хранить нельзя. Именно поэтому Pinkman и юзает EncryptedFile, а ключи от его шифрования хранит в keystore. Эти ключе не попадают в память приложения если что
источник

ИК

Игорь К in Android Guards
Anton Pankratov
А можно ли в KeyStore сохранить нужную мне инфу без ее запоминания в других хранилищах (db, shared pref)?
на 100 баксов не поспорю, н овроде как нельзя. да и не предполагается там хранение данных приложения. Там хранятся ключи, причем без выхода наружу. Как верно написал @RChumachenko ключ даже не попадает в процесс приложения. Фактически ты не получаешь ключ в приложении, а он создается в keystore, а затем им шифруется то, что ты хочешь зашифровать.
источник

СП

Сергей П. in Android Guards
Anton Pankratov
А можно ли в KeyStore сохранить нужную мне инфу без ее запоминания в других хранилищах (db, shared pref)?
Для извращенного мозга ничего невозможного нет. Там хранение в виде карты = алиас и ключ(и). У сертификата туда отданного есть атрибуты и вот там подозреваю что можно сохранить произ.строку))
KeyStore.Entry.Attribute
источник

СП

Сергей П. in Android Guards
Но давно работал не помню
источник

R

Rtem in Android Guards
Сергей П.
Для извращенного мозга ничего невозможного нет. Там хранение в виде карты = алиас и ключ(и). У сертификата туда отданного есть атрибуты и вот там подозреваю что можно сохранить произ.строку))
KeyStore.Entry.Attribute
источник

СП

Сергей П. in Android Guards
Эээ тут тролл-ейбус ездить  даже будет) причем из кейстора данные может получить только приложение
источник

AP

Anton Pankratov in Android Guards
Я нашел только методы getName и getValue интерфейса Attribute в интерфейсе Entry. У остальных видов ключей похожие. Как тогда их использовать для хранения моих данных?
источник

СП

Сергей П. in Android Guards
Х.з. - надо дальше копать
get возвращает то что туда положено ранее. Если мы можем сохранить строку - то можем сохранить что угодно
источник

СП

Сергей П. in Android Guards
Anton Pankratov
Я нашел только методы getName и getValue интерфейса Attribute в интерфейсе Entry. У остальных видов ключей похожие. Как тогда их использовать для хранения моих данных?
https://developer.android.com/reference/java/security/KeyStore.TrustedCertificateEntry

Посмотри тут конструктор, что можно запихать в Set.
И какие конструкторы у реализаций  того интерфейса. И исходный код
источник

СП

Сергей П. in Android Guards
Это конечно стоя и в гамаке на лыжах,  но можно покопать туда.

А, еще ж есть биометрика, там можно данные хранить. Под пинкодом
источник

R

Rtem in Android Guards
Сергей П.
Это конечно стоя и в гамаке на лыжах,  но можно покопать туда.

А, еще ж есть биометрика, там можно данные хранить. Под пинкодом
Нельзя =) Биометрия != пинкод. Она ничего про него не знает, там свой механизм на базе CryptoObject
источник

R

Rtem in Android Guards
Ну и да, классный способ сильно за2.7баться и отстрелить себе все ноги в продакшене, это юзать атрибуты сертификатов для хранения произвольной инфы в keystore =) Не говорите потом, что не предупреждал 😉
источник

v

vitaly in Android Guards
Rtem
Ну и да, классный способ сильно за2.7баться и отстрелить себе все ноги в продакшене, это юзать атрибуты сертификатов для хранения произвольной инфы в keystore =) Не говорите потом, что не предупреждал 😉
Блин, а так можно?!)
источник

R

Rtem in Android Guards
vitaly
Блин, а так можно?!)
Тоже дух приключений почувствовал? =)
источник

v

vitaly in Android Guards
Rtem
Тоже дух приключений почувствовал? =)
Ну, типа того)
источник

v

vitaly in Android Guards
Чего гугл не сделают хранение произвольной инфы в ТЕЕ? В айфонах же вроде бы так можно?
источник

R

Rtem in Android Guards
Оно только с 26го API. И ни слова про ограничения этого подхода. Что будет если я запихну в эту строку пару гигов? Кейстор не бахнет? =)
источник

R

Rtem in Android Guards
vitaly
Чего гугл не сделают хранение произвольной инфы в ТЕЕ? В айфонах же вроде бы так можно?
А вот это хороший вопрос. Сам живу и удивляюсь =) Но видимо все дело во фрагментации, как всегда
источник

v

vitaly in Android Guards
Rtem
Оно только с 26го API. И ни слова про ограничения этого подхода. Что будет если я запихну в эту строку пару гигов? Кейстор не бахнет? =)
Было бы классно, если бы бахнул :)
источник