目 录CONTENT

文章目录

现在高安全的登录密码都用这么复杂的方式了吗

过客
2025-12-25 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

一般的中小系统,直接使用用 HTTPS + 前端不加密,后端用 Argon2 存储就已经够用了。但是要做一个高安全的场景中(金融等于小钱钱挂钩的),“纵深防御 + 零信任” 架构下的加密模式

HTTPS + 前端 RSA-OAEP 加密 + 动态公钥 + 一次性 Token,这个大致流程如下:

sequenceDiagram participant User as 用户 participant Frontend as 前端 participant Backend as 后端 Backend->>Frontend: (1) 返回 loginToken + RSA/ECC 公钥(HTTPS) User->>Frontend: (2) 输入密码 Frontend->>Frontend: (3) 用 RSA/ECC加密(loginToken+密码+时间戳) → C Frontend->>Backend: (4) POST { C } Backend->>Backend: (5) 用 RSA/ECC 私钥解密 C → 得密码等信息 Backend->>Backend: (6) 验证 loginToken和时间戳 有效性 Backend->>Backend: (7) 用 Argon2 验证密码

一、HTTPS 的局限性(你以为的安全 ≠ 实际安全)

✅ HTTPS 能防什么?

  • 中间人窃听(如公共 Wi-Fi)
  • 数据篡改
  • 服务器身份伪造(通过 CA 证书)

❌ HTTPS 不能防什么?

威胁 说明
终端被监控 用户安装了公司 IT 监控软件(如 Zscaler、Forcepoint),可解密所有 HTTPS 流量(通过企业根证书)
浏览器插件窃取 恶意 Chrome 插件可读取 fetch() 的明文密码
XSS 攻击 若网站存在 XSS 漏洞,攻击者可直接获取 `` 中的原始密码
内存转储 恶意软件可扫描浏览器进程内存,提取明文密码
开发者工具泄露 用户误操作在 Console 打印密码(虽少见,但金融系统需考虑)

💡 ​HTTPS 的信任边界止于“浏览器进程​,而前端加密把信任边界​延伸到“用户输入那一刻​。

🛡 二、前端加密如何补足这些缺口?

组件 解决的问题
RSA-OAEP 加密 即使 HTTPS 被解密(如企业代理),攻击者拿到的也只是​无法解密的密文​(私钥在服务端 HSM 中)
动态公钥 防止公钥硬编码被替换;每次登录用新密钥对,实现前向保密
一次性 Token 防重放攻击(Replay Attack)——即使密文被截获,也无法复用
前端执行加密 密码在​离开 DOM 前就已加密​,XSS/插件只能拿到密文,无法还原明文

✅ ​效果​:即使攻击者控制了用户的整个网络环境(包括 HTTPS 解密能力),也无法获取原始密码。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区