【问题标题】:Xamarin.Android Secure Storage (Keystore)Xamarin.Android 安全存储(密钥库)
【发布时间】:2016-07-06 22:08:54
【问题描述】:

我想在 Android KeyStore 中存储一些敏感数据(刷新令牌)。

我打算使用 Xamarin Labs Sample ISecureStorage 实现

KeyVaultStorage

但是他们使用设备 ID 作为密码....这不是一种安全的方式吗?!

在他们利用 Android KeyStore 的 Xamarin.Auth 库中......他们将密码硬编码

AndroidAccountStore

这是怎么回事?!我错过了什么吗?

在 iOS 上要简单得多,因为 KeyChain 依赖于在 iOS 上强制执行的 PIN 屏幕。安卓的解决方案是什么?不要说共享首选项。我需要更安全的东西(KeyStore!!)

【问题讨论】:

    标签: android xamarin keystore android-keystore


    【解决方案1】:

    保留硬编码值是为了向后兼容,但添加了 API,因此用户可以将任意密码作为字符串提交。如果不传递密码,将使用旧的硬编码字符串,这是安全问题。

    计划将 [Obsolete] 属性添加到不安全的 API。

    由用户决定如何生成/传递密码(UI 或不像您提到的 DeviceID 那样安全)。

    关于实验室:Evolve16 的那些实验室是会前培训吗?

    如果是。这些实验室的核心现在集成在 Xamarin.Auth 中,因此用户可以直接通过 Xamarin.Auth 使用 SecureStorage 和其他实用程序 (CryptoUtilities)。

    【讨论】:

    • 这里有什么建议输入密码。似乎很多示例都乐于传入设备 ID。这背后有什么原因吗?即 KeyStore 是否只能由创建它的应用程序线程访问?所以即使你有密码,也没关系? ....
    • 密钥管理始终是问题;如果您传入设备 ID,您实际上是将钥匙放在储物柜旁边,所以基本上唯一安全的方法是使用用户的输入来解锁它
    • 谢谢罗伊!原生 Android Keystore Provider 如何克服这个限制?
    猜你喜欢
    • 2015-11-24
    • 2011-10-14
    • 2011-04-27
    • 2014-10-18
    • 2015-07-04
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多