自适应多因素认证:构建不可破解的企业安全防线|身份云研究院
打开本文意味着你理解信息安全的重要性,并且希望获取行业最佳实践来保护你所在组织的信息安全。本文将带你了解多因素认证(MFA:Multi-Factor-Authentication)对于企业信息安全的重要性以及实施方法。
多因素认证(MFA)已被证实是目前抵御绝大多数与密码泄漏相关攻击的最佳实践,微软研究表明,多因素认证(MFA)能有效阻止 99.9% 的密码泄漏事故。多因素认证是指用户需要提供一种类型以上的因素进行身份验证。通常可以分为四类因素,如下表所示:
注意,使用多个相同因素类型的相关凭证并不能构成多因素认证,例如:使用自有知识因素中的密码和安全问题不能构成多因素认证,而需要使用多个不同因素的凭证。例如:在最常见的支付场景中,当用户进行高额交易,系统不仅需要验证支付密码,通常情况下还需要额外进行外部口令验证,如手机验证码或 U 盾口令等。这种生活中常见的例子屡见不鲜。可见,多因素认证已经广泛应用于很多敏感的身份认证过程中。
01 为什么要使用多因素认证(MFA)?
鉴于数据泄露事故频发,伴随社会数字化程度越来越高,相关安全隐患和事故只会越来越多。对于企业来说,员工或用户信息泄漏意味企业将承担巨大的信誉和直接经济损失以及法律风险。其实越来越多企业已经意识到信息安全的重要性,但碍于以下几个原因始终无法有效实施:
-
技术力量受限,自建成本较高
-
“过度代偿”导致失衡,无法平衡安全性和用户体验
-
已经实施了一些安全措施,但没有监测系统,无法评估其效果
以下数据印证在几乎每个人身上,简易密码和密码复用等问题已经存在许久。但这并非用户的问题,越来越多的应用/系统/页面需要用户重新注册账号,用户不得不使用相同的密码来确保其不会遗忘。
-
一项调查发现,91% 的受访者声称了解在多个账户中重复使用密码的风险,但 59% 的人承认无论如何都会这样做
-
普通人重复使用某个相同密码高于 14 次。
-
72% 的人在个人生活中重复使用密码,而近一半 (49%) 的员工在每 90 天更新一次公司密码时只是更改或添加一个数字或字符到他们的密码中,这导致强制修改密码变得无效
-
73% 的用户在个人和工作帐户中重复密码
-
根据 Verizon 数据泄露调查报告,81% 的黑客相关泄露事件都是密码泄露造成的
即便是你已经知道了这些数据,并且决定开始为你的企业/用户部署多因素认证(MFA),但你仍然需要了解的使用不恰当的多因素认证(MFA)解决方案将会带来以下常见的问题:
-
要求用户持有特定硬件的 MFA 类型可能会产生大量成本和管理开销
-
如果用户丢失或无法使用他们的其他因素,可能会导致用户无法进入账户
-
MFA 给应用程序带来了额外的复杂性
-
许多 MFA 解决方案向系统添加外部依赖项,这可能会引入安全漏洞或单点故障
-
为允许用户绕过或重置 MFA 而实施的流程可能会被黑客利用
-
实施 MFA 会增加用户与系统间的摩擦,将导致用户体验下降,用户流失等问题
通用建议
对于已经实施或即将实施 MFA 的企业来说,关于上述 MFA 可能遇见的问题,有以下几个建议:
在应用程序中具体何时以及如何实施 MFA 取决于许多不同的因素,包括应用程序的威胁模型、用户画像以及对用户的访问控制级别。需要对不同应用不同场景进行分析,以下建议通常适用于大多数应用程序
-
为用户提供使用TOTP 应用程序帮助用户快速使用 MFA
-
需要具备管理特殊权限或者高级别权限用户的 MFA
-
允许在公司 IP 范围内(或常用 IP 地址)不需要使用额外 MFA
-
为用户策划安全、完善的「重置 MFA」流程
在什么时候需要使用 MFA?
最常见的场景就是在用户登录认证的时候,但如文章开头所说,在用户进行敏感操作的时候适当添加 MFA 也非常有必要,例如:
-
修改密码或安全问题
-
修改关联的手机号或身份信息
-
禁用 MFA
-
更改权限相关的操作
但以上方案并不能完全解决根本性的交互摩擦问题。
02 自适应多因素认证(Adaptive-MFA) 是平衡安全和用户体验最佳实践
为了解决上述问题,自适应多因素认证(Adaptive MFA)在多因素认证(MFA)的基础上增加了上下文识别,能够根据当前安全状况自动判断是否需要增加额外的因素认证。验证流程示意图如下:
所谓上下文识别,即对用户当前行为、来源、位置、操作等信息进行判断,并根据预设的策略进行验证。例如:
-
用户行为:如是否来自常用的登录地点;是否多次输入错误的账号密码;等异常用户操作
-
请求来源:对当前请求来源进行判断,如硬件设备信息、操作系统等
-
位置感知:位置感知分为虚拟位置和物理位置
传统的多因素认证通常在用户登录注册后要求用户进行二次因素认证,如发送短信验证码或者 OTP 口令等。但自适应多因素认证将评估每次登录的风险,并根据风险级别决定是否要求用户进行二次或多次因素认证。例如:
-
发出请求地 IP 地址的风险,是否来自陌生 IP、或高风险 IP
-
陌生地理位置发出地请求,如异地登录等
-
发出请求地设备是否为常用设备还是陌生设备等
但基础的自适应能力并不能完全覆盖现代数字化各类业务场景需求。在上文为什么要使用多因素认证中我们提到了多数企业面临的问题:
1.技术力量受限,构建成本较高
Authing 为用户提供了快速接入和一键开关多因素认证(MFA)能力,可以针对不同应用、不同场景自定义多因素认证策略。
2.无法平衡安全性和用户体验
自适应多因素认证的优势在于,只针对高风险或敏感操作的用户要求进行多因素认证,而对于经常使用同一设备和相同位置访问应用程序的用户永将不会被额外要求其它认证。
3.已经实施了一些安全措施,但没有监测系统,无法评估其效果
通过 Authing 提供的用户行为日志可帮助您快速了解风险级别和对用户体验的影响。
除此之外,Authing 身份自动化编排引擎,在以上基础之上,允许更自由的实施多种安全策略,通过模块化的编排能力,管理员可以自由地将多因素认证(MFA)等安全策略放置在任何业务节点当中,不再需要研发为不同的业务线一个个的编写安全策略,将极大降低企业研发成本和员工工作效率。
相关文章:

自适应多因素认证:构建不可破解的企业安全防线|身份云研究院
打开本文意味着你理解信息安全的重要性,并且希望获取行业最佳实践来保护你所在组织的信息安全。本文将带你了解多因素认证(MFA:Multi-Factor-Authentication)对于企业信息安全的重要性以及实施方法。 多因素认证(MFA&…...
阶段二8_集合ArrayList_学生管理系统_详细步骤
一.学生管理系统案例 1.需求: 针对目前我们的所学内容,完成一个综合案例:学生管理系统! 该系统主要功能如下: 1.添加学生:通过键盘录入学生信息,添加到集合中 2.删除学生:通过键盘录…...

一篇解决Linux 中的负载高低和 CPU 开销并不完全对应
负载是查看 Linux 服务器运行状态时很常用的一个性能指标。在观察线上服务器运行状况的时候,我们也是经常把负载找出来看一看。在线上请求压力过大的时候,经常是也伴随着负载的飙高。 但是负载的原理你真的理解了吗?我来列举几个问题&#x…...

关于IDM下载器,提示:一个假冒的序列号被用来注册……idea项目文件路径报红
关于IDM下载器,提示:一个假冒的序列号被用来注册……到C:\Windows\System32\drivers\etc 修改目录下面的hosts文件(如果没有修改的权限就右键属性hosts文件修改user的权限为完全控制),在hosts里面增加以下内容…...

JVM - 高效并发
目录 Java内存模型和内存间的交互操作 Java内存模型 内存间的交互操作 内存间交互操作的规则 volatile特性 多线程中的可见性 volatile 指令重排原理和规则 指令重排 指令重排的基本规则 多线程中的有序性 线程安全处理 锁优化 锁优化之自旋锁与自适应自旋 锁优…...

中小学智慧校园电子班牌系统源码 Saas云平台模式
智慧电子班牌区别于传统电子班牌,智慧校园电子班牌系统更加注重老师和学生的沟通交流和及时数据交互。学校为每个教室配置一台智能电子班牌,一般安装于教室门口,用来实时显示学校通知、班级通知,可设置集中分布式管理,…...

记录一次服务器被攻击的经历
突然收到阿里云发过来的异常登陆的信息: 于是,急忙打开电脑查看对应的ECS服务器的记录: 发现服务器的cpu占用率异常飙升,所以可以大概断定服务器已经被非法入侵了。 通过自己的账号登陆后,发现sshd服务有异常的链接存…...
Python解题 - CSDN周赛第29期 - 争抢糖豆
本期问哥是志在必得,这本算法书我已经觊觎许久,而之前两次因为种种原因未能如愿。因此,问哥这几天花了不少时间,把所有之前在每日一练做过的题目重新梳理了一遍。苦心人,天不负,感谢官方大大! 第…...

C代码中访问链接脚本中的符号
一、目的在之前的《GNU LD脚本命令语言(一)》、《GNU LD脚本命令语言(二)》我们介绍了GNU链接脚本的知识点,基本上对链接脚本中的SECTION、REGION、以及加载地址与执行地址的关系等内容有了一定的了解。本篇主要讲解链…...

MySQL 8:MySQL索引
索引就是通过一定的算法建立数据模型,用于快速查找某一列中具有特定值的行。如果没有索引,MySQL 必须从第一条记录开始读取整个表,直到找到相关的表。表越大,查询数据所花费的时间就越多。如果表中查询的列有索引,MySQ…...

JVM详解
一,JVM 1,JVM区域划分 类装载器,运行时数据区,字节码执行引擎 2,JVM内存模型(运行时数据区) 由本地方法栈,虚拟机栈,堆,方法区,和程序计数器组成。…...

MySQL数据库调优————索引数据结构
B-TREE B-TREE数据结构 B-TREE特性 根节点的子结点个数2 < X < m,m是树的阶 假设m 3,则根节点可有2-3个孩子 中间节点的子节点个数m/2 < y < m 假设m 3,中间节点至少有2个孩子,最多3个孩子 每个中间节点包含n个关…...

visual studio 改变界面语言
在使用visual studio 2019 时,开始是英文界面,后面变成了中文界面。但是看视频教学时有的是英文界面,我就想回到英文界面,所以有切换界面语言的需要。其实操作很简单:工具-> 选项 打开界面在界面里选择环境…...
2023.2.16每日一题——1250. 检查「好数组」
每日一题题目描述解题核心解法一:数论题目描述 题目链接:1250. 检查「好数组」 给你一个正整数数组 nums,你需要从中任选一些子集,然后将子集中每一个数乘以一个 任意整数,并求出他们的和。 假如该和结果为 1&#x…...

亿级高并发电商项目-- 实战篇 --万达商城项目 八(安装FastDFS、安装Nginx、文件服务模块、文件上传功能、商品功能与秒杀商品等功能)
专栏:高并发---分布式项目 👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者 📕系列专栏:前端、Java、Java中间件大全、微信小程序、微信支…...

Viper捐款7000万韩元,合计人民币是多少钱?
Viper捐款7000万韩元,合计人民币是多少钱? #2023LCK春季赛##英雄联盟# #Viper捐款7000万韩元# Viper向大田东区捐款 7000 万,成为大田荣誉协会 105 号会员。Viper选手从 2019 年开始一直向大田东区捐款,但是他不希望这件事被公开…...

前端vue实现系统拦截跳转外链并进入跳转询问界面
跳转询问界面如下图所示: 给自己挖坑的实现方式,最终解决方案请看最底下 思路:正常情况下我们有2种方式跳转外链 第一种非a标签,我们手动添加事件进行跳转 <div class"dingdan public-padding p-item" click&quo…...
【Linux】Shell(Bash)单引号、双引号、不加引号和反引号用法和区别详解
简要总结 不加引号:不会将含有空格的字符串视为一个整体输出, 如果内容中有变量等,会先把变量解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号ÿ…...

本人使用的idea插件
文章目录🚏 本人使用的idea插件🚬 pojo to Json🚬 GsonFormatPlus🚬 EasyYapi🚬 Chinese (Simplified) Language Pack / 中文语言包🚬 MyBatis Log Free🚬 MyBatisPlusX🚬 Statistic…...

站在行业C位,谷医堂打开健康管理服务新思路
对于农村及贫困地区老百姓来说,由于交通因素和家庭经济条件制约,看病难致身体调理情况一直不太乐观,这也导致心理压力很大。然而,随着近年中医药产业崛起与快速发展,这种局面很快就会得到改观,以湖南谷医堂…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...