Encryption 打开具有特定用户的加密文件
我需要解密一个文件,而不将该文件的解密数据保存在计算机上。我会解释的。 假设我的文件服务器上有一个加密的文件(加密算法是不相关的) 现在,当文件被打开事件触发时,我调用以下代码:Encryption 打开具有特定用户的加密文件,encryption,Encryption,我需要解密一个文件,而不将该文件的解密数据保存在计算机上。我会解释的。 假设我的文件服务器上有一个加密的文件(加密算法是不相关的) 现在,当文件被打开事件触发时,我调用以下代码: public void FileOpenning() { // Only "Foo" can decrypt and see/change the content of the file if (Environement.CurrentUser == "Foo") { // Di
public void FileOpenning()
{
// Only "Foo" can decrypt and see/change the content of the file
if (Environement.CurrentUser == "Foo")
{
// Display the encrypted file to the user
}
else
{
// Do nothing, the user can't open the file.
}
}
现在,我想向用户显示文件,而不实际解密文件本身,如果我这样做,任何有权访问文件服务器的人都可以查看该文件,因为它已经被解密(如您所见,只有“Foo”可以解密并查看该文件的内容)
我考虑的另一个选择是将解密后的数据保存在一个临时文件中,但它仍然不安全,再次更改文件内容并保存它会很复杂,因为我需要再次加密文件。。
关于如何处理它,有什么建议吗?听起来你的意思是加密文件(EF)在计算机上的某个地方 云服务器(CS),您有一个安全的专用服务器(SS),而不是 云,握着钥匙。因此:
这就是你的意思吗?好吧,按照你写这篇文章的方式,听起来服务器本身就有密钥。这意味着任何具有足够访问权限的人都可以随时读取文件。你需要澄清你的威胁模型。其实,加密/解密的工作方式并不重要,我要说的更多的是,只有特定用户才能看到加密内容的概念。你需要一个通用的解决方案,独立于加密算法。我明白。这并不意味着密钥管理无关紧要。您说过“任何有权访问文件服务器的人都可以查看该文件,因为它已经被解密”。这意味着攻击者可以忽略文件权限。此类攻击者还可以读取服务器用于解密文件的密钥。因此,无论是在内存中还是在磁盘上解密文件,都无关紧要;不管怎么说,你还是用水管冲洗。看到了吗?好吧,现在我明白你的意思了。我会再解释一遍。我们仍然没有计划整个体系结构,但我猜持有密钥的服务器将是另一台服务器。我猜我们将安装此服务器,使其具有顶级保护。我说的是对文件共享(如netapp)的访问,因此,如果攻击者可以访问文件共享,并不意味着他可以访问密钥。我担心两个问题:1。将获得文件权限但他没有打开该文件的密钥的人。2.能够监视文件共享的攻击者。