Secure cross-platform storage options using Xamarin
我目前正在将Xamarin作为开发平板电脑应用程序的一个选项进行审查(目前的目标是iOS和Android,但将来会考虑将其移植到Win8平板电脑上)
要存储的数据非常敏感,所以安全性是我的主要关注点。
到目前为止,我正在考虑两种选择:
a)sqlite+sqlcipher:假设win8平板电脑支持sqlite,sqlcipher也可以在win8上工作。
b)独立存储+dpapi:假设此dpapi方法在Mono平台上可用,并且在Win8平板电脑上仍然可用。
我担心的是,为了安全地存储密钥,我想我仍然需要为每个平台提供单独的实现(iOS上的数据保护,我仍在审查Android和Win8平板电脑的选项)。
是否有任何跨平台解决方案可以安全地存储加密密钥,或者其他完全跨平台的方法来安全地存储数据?如果没有完全跨平台的解决方案,那么在每个平台上使用任何推荐的选项?
我已经写了一个插件来处理安全存储。它跨平台工作,并在每个平台上本地保护数据。它是开源的。
请检查一下。https://www.nuget.org/packages/sameeriotapps.plugin.securestorage/
博客:https://sameer.blog/2018/01/19/whats-new-in-secure-storage-2-0/
如果有任何问题,请告诉我。
我们在解决方案中使用sqlite+sqlcipher,它在跨平台环境中工作得非常好。如果我没有弄错,那么使用sqlcipher没有问题,因为它使用的是aes。我建议你无论如何检查一下,但我不认为这是个问题。sqlcipher本身并不会使数据无法读取,如果允许使用sqlcipher的密码选项,可能会出现问题,但仍然如此。对于AES来说,获得许可的过程非常简单,可以在几天内完成。