场景:我们的托管服务器托管我们的专用服务器。他们正在运行Web应用程序,控制台应用程序以及Sql Server Express版本的数据库。
应用程序将数据加密/解密到数据库。我们还将密钥存储在他们的服务器中。因此,从理论上讲,托管服务提供商可以访问我们的密钥并解密我们的数据。
问题:我们如何阻止托管服务提供商访问我们的数据?
我们不希望托管服务提供商的用户只需登录Sql Server并查看数据。
我们不希望框中包含未加密的数据库文件副本。
缓解没有。 1:加密app.configs以不存储纯文本数据库用户名和密码。
缓解没有。 2:在Sql Server数据文件夹上打开EFS。我们可以使用TDE,但Sql Server是网络版版本,托管公司将向我们收取使用企业版的大笔费用。
如果你们有任何关于上述的建议,我真的很感激。
答案 0 :(得分:0)
你可以帮助减轻它,但预防可能是不可能的。
通常认为,如果攻击者可以物理访问该计算机,那么他们拥有该计算机上的所有内容。
如果这是一个问题,您应该考虑购买服务器,虚拟服务器,或使用托管中心,提供自己的机器或完全托管它。
购买服务器,虚拟服务器或共置自己的硬件时,服务提供商的操作系统上没有帐户。如果您使用加密文件系统,并且只能通过SSH(SSL / TLS)访问您的盒子,那么他们将无法轻松访问您计算机上未发送到网络的任何数据。
唯一可靠的方法是将您自己的硬件放在您自己的安全位置,并将网络带到您的盒子中。
答案 1 :(得分:0)
可以进行数据库加密,使客户端进行解密(但如果对索引进行排序,服务器显然需要能够确定索引中事物的相对顺序)。我无法想到我头顶的一个环节。但是,如果客户端是Web应用程序,那么您无能为力。
还有各种类型的同态加密,但我不确定是否有任何可以多项式扩展的东西。无论如何,开销都是巨大的。
答案 2 :(得分:0)
我很好奇你是否有理由不相信你的托管服务提供商 - 或者这只是一个场景?
如果这是您必须担心的事情,听起来您应该关注其他提供商。保护自己免受托管合作伙伴的影响似乎适得其反,IMO。