鉴别机制与技术
鉴别的需求和目的
需求:某一成员(声称者)提交一个主体的身份并声称它是那个主体
目的:使别的成员(验证者)获得对声称者所声称的事实的信任
身份鉴别协议:通信参与者为完成相互的身份鉴别或识别而采用的规程、约定、约束和交换信息的总和
实体鉴别系统的组成
- 一方是出示证件的人,示证者/声称者P
- 另一方为验证者V,检验声称者提出的证件的正确性和合法性
- 第三方是可信赖者(TP),参与调解纠纷
- 第四方是攻击者,可以窃听或伪装声称者骗取验证者的信任
实现身份鉴别的途径
- 基于你所知道的:知识、口令、密码
- 基于你所拥有的:身份证、信用卡、钥匙、智能卡、令牌
- 基于你的个人特征:指纹、笔迹、声音、手型、脸型、视网膜、虹膜
- 双因素、多因素认证
鉴别技术分类:按保护等级分类
- 0级鉴别(无保护)
- 1级鉴别(抗泄露保护)
- 2级鉴别(抗泄露和对不同验证者重放的保护)
- 3级鉴别(抗泄露和对同一验证者重放的保护):增加惟一数
4级鉴别(抗泄露和对相同/不同验证者重放的保护)
- 唯一数机制
- 质询机制
- 专用加密质询机制
- 计算响应机制
鉴别技术分类:按机制的配置分类
- 涉及可信第三方的模型
- 介入鉴别的可信第三方之间的关系
鉴别机制
非密码的鉴别机制
口令机制
最广泛,系统事先保存每个用户的二元组信息(用户身份,口令),明文或加密存储
脆弱点:
- 外部泄露:对付措施有教育、培训、口令定期改变、不写到纸上、严格组织管理办法、输入口令不显示在终端上
- 口令猜测:对付措施有教育、培训、严格限制非法登录次数、限制最小长度、口令定期改变、使用机器产生的口令、口令验证中插入实时延迟
线路窃听:对付措施
- 散列函数(单向)
缺点:字典攻击(构建q-p表)
- 加盐:散列运算时增加salt随机字符串的输入(salt值也要存入数据库,第一次注册完后之后每次验证口令传给用户盐来加密),增加字典攻击困难度(同一密码加盐不同,组合足够多)
https://www.tomczhen.com/2016/10/10/hashing-security/
- 一次性口令(OTP)
一次性口令机制
确定口令的方法:对付重放攻击
- 共同拥有一串随机口令
- 随机序列生成器
- 时间戳
OTP算法的演进:S/Key一次性口令身份鉴别协议
缺陷:
- 不能防止小数攻击
- 缺乏完整性保护机制
- 在实际应用时还需进一步完善
基于质询-应答的身份鉴别技术
由验证者给声称者发送一个确定的值(质询消息),该值参与鉴别信息的运算。产生的非重复质询消息完全由验证者决定,使得每次传输的鉴别信息不同。这能很好地防止口令窃听和重放,但需要额外的通信花销
基于地址的机制
基于个人生理特征的机制
指纹、视网膜、声音、虹膜、语音、面部、签名等(基于每个人生理特征具有唯一性的假设)
个人鉴别令牌
集成电路卡(IC卡)
零知识证明与身份鉴别技术
思想:希望一个鉴别协议能够在声称者向验证者证明他身份的同时没有泄露任何信息
证明方法:
- 直接证明:出示或说出事物,使别人相信;但会泄露给别人
- 间接证明:用一种有效的数学方法证明知道秘密,而不泄露给别人
洞穴问题
典型零只是证明的身份鉴别协议:
计算模n平方根的困难性:
- Flat-Shamir身份识别协议
- Fiege-Fiat-Shamir身份识别协议
离散对数的困难性:
- Needham-Schroeder协议
采用对称密码的机制
通信双方共享一个密钥(通常存储在硬件中)
采用公开密码的机制
要求验证者有声称者的有效公钥
采用密码校验函数的机制
待鉴别的实体通过表明它拥有某个秘密鉴别密钥来证实其身份。可由该实体以其秘密密钥和特定数据作输入,使用密码校验函数获得密码校验值来达到
声称者和验证者共享秘密鉴别密钥,应仅为该两个实体所知,以及他们的信任方。