MFA-多因子认证简介
从 2021 年开始,一直在负责公司内部IDaaS
项目的开发。从 4A 的发展到 5A,自己对IDaaS
的认识也越来越成体系,顺便把自己对IDaaS
的理解进行下总结。
概述
多因子身份认证(Multi-Factor Authentication,简称为:MFA)是一套多层次的身份安全防御体系,通过结合两种或三种独立不相干的认证因子(知识认证因子、拥有认证因子、固有认证因子、社交认证因子)来验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一认证因子(例如:口令、人脸),应用的安全依然可以得到保障。
认证方案
认证因子
- 知识认证因子:用户知道的某些知识,例如:密码、PIN 码、安全保护问题等。
- 拥有认证因子:用户拥有的某些物理对象,例如:硬件令牌、身份证、手机号码等。
- 固有认证因子:用户具有的某些物理特征,例如:指纹、虹膜、声音、笔迹、行为特征等。
- 社交认证因子:用户的社交关系,比如微信上通过好友找回密码等。
认证方式
将认证因子进行抽象化、插件化接入,于是就形成了因子认证间的自由组合,也就是我们的多因子认证方案。
静态口令
- 账号密码
- 手机号密码
动态口令
- 短信口令
- 钉钉口令
- 邮件口令
关于动态口令,也就是 OTP,通常意义上说的是基于时间时代的规则生成的,在一定时间范围有效且幂等的随机口令码。
扫码认证
- 钉钉扫码
- 企微扫码
- 内部 App 扫码
生物认证
- 人脸识别
- 声音认证
MFA 策略管控
MFA 策略选择是指基于不同的场景适配不同的因子组合,也即不同的认证方案的一个抉择过程。
通常我们会分为静态场景策略以及动态场景下的自适应策略。
静态场景策略通常是针对固定的条件生成的认证方案,比如:
- 针对某个域名下的认证
- 针对某个应用(某类等级应用)下的认证
自适应策略是指针对某些场景,通过策略引擎判定为风险场景后,生成相应的认证方案。此类型策略是基于事件驱动和机器学习识别出用户的行为或者登录环境不可信任,因此需要进一步认证。
- 风险账号
- 频繁登录
- 频繁登出
- 频繁访问管控系统
- 访问安全等级较高系统
- 其他风险行为等
- 风险环境
- 单设备频繁切换账号
- 异地登录
- 非常用设备首次登录
登录台基于多因子认证
登录台识通过别当前账号和环境特征,适配相应的多因子认证策略,进行多环节认证。
Step1 静态口令认证
Step2 动态口令认证
通过多消息通道下发 OTP 口令码:
输入 OTP 口令码完成动态口令的认证环节:
多因子认证是基于账号和环境不可信任的条件下,通过多种方式判定是否为可信环境的方式。结合智能引擎的实时和离线分析,我们还可以识别出当前账号和环境为零信任,此时需将账号认证进行拦截。
后续再详细介绍下针对零信任环境下我们的认证方案。