身份认证

\(1.\) 基于口令

一般将口令存储在数据库中,拿用户键入的口令和存储的口令比较,根据比较结果授予访问权限

\(1.1\) 明文认证

直接在数据库中存储口令明文

简单,成本低,但是不安全

\(1.2\) 引入散列

将口令哈希后存储在数据库中,每次登陆时判断用户输入的口令的哈希值和存储的哈希值是否一致

可能被彩虹表破解

\(1.3\) 加盐

给口令加盐之后哈希,将哈希值和盐一起存储在数据库中,用户登录时,将用户输入的口令加盐哈希,判断是否一致

加盐本质上等于改变了哈希函数,使得彩虹表破解难以实现

\(2.\) 基于生物特征

  • 指纹鉴别
  • 声音鉴别
  • 手迹鉴别
  • 虹膜扫描
  • 手形及掌纹
  • 面相
  • \(DNA\)

\(3.\) 零知识证明

零知识证明 考虑证明者 \(P\) 和验证者 \(V\)\(P\) 在不让 \(V\) 知晓信息内容的前提下,向 \(V\) 证明自己知晓信息,满足

  • 完备性 \(\textbf{Completeness}\)\(P\) 可以证明,那么 \(V\) 有理由相信,即 \(V\) 无法欺骗 \(P\)
  • 正确性 \(\textbf{Soundness}\)\(P\) 无法证明,那么 \(V\) 有理由不相信 \(P\),即 \(P\) 无法欺骗 \(V\)
  • 零知识性 \(\textbf{Zero-Knowledge}\) 证明过程 \(P\) 不泄露任何信息,即 \(V\) 无法获得额外信息
posted @ 2021-01-06 16:45  徐摆渡  阅读(327)  评论(0编辑  收藏  举报