# 认证技术

4 min read
Table of Contents

认证包括消息认证和身份认证。

概念

  • 消息认证:消息的完整性认证,检验收到的文件是否遭到第三方篡改。
  • 身份认证:使验证者相信对方就是声称的实体。

消息认证

基于对称密码的消息认证

利用分组密码也是一样,验证共享密钥一致。

基于 CBC 工作模式时,共享算法、密钥和校验码生成算法。由明文 mm 生成校验码 rr,将 rr 拼接在 mm 后,则 cn+1c_{n + 1} 就是由 rr 加密得到的认证码。

基于杂凑函数的消息认证

就是用(有密钥)杂凑函数产生的消息摘要代替共享密钥作为认证码。

基于公钥密码的消息认证

但是上述的消息认证方式,只能指定人检验,无法多人检验;文件认证码的生成者和检验者不能相互抵赖或伪造;第三方无法裁决争议。

使用公钥密码进行消息签名,既可以认证消息完整性,还可以证明消息确实来自于 A。

PGP

结合加密、认证。同时实现消息的完整性、机密性和认证性。

发送方流程

  1. 压缩明文 mm
  2. 生成随机会话密钥 kk
  3. 用会话密钥 kk 对称加密压缩的明文 mm 得到 E(m)E(m)
  4. 生成摘要 dd,并签名 ss
  5. 封装 k,E(m),sk, E(m), s

身份认证

基本途径:

  • 已知信息:口令、密钥等
  • 已有事物:身份证、信用卡、钥匙等
  • 个体特征:指纹、笔迹、视网膜等

基于口令的身份认证

  1. 固定口令方案

无法防御重放攻击、泄漏等。

  1. 一次性口令方案

系统和用户共享口令列表,每次选择一个未使用口令。还是可能泄漏。

若使用单向函数生成,可防御泄漏,如 Lamport 方案。

基于挑战响应的身份认证

  1. 基于分组密码

都以共享密钥 kk 为根。

时间戳 tAt_A 防止重放。

随机数 rBr_B 防止重放。

三遍也是类似,验证 A,B 双方身份。

  1. 基于公钥技术

公钥密码体制密钥与用户身份一一对应,直接可以作为根。

Kerberos 协议

包括三个要素:

  • 鉴别
  • 簿记
  • 审计

主体为 用户(c)、认证服务器(AS)、票据许可服务器(TGS)、服务器(V)。

(图上 AS,C 间的 EktgsE_{ktgs} 实际为 EtgsE_{tgs})

核心是为解决口令明文传送票据有效时限重放攻击,以及多个实体互相身份认证不断进行对称密钥的套娃。

V5 将对称密钥改为公钥密码,本质上还是解决身份认证问题。

  1. 第一步 C-AS
  2. 第二步 C-TGS
  3. 第三步 C-V

例如,WOO92b协议:

AKDCIDAIDBKDCAEKRauth[IDBKUb]ABEKUb[NAIDA]BKDCIDBIDAEKUauth[NA]KDCBEKRauth[IDAKUa]EKUb[EKRauth[NAKsIDAIDB]]BAEKUa[EKRauth[NAKsIDAIDB]NB]ABEKs[NB]A→KDC:ID_A || ID_B \\ KDC→A:E_{KR_{auth}} [ ID_B || K_{U_b} ] \\ A→B:E_{KU_b} [ N_A || ID_A ] \\ B→KDC:ID_B || ID_A || E_{KU_{auth}} [ N_A ] \\ KDC→B:E_{KR_{auth}} [ ID_A || K_{U_a}] || E_{KU_b} [ E_{KR_{auth}}[ N_A || K_s || ID_A || ID_B ] ] \\ B→A:E_{KU_a} [ E_{KR_{auth}}[ N_A || K_s || ID_A || ID_B ] || N_B ] \\ A→B:E_{K_s} [ N_B ]
My avatar

Thanks for reading my blog post! Feel free to check out my other posts or contact me via the social links in the footer.


More Posts

Comments