IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

CHAP、HMAC、HOTP、TOTP等等

changming的blog 2012-06-14 13:54:11 累计浏览 3,818 次
本机暂存

    去年CSDN密码泄露案公布之后,很多专家跳出来讨伐说他家的程序员太白痴居然还在数据库里面存明文。最近linkedin的事件出来之后,如何保存密码,这个问题又被拉出来谈。我认为,密码怎么保存与怎么在网上传输,这两个问题不能分开来谈。除非你已经有了安全的信道,如SSL,否则还是存明文为妙。

    mysql对其原始的CHAP协议做了些改进:

    storedhash=sha1(passphrase)

    reply=xor(passphrase, sha1(public_seed,storedhash)

    在网络上发送的是public_seed、reply,数据库里面存储的是storedhash。所以如果只是拿到了mysql.user表里的数据,而没有原始的passphrase,想要构造出reply,还是挺困难的。不过我估计这个算法是工程师自己想出来的,根本就没找安全专家讨论过,未必经得起推敲。

    今天我在我的手机上装了google authenticator,它主要是采用TOTP的方式进行身份验证。TOTP是HOTP的一个变种,把HOTP中的counter换成了时间,TOTP = Truncate(HMAC-SHA-1(K,T)) 。其中K是双方之间已经共享的一个密钥,而T则是当前时间除以步长(默认是30)得到的。用手机做这个的一个优势是,K的分发可以不走网络,而是通过二维码。

    我准备抽空好好看看SRP。

原图已失效

同分类推荐文章

  1. 绿盟科技《APT组织研究年鉴》(2026 版)正式发布 (2026-06-16 20:21:10)
  2. 【已复现】Linux内核Fragnesia权限提升漏洞(CVE-2026-46300) (2026-06-15 10:53:58)
  3. 企业文档安全最佳实践(二):给文档上“身份证”——手动标密与智能自动标密 (2026-06-12 17:18:33)

查看更多 安全 文章 →

建议继续学习

  1. nginx 使用 ssl (累计阅读 7,668)
  2. 解决linux下安装ssl后,apache重启时需要密码 (累计阅读 6,506)
  3. 中间人攻击(man-in-the-middle attack):你和互联网中间的第三人 (累计阅读 6,393)
  4. iPhone下的libcurl with SSL for iOS (累计阅读 6,350)
  5. HTTPS、SSL与数字证书介绍 (累计阅读 5,427)
  6. ssldump (累计阅读 5,300)
  7. Apache + Jetty 架设 CAS 单点登录 (累计阅读 5,181)
  8. SSL Proxy (累计阅读 5,185)
  9. 通过ssldump来分析ssl协议过程 (累计阅读 4,023)
  10. 代理的本地部分 (累计阅读 3,913)