如何在应用程序中存储机密
本文关键字:存储 机密 应用程序 | 更新日期: 2023-09-27 18:26:37
我在这里回答了一个建议使用 .NET的加密库(例如AesManaged(当我想知道时:"但是应用程序使用的密钥应该放在哪里?
我有一个需要存储在应用程序中的秘密,该应用程序应该由应用程序使用,但用户不知道,我不知道该怎么做。
我所说的秘密类型不是与用户相关的东西(例如,用户对第三方服务的密码(,而是与应用程序或开发人员相关的,用户不应该知道(例如,如果用户知道应用程序的OAuth客户端机密,他可以冒充开发人员反对第三方服务(。
我知道 Windows 的凭据管理器、数据保护 API 等,但它们在这种情况下没有帮助,因为它们旨在保护用户的机密,而且它们中的大多数都是运行时解决方案,而我需要保护的是"常量"和"编译时"。
我完全知道我将采取的任何操作只会延迟熟练且可靠的用户访问机密,因为如果应用程序必须以明文形式访问它,用户也可以以某种方式访问它。我正在寻找的是防止临时用户"在记事本"中打开应用程序并获取机密。
我完全意识到,任何类型的措施都只是暂时阻止熟练和坚定的用户访问此类机密,我不是在要求问题的防弹解决方案,我对除了编写var myClientSecret = "MySuperSecretClientSecretKey";
之外还有哪些选择感兴趣存储此类信息。
var myClientSecret = Encoding.UTF8.GetBytes("MySuperSecretClientSecretKey")
是唯一的选择吗?
框架是否提供了任何帮助我完成此任务的内容?
将机密存储在智能卡中。在用户购买软件时向其发送智能卡。
无法读取或克隆存储在智能卡中的密钥。