天空中的云变幻无穷,网络世界的“云”也令人应接不暇:计算,存储,平台,弹性的,公用的,私有的… 。
简单的说,虚拟私有云计算(VPC)之于公共云计算有如虚拟私有网络(Virtual Private Network, VPN)之于公共网络。但是因为云计算引发的疑问(和困惑)似乎远多于网络,上述类比稍嫌粗糙。我们可以认为网络扮演了一个“管道”的角色,加密后的数据 仍然可以通过“管道”有效传输。因此我们可以用密码学的方法在公共网络中实现VPN(当然还要结合身份认证技术)。然而对于云计算来说,仅仅依赖加密解密 和身份认证技术并不能在公共的“云”中虚拟一片私有的“云”或VPC。云服务中的处理器只能对以明文形式存在的代码和数据进行计算,加密的东西只能是在网 络上或磁盘中。在内存中的内容不能是密文。
真正的VPC需要对云服务提供者的内存储器和CPU的寄存器作一种非加密方式的保护,使得租客的代码和数据在云服务提供者的内存和CPU的寄存器中以明文形式被处理时仍然得到私密性及完整性的保护,避免被其它租客或服务提供者窃取。现有很多努力针对这个问题,比如大家所熟知的基于虚拟机实现的不同虚拟机之间的隔离技术。然而VPC还存在其它更深层的问题。其中的首要问题就是这些技术是否能够与现有的商用操作系统(所谓商用现货技术,Commercial Off The Shelf, COTS)一起工作。
大家所熟知的不同虚拟机之间的隔离技术并不能和商用操作系统有效结合,原因是虚拟机中的商用客户操作系统正是最大的安全隐患:大量的黑客技术正 是通过商用操作系统来存在的漏洞来攻击它所服务的应用程序。所以我们需要更细粒度的隔离机制:将商用操作系统与应用程序的代码和数据隔离开来。从上述讨论中,你也许感受到了我对服务提供者强烈的不信任。的确,这正是要讨论的第二个问题。事实上,既然VPC虚拟私有云计算相比公共云计算提供更多的增值服务, 那考虑服务提供商的安全隐患并加以防护就是题中应有之意。处理这种场景的一个已知并且现实的技术就是可信计算。到此为止,我大概已经从两千英尺的高度对虚 拟私有云计算或VPC做了一番描述。