Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption 打开具有特定用户的加密文件_Encryption - Fatal编程技术网

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),而不是 云,握着钥匙。因此:

  • 用户foo建立到SS的SSL/TLS连接并进行身份验证 他们自己有密码或其他什么

  • 用户foo请求该文件

  • SS确保用户foo有权访问该文件

  • SS从CS检索EF并在本地解密。)没关系 SS是在内存中解密EF还是将明文存储在SS上 磁盘,因为我们必须假设SS是安全的。)

  • SS将明文传输给用户foo。SSL/TLS连接 确保没有人可以监听

  • 当然,明文最终会出现在用户foo使用的机器上。 这是不可避免的。可能有一些方法只将其保存在RAM中,而不是打开 磁盘,取决于它的大小和查看方式


    这就是你的意思吗?

    好吧,按照你写这篇文章的方式,听起来服务器本身就有密钥。这意味着任何具有足够访问权限的人都可以随时读取文件。你需要澄清你的威胁模型。其实,加密/解密的工作方式并不重要,我要说的更多的是,只有特定用户才能看到加密内容的概念。你需要一个通用的解决方案,独立于加密算法。我明白。这并不意味着密钥管理无关紧要。您说过“任何有权访问文件服务器的人都可以查看该文件,因为它已经被解密”。这意味着攻击者可以忽略文件权限。此类攻击者还可以读取服务器用于解密文件的密钥。因此,无论是在内存中还是在磁盘上解密文件,都无关紧要;不管怎么说,你还是用水管冲洗。看到了吗?好吧,现在我明白你的意思了。我会再解释一遍。我们仍然没有计划整个体系结构,但我猜持有密钥的服务器将是另一台服务器。我猜我们将安装此服务器,使其具有顶级保护。我说的是对文件共享(如netapp)的访问,因此,如果攻击者可以访问文件共享,并不意味着他可以访问密钥。我担心两个问题:1。将获得文件权限但他没有打开该文件的密钥的人。2.能够监视文件共享的攻击者。