为应用程序保密数据
Keeping data private for an application
假设我有一段数据想对在用户共享的安全上下文下运行的应用程序保密,是否可以通过某种方式对用户保密?
比如说我有一个远程服务器的 public 密钥,它被应用程序使用并存储在磁盘上(在 file/database 中,无论如何),是否可能以某种方式阻止运行应用程序的用户更改 public 键(缺少对应用程序中的值进行硬编码)?
我看不到加密可以解决问题,因为用户可以读取应用程序可用的加密密钥。如果数据保存在那里,用户还可以读取数据库凭据。
是否有可能以任何方式允许应用程序在同一安全上下文中保留来自其他 users/applications 的一段数据,以便只有应用程序可以更改它?
桌面应用程序通常 运行 在用户的安全上下文中。这意味着应用程序可以访问允许用户访问的资源 (files/sockets/databases)。
因此,如果有其他应用程序,运行处于相同的安全上下文中,它们将可以访问相同的资源。
您当然可以在您的应用程序中使用加密来保护某些数据的私密性,但是所使用的加密密钥必须存储在应用程序中的硬编码中(并且应用程序 运行ning 始终处于相同的安全上下文中具有对您的可执行文件的读取权限,否则您将无法启动该应用程序)或存储在应用程序的配置中。这意味着在同一安全上下文中 运行 的其他应用程序可能很难,但并非不可能找到该加密密钥。
因此,在相同的安全上下文中,运行ing 中的其他应用程序实际上不可能保持数据的私密性。
服务器应用程序通常不会 运行 在用户的安全上下文中。因此,如果您的所有服务器应用程序 运行 在不同的帐户下,则可以保持数据的私密性。但是对于同一个账号下的应用运行ning,同样存在同样的问题。
假设我有一段数据想对在用户共享的安全上下文下运行的应用程序保密,是否可以通过某种方式对用户保密?
比如说我有一个远程服务器的 public 密钥,它被应用程序使用并存储在磁盘上(在 file/database 中,无论如何),是否可能以某种方式阻止运行应用程序的用户更改 public 键(缺少对应用程序中的值进行硬编码)?
我看不到加密可以解决问题,因为用户可以读取应用程序可用的加密密钥。如果数据保存在那里,用户还可以读取数据库凭据。
是否有可能以任何方式允许应用程序在同一安全上下文中保留来自其他 users/applications 的一段数据,以便只有应用程序可以更改它?
桌面应用程序通常 运行 在用户的安全上下文中。这意味着应用程序可以访问允许用户访问的资源 (files/sockets/databases)。
因此,如果有其他应用程序,运行处于相同的安全上下文中,它们将可以访问相同的资源。
您当然可以在您的应用程序中使用加密来保护某些数据的私密性,但是所使用的加密密钥必须存储在应用程序中的硬编码中(并且应用程序 运行ning 始终处于相同的安全上下文中具有对您的可执行文件的读取权限,否则您将无法启动该应用程序)或存储在应用程序的配置中。这意味着在同一安全上下文中 运行 的其他应用程序可能很难,但并非不可能找到该加密密钥。
因此,在相同的安全上下文中,运行ing 中的其他应用程序实际上不可能保持数据的私密性。
服务器应用程序通常不会 运行 在用户的安全上下文中。因此,如果您的所有服务器应用程序 运行 在不同的帐户下,则可以保持数据的私密性。但是对于同一个账号下的应用运行ning,同样存在同样的问题。