【问题标题】:Is the filesystem for Raven DB encrypted?Raven DB 的文件系统是否加密?
【发布时间】:2012-02-15 18:31:39
【问题描述】:

我只是想确定 Raven DB 使用的文件系统上的文件是否已加密?有人可以直接打开文件系统上的文件并将它们从二进制转换为 ASCII,还是加密?

我正试图说服我们的管理层给 RavenDB 一个机会,但他们担心安全问题。他们举了一个例子,你不能只打开一个 MS SQL db 文件,将它从二进制转换为 ASCII,然后读取它。所以我正在尝试验证 RavenDB 是否也阻止了这种事情?

【问题讨论】:

标签: encryption ravendb


【解决方案1】:

嗯,我个人认为,如果你的管理层提出这样的稻草人论点,他们会很糟糕。

回答您的问题:不,您不能只使用记事本打开 raven 数据文件夹中的任何文件,然后期望看到有意义的内容。所以,对于那些不知道如何编程的人来说,是的,他们是加密的

为了说服您的管理层,您可以告诉他们 raven 使用与 Microsoft 的 Exchange Server 相同的加密算法。如果他们想更深入地挖掘 - 它被称为 Esent。

【讨论】:

  • 嗯,这是一个相当大的企业级环境,他们对任何新技术的第一个回答是“不......你说什么?”我的组织有超过 50,000 名员工,像这样的新事物必须满足一些非常严格的标准。我只是希望能够用它来试点一个新项目,向他们展示好处,但我必须先获得批准。
  • 目前,组织批准用于新应用程序的数据库只有 MS SQL、Oracle 和 Teradata。而且据我了解,它们都支持 db 级加密。
  • Amanda,如果您想使用加密算法进行 true 加密(尽管您的管理层实际上并不期望这样做),您可以使用类似的东西轻松加密整个数据库操作系统级别的 TrueCrypt,或在文档级别采用另一种方法:daniellang.net/document-level-encryption-in-ravendb
  • Erm 记事本可能不会显示任何内容,但将 EseDbViewer 指向它 (woanware.co.uk/?page_id=89),您会看到很多。此外,文档本身存储为 BSON(默认情况下),反序列化并不难。
  • @DanielLang 在您的回答中,“加密”这个词的用法不好。我认为您应该将其替换为“混淆”。 Esent 默认不使用加密算法,它只是一个二进制文件。
【解决方案2】:

RavenDb 存储未加密。您可以使用记事本打开它并查看一些数据。同时我也不认为 MS SQL 默认加密文件。

【讨论】:

  • 这是关于 MS SQL 的,是的,您可以打开它。
  • 迈克,事实并非如此。如果您在记事本中打开 raven sdata 文件夹下的“数据”文件,您将看不到任何人类可读的内容。
  • @DanielLang 你可以,我可以把截图发给你。打开它并尝试找到“Raven”这个词,这会将您带到有数据的地方。
  • @Mike,更好地使用来自 woanware.co.uk/?page_id=89 的 EseDbViewer
【解决方案3】:

RavenDB 在 2012 年年中增加了加密功能。获取 RavenDB 的“bundle:encryption”,然后确保您的密钥在 .NET 配置文件或其他文件中正确加密。
http://ravendb.net/docs/article-page/3.0/csharp/server/bundles/encryption http://ayende.com/blog/157473/awesome-ravendb-feature-of-the-day-encryption

【讨论】:

    【解决方案4】:

    SQL Server 2008 确实有加密功能,但是你需要事先准备好数据库实例来启用它,然后创建启用加密的数据库,然后存储数据。

    如果您还没有,可以将数据库从机器上复制下来,然后在可以访问它的工具中打开它。

    使用 RavenDB,您可以勾选方框,然后出发! (虽然我不知道将备份移动到另一台机器并恢复它们的复杂性)。


    就你的管理层提出的观点而言,这是一个相对毫无意义的论点。

    如果您可以直接访问数据库的文件,那么游戏就结束了。 加密是您最后一道防线。

    [我不认为黑客会在记事本中打开一个 40GB 的文件.. 这很愚蠢 :-)]

    因此,您不必以最坏的情况结束,而是必须查看可以实施的控制措施,以达到该级别的关注程度。

    您需要弄清楚某人如何访问该文件(以及与所有缓解技术相关的成本):

    • 如果他们窃取服务器或其中的磁盘怎么办?
    • 如果他们可以通过文件共享访问数据库怎么办?
    • 如果他们可以登录数据库服务器呢?
    • 如果合法员工窃取数据怎么办?

    物理访问

    限制对服务器的直接访问可以减少对服务器的窃取。您必须考虑所有预防性控制(门锁、身份证、虹膜扫描仪)、侦探控制(警报系统、闭路电视)以及您想花多少钱关于那个。

    云计算为何如此吸引人!

    访问控制

    然后,您必须通过 RDP 进入计算机或通过 Active Directory 远程连接到其文件系统,以便只有少数人可以访问它 - 可能是 IT 支持和数据库管理员。作为管理员,他们应该在组织内接受审查和信任(通过信息安全治理框架)。

    如果您还想进一步降低风险,可以像银行那样实施 2 Factor Authentication,这样即使知道用户名和密码也不会让您进入服务器!

    然后,您公司的员工就有可能以合法和非法的方式访问它。我的意思是,当用户无论如何都可以查询时,为什么还要麻烦购买保安、狗和巨大的栅栏!您只允许对数据的某些部分进行某些操作。

    总而言之……“纵深防御”是您对它的回应方式。总是有可以识别的风险,但是您需要考虑到位的控制数量,如果风险太高,请添加更多。但一般来说,向您的组织添加更多控件会降低系统的用户友好性。

    【讨论】:

      猜你喜欢
      • 2012-09-20
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多