2016-12-27 3 views
1

Я читаю о хранении секретного ключа (для шифрования/дешифрования данных), и, похоже, этого не достичь. Для атакующего может только увеличиться сложность.Как безопасно хранить Secretkey в Android?

Это действительно так?

То, что я получил до сих пор:

Хранить в общей предпочтительности (частный режим) - коренится телефон будет иметь возможность получить его.

NDK C/C++ родной код, создать .so файл - сложно декомпилировать, но можно вызвать этот .so-файл и получить его.

Веб-сервер для хранения ключа, выглядит бесполезным, если требуется отправить учетные данные, вредоносное изделие может записывать ключевые нажатия клавиш.

Я слишком параноичен?

+1

Вы никогда не были параноидальными, но вам нужно прийти к партнерству с юзабилити – pedrofb

+0

@pedrofb Я так думаю ... –

ответ

5

Почему бы вам не использовать Android хранилища ключей? Он предназначен для этой цели https://developer.android.com/training/articles/keystore.html

Система Android Keystore позволяет хранить криптографические ключи в контейнере, чтобы сделать его более трудно извлечь из устройства

Имеет значительные преимущества по сравнению с общими предпочтениями или частными файлами, такими как предотвращение извлечения или использование ключа. Я не рассматриваю возможность хранения закрытых ключей на сервере.

Особенности безопасности

система Android Keystore защищает материал ключа от несанкционированного использования. Во-первых, Android Keystore смягчает несанкционированное использование ключевого материала вне устройства Android на , предотвращая извлечение ключевого материала из процессов приложений и с устройства Android в целом. Во-вторых, Android KeyStore смягчает несанкционированное использование ключевого материала на устройстве Android, заставляя приложения указывать авторизованные использования их ключей, а затем применять эти ограничения за пределами процессов приложений.

В некоторых устройствах с выделенным оборудованием оно реализовано на нем. В качестве программиста вы можете знать, является ли ключ защищенным аппаратным обеспечением

Концепция похожа на iOS KeyChain, но в то время как IOS KeyChain может хранить пароли, генерировать и импортировать криптографические ключи, Android KeyStore позволяет генерировать криптографические секретные ключи приложения (без импорта функций)

ключей также может быть защищен требуя пользователь разблокировать устройство и/или представление отпечатка

Например, для обеспечения пароля, является возможным, чтобы сгенерировать ключ шифрования, защищенный отпечаток пальца , и использовать его для шифрования учетных данных пользователя, которые могут быть сохранены в настройках

+0

Я читал о Keystore. Это приятная функция, но доступная только для Marshmallow. Таким образом, вы ограничиваете свое приложение очень маленькой группой. –

+0

Android KeyStore доступен с Android 18 (4.3 JellyBean MR2). В зефире доступно разрешение на использование ключа с отпечатками пальцев. Около 85% пользователей, по крайней мере, в этой версии https://www.statista.com/statistics/271774/share-of-android-platforms-on-mobile-devices-with-android-os/ – pedrofb

+0

Извините, re право. Перечитав https://developer.android.com/training/articles/keystore.html, я нашел его. –

1

Вы верны. Большинство экспертов по безопасности скажут вам, что нет абсолютно безопасной системы. Правильный способ подумать об этом - это уровень ресурсов, который злоумышленник должен использовать для взлома системы.

Затем вы балансируете свои меры безопасности между стоимостью данных и другими соображениями, такими как сложность вашего решения и другие затраты.

Выработать на ваших примерах, если вы не беспокоитесь о законного владельца/пользователя телефона, являющегося взломщик, вы можете оценить следующим образом:

  1. Укоренение телефон является риск, если злоумышленник получает физическое владение. Чтобы оценить, насколько ценны данные по сравнению с вероятностью потери или кражи телефона, человек, который затем ухаживает за тем, чтобы получить ключ и знать, как укоренить телефон.
  2. Обман секретной информации, как правило, считается бесполезным. Я лично думаю, что это немного зависит от обстоятельств. Здесь, опять же, злоумышленнику нужно будет укоренить телефон и т. Д. Проблема с скрывающей секретной информацией заключается в том, что требуется только один человек, чтобы выяснить, что вы сделали, и сделать эту информацию доступной, чтобы полностью потерять ценность при этом.
  3. Если у вас есть ключ-регистратор, какая у вас безопасность?

Вы должны посмотреть на возможность использования «безопасного элемента». См. this post в разделе «Обмен файлами безопасности» для получения некоторой полезной информации.

+0

Я думаю, что балансирование важно, но ... –

 Смежные вопросы

  • Нет связанных вопросов^_^