Size: a a a

2021 April 04

СП

Сергей П. in Android Guards
Если я правильно понял вопрос - хранитель-кейстор. У него наружу не торчит апи  "отдай ключ", только "за/расшифруй сидящим внутри ключом вот  эти данные".
источник

MA

Max Alexeev in Android Guards
Сергей П.
Если я правильно понял вопрос - хранитель-кейстор. У него наружу не торчит апи  "отдай ключ", только "за/расшифруй сидящим внутри ключом вот  эти данные".
Кейстор хранит ключи приложений, Вы не можете запросить ключ чтобы пошифровать что-то без предварительной аутентификации. Именно для этого вы вводите пин/пароль/прикладываете палец
источник

СП

Сергей П. in Android Guards
Ну если без пальцев - то аппаратный кейстор зашифрует что попросят при поступлении запроса строго от того приложения что генерировало ключ и при указании алиаса. Вероятно это обойти сложно. А пальцы/лицо это доп.уровень к тому.
источник

MA

Max Alexeev in Android Guards
Даже без запроса на указание пина/пароля?
источник

СП

Сергей П. in Android Guards
Кейстор же может работать независимо от пина/биометрии. Это доп.фичи. Биометрии много где и нет
источник

MA

Max Alexeev in Android Guards
Нет. Можно и без биометрии. Но он для доступа к ключу не попросит аутентификации?
источник

СП

Сергей П. in Android Guards
Но получается так - берем низкоэнтропийный пин и смешиваем с высокоэнтропийным ключем в недоступным никому кейсторе.
источник

СП

Сергей П. in Android Guards
Max Alexeev
Нет. Можно и без биометрии. Но он для доступа к ключу не попросит аутентификации?
Кажется это опция - нужен ли пин.
источник

MA

Max Alexeev in Android Guards
А если по дефолту он стоит в системе, но не на конкретном приложении?
источник

PV

Pavel Vasiliev in Android Guards
Max Alexeev
Кейстор хранит ключи приложений, Вы не можете запросить ключ чтобы пошифровать что-то без предварительной аутентификации. Именно для этого вы вводите пин/пароль/прикладываете палец
Это поидее зависит от того с какими параметрами был отправлен запрос на создание секретного ключа или выпуска ключевой пары. Можно выпустить ключи для пользования которыми не нужна аутентификация, достаточно только знать алиас. Можно выпустить ключи для пользования которыми аутентификация нужна обязательно, без неё будет вылетать исключение. Зависит от задачи
источник

PV

Pavel Vasiliev in Android Guards
.setUserAuthenticationRequired(true)
источник

PV

Pavel Vasiliev in Android Guards
Или как то так должно быть
источник

СП

Сергей П. in Android Guards
Да, как то так
источник

СП

Сергей П. in Android Guards
Max Alexeev
А если по дефолту он стоит в системе, но не на конкретном приложении?
Насколько я помню он всегда привязан к сгенерившему его приложению и только на его запрс отреагирует. Иначе кейстор (де)шифровал бы данные для любого процесса  самозванца
источник

MA

Max Alexeev in Android Guards
Понял)
Да я с точки зрения безопасности смотрю, как это все происходит
А ещё, подскажите, Keystore находится у нас в TEE ведь?
И имплементация со StrongBox, как-то влияет на конечную архитектуру?
Они же ведь по разному сделаны, как я понимаю. В одном случае - все на одном чипе, другой - это отдельный сопроцессор
источник

PV

Pavel Vasiliev in Android Guards
Max Alexeev
Понял)
Да я с точки зрения безопасности смотрю, как это все происходит
А ещё, подскажите, Keystore находится у нас в TEE ведь?
И имплементация со StrongBox, как-то влияет на конечную архитектуру?
Они же ведь по разному сделаны, как я понимаю. В одном случае - все на одном чипе, другой - это отдельный сопроцессор
Ит дэпэндс)

Интерфейс у кейстора один, но реализован он может быть либо:
- программно. Т.е. весь материал ключей хранится в userdata но недоступен без рут-доступа
- аппаратно. Т.е. в трастзоне или другой реализации изолированного пространства чипа со своей ОСью
- аппаратно в отдельном чипе. Это как раз strongbox
источник

PV

Pavel Vasiliev in Android Guards
Первая уже почти не встречается в природе. Последняя по-моему только в пикселях бывает
источник

PV

Pavel Vasiliev in Android Guards
В 95% случаев это аппаратная реализация в arm trustzone / trusty
источник

MA

Max Alexeev in Android Guards
Угу, спасибо огромное
источник

PV

Pavel Vasiliev in Android Guards
Есть метод дя проверки того аппаратная ли реализация, но он самими разрабами отмечен как не гарантирующий достоверный результат в 100% случаев
источник