如何在传输和存储中保护或(确保完整性)Web 数据?

信息安全 加密 tls 应用安全 网络服务器 ssls带
2021-08-20 03:31:59

考虑(通常情况)您拥有一个购物车网站并托管在 Internet 上,现在,您的托管公司为您提供数据库来存储您的数据。如果谈论安全性,我们需要它:

  • 保护服务器上的文件和文件夹(访问权限)。
  • 数据库:使用密码保护数据库。
  • 编程:保护购物车(保护 Web 应用程序)。
  • 传输中的数据:当客户端发送到服务器时以及服务器向客户端发送响应时(表单、订单历史记录、用户资料等),保护传输中的数据,例如(用户注册、付款、发票等)

最大的问题:如何确保完整性?

  • 确定修改或试图修改数据的未经授权的访问?
  • 确定尝试或执行未授权操作的授权访问?
  • 确定整个系统的完整性

DB 例如,保存在 MySQL 和 MSSQL 等数据库中的数据没有加密,它在 DB 服务器上被认为是安全的,对于拥抱行也是如此,加密会降低性能,如果攻击者访问 DB 服务器,他也可以获得私钥.

文件和文件夹假设我们加密了所有执行关键操作(如访问控制、数据保存等)的文件,现在,无论如何,如果攻击者可以访问服务器,他可以添加一行来发送所有文件($ _POST、$_SESSION、$_COOKIE 和 $_GET)发送到电子邮件。

传输中的数据 考虑实现 SSL,但中间人攻击可以获得流量的副本(这是可能的)。现在我和 stackexchange.com 之间有多少个网络?数千!Me -> My ISP (Clients -> Core -> Border Routers -> Foreign ISP -> Foreign ISP -> Stackexchange Data Center -> Some Cluster or any other model -> Stackexchange) 我们如何确保这些网络之间的数据不修改的?

只看这张图!目前可用的不仅仅是想法: SSL 攻击

在这一点上:我问是否有任何机制可以为始终依赖于传输中数据的 Web 应用程序提供更好的安全性?我希望得到一些答案,让我对安全感到悲伤:(

2个回答

使用来自受信任 CA 的正确签名的 SSL 证书,使用 SSL 对所有内容进行加密。Web 服务器/证书颁发机构不应泄露其私有 SSL 密钥,同样,Web 浏览器应该只信任最少量的受人尊敬的证书颁发机构。

这可以防止窃听者解密/更改1通信。

1他们可能会丢弃数据包或随机更改数据包,这很有可能会导致数据包无法解密(相当于丢弃数据包)。

Tineye 说您的图片来自:http ://www.edecision4u.com/HTTPS-SSL.html ,其在线文档位于:http://www.edecision4u.com/data/DG-HTTPS.SW.Specs。 2012.doc(当心 doc 文件)。本文档特别说明了它的限制:

注意:证书错误警告将出现在目标用户 Web 浏览器中。这个问题可以通过拥有自己的受信任的证书颁发机构 (CA) 来解决。如需更多信息,请联系决策组。

因此,要使用此产品,您必须有一个受浏览器信任的 CA 才能为您的 MITM 攻击签名证书,而有效的 CA 不应该这样做;但是侵入性政府可能能够做到(特别是如果您的浏览器信任所有默认 CA)。

除了 TLS/SSL 来确保 Web (HTML) 文档本身的完整性之外,我们现在还有一些方法来确保嵌入在文档中的子资源的完整性——特别是脚本和样式表。

本质上,这些机制使您能够确保文档的嵌入子资源:

  • 未进行任何意外的操作/更改(例如,在包含的 CDN 处更改)

  • 不是由某些(恶意)第三方注入到文档中,而是由控制服务器(来源)的人故意放入文档中