0

我正在 vb.net 中编写一个程序,该程序需要用户登录才能使用该应用程序。安装程序时创建主用户,类似于安装时 windows 的工作方式。

主用户可以向程序添加其他用户。我已经知道我应该存储加密的密码。我的问题是,我应该在哪里存储用户名和密码?注册表、隔离存储或 .config 文件。我不希望任何用户能够修改/删除该文件,因为其他用户显然无法登录。此外,任何登录计算机的用户都应该可以访问该文件。

电脑不保证能联网,所以必须本地存储。

谢谢

4

2 回答 2

2

说实话,如果有人有意志力去寻找他们会找到的文件,那么存储可以帮助提高安全性,但我会专注于文件本身的内容。

您可以尝试将应用程序的数据存储为加密文件,这可以阻止业余尝试,但是当您使用 .net 框架时,您的程序可能会被反编译,并且任何对称加密算法都可能变得无用。

我认为你最好的选择是根据程序所在的计算机生成一个种子,如果解密失败,打电话回家或进入锁定状态。

另一种选择是存储加密(使用对称密钥加密)文件和哈希文件(可能在不同位置)。如果加载文件的哈希与您的程序可以调用的哈希文件不匹配(如果您有一个 home 调用)。

这只是一个想法,还没有真正尝试过这样的事情。

于 2011-04-18T14:57:57.583 回答
0

如果您无法在计算机上以任何方式使用 Windows 用户/凭据,那么确实没有绝对的方法可以防止文件被删除/更改,因为计算机上的任何人都具有与主用户相同的访问权限,谁需要修改文件的权限,以便他通过程序添加用户。

唯一确定的方法是让主用户使用不同的用户名登录,并设置该文件/文件夹的文件权限,以确保只有主用户对文件具有修改权限(以及其他用户帐号无权修改权限)。我知道您说它在您的环境中不起作用(这是?)但是您可以通过您的代码创建用户并在不同的凭据下运行东西,而无需用户登录任何不同的帐户。

我能想到的唯一疯狂的方法是在计算机上创建一个服务,一旦它开始运行,它就会打开并持有一个带有共享集的文件的句柄,这样没有其他进程可以打开文件进行写入。您当然必须以某种方式锻炼主要用户才能添加用户。

于 2011-04-18T21:35:51.390 回答