Web安全系列——敏感信息泄露与加密机制

一、前言

数字化时代,越来越多的数据正在被传输到Web应用程序中,这其中不乏个人或机构的敏感信息。

如果Web应用程序未采取正确的加密机制,这些信息可能会遭到窃取或篡改,从而使用户数据或机构的财产受到威胁。

二、加密机制失效(敏感信息泄露)的危害

  1. 窃取用户利益:攻击者将有可能窃取个人信息(信用卡号、密码、社保号等),然后利用这些信息窃取用户利益。
  2. 用于欺诈和其他不良目的:通过窃取敏感信息,攻击者可以使用这些信息进行诈骗、盗取资金、冒充身份,破坏商业竞争以及散播恶意病毒和其他不良软件等。
  3. 侵犯隐私:Web应用程序的失效,可能会导致用户隐私被侵犯,由于不被允许收集或使用的个人用户信息被泄露或滥用,给用户带来相当大的心理和经济压力。
  4. 法律和制度性风险:失效的加密机制可能会影响企业的声誉,并违反行业和政府制度,迫使企业承担法律责任。
  5. 品牌价值减少:针对数据泄露和失效的加密机制的公众曝光,可能会导致品牌价值减少,加剧企业的经济衰退。
  6. 客户信誉度下降:数据泄露和加密机制失效可能导致客户对企业失去信任,影响企业的长期发展。

三、Web应用中哪些环节需要加密机制

Web应用中,加密机制需求贯穿整个业务处理的各个环节

  • 输入加密:
    • 如用户输入密码等敏感信息时不应该再页面明文展示。
  • 传输加密:
    • 客户端与服务端之间的通信需要使用HTTPS等协议进行加密传输
    • 服务端各个组件之间的通信也需要考虑加密机制需求。
  • 后端逻辑处理:
    • 后端服务在做逻辑处理时也需要有一定的加密机制,如敏感信息不应明文打印到日志中。
  • 存储加密:
    • 数据库中的敏感信息字段需要进行加密存储。
    • 文件、图片、报备等数据存储是要严格控制权限,或加密。
  • 输出加密(脱敏):
    • 返回给用户的信息需结合业务需要进行加密、脱敏处理。
    • 很多应用程序会将后台错误信息回显给用户,这里需要注意不要讲系统敏感信息(如数据库卡的IP地址、库表名称)泄漏给用户

四、加密机制失效的情景和案例

1. 加密机制失效的常见情景&攻击方式:

  1. 未妥善保管密钥:密钥是加密的关键,如果密钥可以被恶意攻击者获取,就可以轻松地突破加密。因此,安全存储和管理密钥至关重要。
  2. 弱密码、字典攻击或暴力破解:当使用弱密码或雷同密码,暴力破解可以通过尝试多个密码组合来破解它们。主动实施具有强密码标准的密码策略有助于防止密码猜测攻击。
  3. 数据库或文件系统被危险覆盖:如果攻击者通过某种方式直接访问数据库或文件系统,而不需要通过Web应用程序,那么加密机制就会失效。
  4. 中间人攻击:中间人攻击是窃取数据或操纵双方之间的信息交流过程的攻击。攻击者可能会假冒用户访问受保护的页面,窃取证书媒介,使得加密的通信可以被中途截获和篡改。
  5. 漏洞注入攻击:注入攻击后,攻击者可以在请求中插入恶意代码或指令,从而绕过加密机制并且执行任意操作。
  6. 系统或库漏洞:漏洞可能在应用程序的任何一个环节中出现。这可能包括操作系统,Web服务器,数据库服务器,Web应用程序平台或应用程序代码等多个方面,造成加密机制失效之后,会让攻击者突破加密系统访问到数据。
  7. 缺乏数据备份和恢复准备:在遭受攻击时,缺乏恢复准备的Web应用程序可能会在重要数据丢失的情况下停止工作。攻击者可以通过勒索或其他方式要挟Web应用程序,进而破坏加密机制。

2. 加密机制失效案例

  • 2011年C**N因为用户账户密码未加密存储,导致明文密码泄露。
  • 2018年,某外卖公司因为一些数据传输没有使用HTTPS加密,导致攻击者能够访问并下载大量外卖用户的个人信息,包括姓名、电话号码和送餐地址。

五、加密机制与策略

加密机制

  1. 对称加密 :在对称加密中,相同的密钥用于加密和解密数据。这是一种高效的加密方法,但需要确保密钥的安全传输。以下是常用的对称加密算法
    1. SM4 :SM4是一种国密级别的对称加密算法,用于数据加密。它被广泛用于中国的安全领域和应用程序。
    2. AES(Advanced Encryption Standard):AES是一种国际标准的对称加密算法,广泛用于全球各种安全应用中。它提供了高度的安全性和性能。
  2. 非对称加密 :非对称加密使用一对密钥:公钥和私钥。公钥用于加密数据,私钥用于解密。这种方法更安全,不需要在网络上传输私钥。
    1. SM2:SM2是一种国密级别的非对称加密算法,用于数字签名和密钥交换。它适用于中国的安全标准。
    2. RSA:RSA是一种国际标准的非对称加密算法,用于数字签名和密钥交换。尽管它不是国密算法,但仍然被广泛使用,并提供了强大的安全性。
  3. 哈希函数 :哈希函数将数据转化为固定长度的散列值,通常是不可逆的。它通常用于验证数据的完整性。
    1. SM3:SM3是一种国密级别的哈希算法,用于数据完整性检查和数字签名。它适用于中国的安全标准。
    2. SHA-256:SHA-256是一种国际标准的哈希算法,用于数据完整性检查和数字签名。它提供了较高的安全性。
  4. 数字签名:数字签名结合了非对称加密和哈希函数,用于验证数据的完整性和发送者的身份。

加密策略Tips

1. 使用HTTPS协议:

  • 确保整个Web应用使用HTTPS来加密数据传输,包括用户登录、数据传输、以及敏感操作。使用SSL/TLS证书,确保通信安全。

2. 数据加密:

  • 对于存储在数据库中的敏感数据(如用户密码、个人信息等),使用适当的数据库加密,如数据库字段级别的加密或全盘数据库加密。

3. 强密码策略:

  • 实施密码策略,要求用户创建强密码,包括至少8个字符,包含大小写字母、数字和特殊字符,并定期要求用户更改密码。

4. 避免明文存储密码:

  • 不要以明文形式存储用户密码。使用哈希函数和盐值对密码进行安全哈希,并存储哈希值。

5. 访问控制:

  • 实施严格的访问控制策略,确保只有经过身份验证的用户可以访问敏感数据和功能。最小权限原则是关键,只授权用户所需的最低权限。

6. 强制多因素认证(MFA):

  • 对于敏感操作(如账户设置变更、支付等),要求用户启用MFA,以提高帐户安全性。

7. 数据备份和灾难恢复:

  • 定期备份数据,并建立紧急恢复计划,以确保在数据丢失或损坏时能够快速恢复。
相关推荐
了一li26 分钟前
Qt中的QProcess与Boost.Interprocess:实现多进程编程
服务器·数据库·qt
杨德杰28 分钟前
QT网络(一):主机信息查询
网络·qt
码农君莫笑1 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
007php0071 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程
yang_shengy1 小时前
【JavaEE】网络(6)
服务器·网络·http·https
别致的影分身1 小时前
使用C语言连接MySQL
数据库·mysql
zquwei2 小时前
SpringCloudGateway+Nacos注册与转发Netty+WebSocket
java·网络·分布式·后端·websocket·网络协议·spring
Aimin20222 小时前
路由器做WPAD、VPN、透明代理中之间一个
网络
群联云防护小杜3 小时前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡
京东零售技术3 小时前
“慢”增长时代的企业数据体系建设:超越数据中台
数据库