概念
身份是实体的一种计算机表达,身份可以用来唯一确定一个实体。一般情况下,可以通过多个凭证(多因子认证)共同鉴别身份真伪,认证因子越多鉴别真伪可能性就越大,但同样会导致校验效率低,影响用户体验等。
分类
按照方向
- 单向认证 一方认证即可
- 双向认证 不仅服务方对客户方进行鉴别,客户方也要对服务方身份进行鉴别
总结:
身份认证技术用于解决物理身份和数字身份的一致性问题,身份认证即身份识别与验证。是保护信息系统安全的第一道大门。(第二道大门是访问控制)
认证方法
所知:密码 口令
所有:身份证
个人特征:
- 生理特征 指纹 视网膜
- 行为特征:语音模式 笔记特征
关于口令
口令的种类
- 静态口令
- 动态口令(一次性口令)
口令的脆弱性
- 会受到数据流的监听
- 字典攻击:很多用户密码都是有意义的单词,即使经过散列存储,攻击者仍然可以执行单向散列函数生成字典文件,进行破解。若用户密码过于简单,攻击者也可通过数据库信息统计出大部分系统的散列函数,进而更加精确的进行字典攻击。
解决方案:加盐,即在用户密码上加一个随机数在进行hash。
提高口令质量有助于保护身份认证的第一道防线。要做到这点必须遵循如下:
对于用户:
- 增大口令空间
- 选用无规律的口令
- 用工具生成口令
对于网站:
- 登录时间限制
- 登录次数限制
- 增加认证信息量
消息摘要存储密码的缺点:无法防止重放攻击
解决方案:增加随机性
-
验证码 实现一次性口令认证
概念:CAPTCHA(全自动区分计算机和人类的图灵测试) 是一种区分用户是计算机还是人类的自动程序。
作用:防口令猜测攻击,例如刷票 恶意注册 论坛灌水,还可以做到用户筛选等。 -
挑战应答
-
客户向认证服务器发出请求,数据包中包含账号,要求进行身份认证;
-
认证服务器从用户数据库中查询用户是否是合法的用户,若不是,则不做进一步处理;
-
认证服务器内部产生一个随机数,作为"提问",发送给客户;
-
客户将用户名字和随机数合并,使用单向Hash函数(例如MD5算法)生成一个字节串作为应答(口令);
-
认证服务器将应答串与自己的计算结果比较,若二者相同,则通过一次认证;否则,认证失败;
-
认证服务器通知客户认证成功或失败。
总结:挑战应答不需要在网上出现,是许多鉴别机制的基础。
生物认证技术
USB KEY
- 带有安全存储空间 :可以春初用户密钥等私密数据,且私钥是不可导出的
- 硬件实现加密算法:加解密运算在usbkey内进行,杜绝了用户密钥被黑客截取的可能性,支持rsa des 3des等算法
- 便于携带 安全可靠
生物认证技术缺点
- 易泄露
- 成本高
- 有可能影响用户健康
- 技术要求高