一、前言
数字化时代,越来越多的数据正在被传输到Web应用程序中,这其中不乏个人或机构的敏感信息。
如果Web应用程序未采取正确的加密机制,这些信息可能会遭到窃取或篡改,从而使用户数据或机构的财产受到威胁。
二、加密机制失效(敏感信息泄露)的危害
- 窃取用户利益:攻击者将有可能窃取个人信息(信用卡号、密码、社保号等),然后利用这些信息窃取用户利益。
- 用于欺诈和其他不良目的:通过窃取敏感信息,攻击者可以使用这些信息进行诈骗、盗取资金、冒充身份,破坏商业竞争以及散播恶意病毒和其他不良软件等。
- 侵犯隐私:Web应用程序的失效,可能会导致用户隐私被侵犯,由于不被允许收集或使用的个人用户信息被泄露或滥用,给用户带来相当大的心理和经济压力。
- 法律和制度性风险:失效的加密机制可能会影响企业的声誉,并违反行业和政府制度,迫使企业承担法律责任。
- 品牌价值减少:针对数据泄露和失效的加密机制的公众曝光,可能会导致品牌价值减少,加剧企业的经济衰退。
- 客户信誉度下降:数据泄露和加密机制失效可能导致客户对企业失去信任,影响企业的长期发展。
三、Web应用中哪些环节需要加密机制
Web应用中,加密机制需求贯穿整个业务处理的各个环节
- 输入加密:
- 如用户输入密码等敏感信息时不应该再页面明文展示。
- 传输加密:
- 客户端与服务端之间的通信需要使用HTTPS等协议进行加密传输
- 服务端各个组件之间的通信也需要考虑加密机制需求。
- 后端逻辑处理:
- 后端服务在做逻辑处理时也需要有一定的加密机制,如敏感信息不应明文打印到日志中。
- 存储加密:
- 数据库中的敏感信息字段需要进行加密存储。
- 文件、图片、报备等数据存储是要严格控制权限,或加密。
- 输出加密(脱敏):
- 返回给用户的信息需结合业务需要进行加密、脱敏处理。
- 很多应用程序会将后台错误信息回显给用户,这里需要注意不要讲系统敏感信息(如数据库卡的IP地址、库表名称)泄漏给用户
四、加密机制失效的情景和案例
1. 加密机制失效的常见情景&攻击方式:
- 未妥善保管密钥:密钥是加密的关键,如果密钥可以被恶意攻击者获取,就可以轻松地突破加密。因此,安全存储和管理密钥至关重要。
- 弱密码、字典攻击或暴力破解:当使用弱密码或雷同密码,暴力破解可以通过尝试多个密码组合来破解它们。主动实施具有强密码标准的密码策略有助于防止密码猜测攻击。
- 数据库或文件系统被危险覆盖:如果攻击者通过某种方式直接访问数据库或文件系统,而不需要通过Web应用程序,那么加密机制就会失效。
- 中间人攻击:中间人攻击是窃取数据或操纵双方之间的信息交流过程的攻击。攻击者可能会假冒用户访问受保护的页面,窃取证书媒介,使得加密的通信可以被中途截获和篡改。
- 漏洞注入攻击:注入攻击后,攻击者可以在请求中插入恶意代码或指令,从而绕过加密机制并且执行任意操作。
- 系统或库漏洞:漏洞可能在应用程序的任何一个环节中出现。这可能包括操作系统,Web服务器,数据库服务器,Web应用程序平台或应用程序代码等多个方面,造成加密机制失效之后,会让攻击者突破加密系统访问到数据。
- 缺乏数据备份和恢复准备:在遭受攻击时,缺乏恢复准备的Web应用程序可能会在重要数据丢失的情况下停止工作。攻击者可以通过勒索或其他方式要挟Web应用程序,进而破坏加密机制。
2. 加密机制失效案例
- 2011年C**N因为用户账户密码未加密存储,导致明文密码泄露。
- 2018年,某外卖公司因为一些数据传输没有使用HTTPS加密,导致攻击者能够访问并下载大量外卖用户的个人信息,包括姓名、电话号码和送餐地址。
五、加密机制与策略
加密机制:
- 对称加密 :在对称加密中,相同的密钥用于加密和解密数据。这是一种高效的加密方法,但需要确保密钥的安全传输。以下是常用的对称加密算法
- SM4 :SM4是一种国密级别的对称加密算法,用于数据加密。它被广泛用于中国的安全领域和应用程序。
- AES(Advanced Encryption Standard):AES是一种国际标准的对称加密算法,广泛用于全球各种安全应用中。它提供了高度的安全性和性能。
- 非对称加密 :非对称加密使用一对密钥:公钥和私钥。公钥用于加密数据,私钥用于解密。这种方法更安全,不需要在网络上传输私钥。
- SM2:SM2是一种国密级别的非对称加密算法,用于数字签名和密钥交换。它适用于中国的安全标准。
- RSA:RSA是一种国际标准的非对称加密算法,用于数字签名和密钥交换。尽管它不是国密算法,但仍然被广泛使用,并提供了强大的安全性。
- 哈希函数 :哈希函数将数据转化为固定长度的散列值,通常是不可逆的。它通常用于验证数据的完整性。
- SM3:SM3是一种国密级别的哈希算法,用于数据完整性检查和数字签名。它适用于中国的安全标准。
- SHA-256:SHA-256是一种国际标准的哈希算法,用于数据完整性检查和数字签名。它提供了较高的安全性。
- 数字签名:数字签名结合了非对称加密和哈希函数,用于验证数据的完整性和发送者的身份。
加密策略Tips
1. 使用HTTPS协议:
- 确保整个Web应用使用HTTPS来加密数据传输,包括用户登录、数据传输、以及敏感操作。使用SSL/TLS证书,确保通信安全。
2. 数据加密:
- 对于存储在数据库中的敏感数据(如用户密码、个人信息等),使用适当的数据库加密,如数据库字段级别的加密或全盘数据库加密。
3. 强密码策略:
- 实施密码策略,要求用户创建强密码,包括至少8个字符,包含大小写字母、数字和特殊字符,并定期要求用户更改密码。
4. 避免明文存储密码:
- 不要以明文形式存储用户密码。使用哈希函数和盐值对密码进行安全哈希,并存储哈希值。
5. 访问控制:
- 实施严格的访问控制策略,确保只有经过身份验证的用户可以访问敏感数据和功能。最小权限原则是关键,只授权用户所需的最低权限。
6. 强制多因素认证(MFA):
- 对于敏感操作(如账户设置变更、支付等),要求用户启用MFA,以提高帐户安全性。
7. 数据备份和灾难恢复:
- 定期备份数据,并建立紧急恢复计划,以确保在数据丢失或损坏时能够快速恢复。