我想知道,云托pipe提供商在客户不信任托pipe提供商与应用程序中的数据的情况下是否可以为云托pipe提供商运行应用程序。 客户将上传虚拟机映像(或类似的),主机将运行它,但不能读取任何数据。
这似乎是不可能的,因为访客必须解密内存中的数据才能使用它,并且主机可以在需要时直接读取虚拟机的内存。
有什么窍门来解决这个问题? 还是任何一种局部解决scheme,让主机难以访问虚拟机中的数据?
编辑:我意识到,客人可以很容易地存储它永远不会解密的encryption数据,就像从一个用户传递给另一个encryption的电子邮件。 我想知道客人可以读取的数据是否对主机不可读。
总之,没有。
根据定义,主机可以访问客户访问的所有数据。 包括内存,磁盘,networkingcaching,CPUcaching等。
客人需要保持解密密钥可用,以便它可以读取encryption块(通常在RAM中),在那里可以容易地被主机读取。
为了回应上面的评论,如果你不信任主机,find你信任的另一个主机,或者自己托pipe东西。
这不像看起来那样不可能。 同态encryption系统允许对encryption数据执行计算操作,而不需要先解密。
但是,对于一般用法,似乎并不特别实用(至less目前为止)。 一方面,即使到目前为止已经开发的“完全”同态密码系统只计算二进制电路的输出,而不是计算机程序,而二进制电路是完全一般的,但是你必须重新解释任何计算想成为这种forms,以执行它。 即使如此,它的效率也不是很高:根据维基百科的文章,“2014年末,使用HElib重新实现了对AESencryption电路的同态评估,在120个input上评估时间仅为四分钟,平均每次input时间约2秒“。 与使用AES加速的英特尔CPU报告的性能相比:[本文]报告在AES-128-CBC中启动了一个2.60GHz Haswell CPU,速度达到663.8 MiB / s(如果我已经完成了math计算)比同态encryption计算快9000万倍。