app*_*yip 8 c# authentication web-services password-encryption
我正在尝试创建一个桌面应用程序,它将更新发送到我正在开发的网络服务。
理想情况下,应用程序只需配置一次并部署到网络共享。配置应用程序时,用户将输入用于在 Web 服务中进行身份验证的密码。之后,将创建一个令牌以用于将来的连接。
这将允许任何有权访问网络共享的计算机(即使它不是配置应用程序的计算机)只运行应用程序(将连接到 Web 服务),而无需输入任何凭据(因为令牌具有已被保存)。
以下是我尝试/思考过的一些事情:
使用 C# 之类的方法序列化令牌SecureString
并将其存储在文件中:这是我所拥有的最好的方法。但显然,如果有人获得了密钥文件的访问权限,则逆转非常简单。
这个答案建议使用Windows 数据保护 API (DPAPI)(在 C# 中,ProtectedData
该类),但显然,这将只允许最初保存凭据的用户访问它们,这是行不通的,因为我必须访问受保护的凭据。来自多个用户/设备的数据。
将令牌作为参数传递给应用程序:这只会更改我要存储令牌的位置(例如,在调用程序的批处理文件或操作系统任务上),但我认为它不再有效安全的。
由于用户不是机器的管理员(这是一个基本假设),因此有很多方法可以向她隐藏信息。
我的建议是:
这是一些图形解释:
由于使用受保护数据(Windows 数据保护)加密的数据只能由对其进行加密的 Windows 用户解密,因此登录用户将无法读取“特殊用户”数据。
归档时间: |
|
查看次数: |
6440 次 |
最近记录: |