假设我有一段数据要保持对在用户共享的安全上下文下运行的应用程序的私有性,是否可以以某种方式保留用户的数据?
假设我有一个应用程序使用的远程服务器的公钥并存储在磁盘上(在文件/数据库中,无论如何),是否可以以某种方式保持用户运行应用程序更改公钥(缺少硬编码应用程序中的值)?
我没有看到加密解决问题,因为用户可以读取应用程序可用的加密密钥。如果数据保存在那里,用户也可以读取数据库凭证。
是否可以允许应用程序在同一安全上下文中保留来自其他用户/应用程序的数据,以便只有应用程序可以更改它?
答案 0 :(得分:3)
桌面应用程序通常在用户的安全上下文中运行。这意味着应用程序可以访问允许用户访问的资源(文件/套接字/数据库)。
因此,如果有其他应用程序在同一安全上下文中运行,则他们可以访问相同的资源。
您当然可以在应用程序中使用加密来保持某些数据的私密性,但所使用的加密密钥必须以硬编码方式存储在应用程序中(并且在相同安全上下文中运行的应用程序始终具有对可执行文件的读取权限或你将无法启动该应用程序)或存储在应用程序的配置中。这意味着在同一安全上下文中运行的其他应用程序可能很难找到该加密密钥,但并非不可能。
因此,不可能将数据与在同一安全上下文中运行的其他应用程序保持私有。
服务器应用程序通常不在用户的安全上下文中运行。因此,如果所有服务器应用程序都在不同的帐户下运行,则可以将数据保密。但对于在同一帐户下运行的应用程序,存在相同的问题。