自适应多因素认证:构建不可破解的企业安全防线|身份云研究院
打开本文意味着你理解信息安全的重要性,并且希望获取行业最佳实践来保护你所在组织的信息安全。本文将带你了解多因素认证(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位,谷医堂打开健康管理服务新思路
对于农村及贫困地区老百姓来说,由于交通因素和家庭经济条件制约,看病难致身体调理情况一直不太乐观,这也导致心理压力很大。然而,随着近年中医药产业崛起与快速发展,这种局面很快就会得到改观,以湖南谷医堂…...
ABO溶血症概率
[简介]ABO溶血是由于母亲和胎儿ABO血型不合引起的新生儿溶血,概率不是很大,一般出现在准妈妈是O血,准爸爸是非O血,这次容易发生血型不合,但新生儿ABO溶血概率不高,大多数症状相对较轻。ABO溶血的概率是什么…...
【算法数据结构体系篇class03】:数组、链表、栈、队列、递归时间复杂度、哈希表、有序表问题
一、反转链表package class03;import java.util.ArrayList; import java.util.List;/*** 链表反转*/ public class ReverseLinkedList {public static class Node {public int value;public Node next;public Node(int data) {value data;}}public static class DoubleNode {p…...
【新2023】华为OD机试 - 最多提取子串数目(Python)
最多提取子串数目 题目 给定由 [a-z] 26 个英文小写字母组成的字符串 A 和 B,其中 A 中可能存在重复字母,B 中不会存在重复字母 现从字符串 A 中按规则挑选一些字母,可以组成字符串 B。 挑选规则如下: 1) 同一个位置的字母只能被挑选一次 2) 被挑选字母的相对先后顺序不…...
嵌入式C语言设计模式 --- 代理模式
1 - 什么是代理模式? 代理模式(Proxy Pattern),是指当客户端无法访问某个对象或者访问某个对象存在困难的时候,可以通过一个代理对象来进行间接访问。 举一个生活中的例子,比如,我们在买火车票或者飞机票的时候,有时候不会直接在12306或者航空公司官网上面购买,而是…...
前端性能优化的整理笔记
🚴 前言大厂面试题分享 面试题库后端面试题库 (面试必备) 推荐:★★★★★地址:前端面试题库🏄利用碎片化的时间,系统的整理,性能优化的知识点。🎯 前端性能优化…...
springboot+mybatis连接数据库实现增删改查功能
springbootmybatis连接数据库实现增删改查功能创建表创建项目实体类DAO接口写sql的XML文件Service层Controller启动类结果目录结构参考博客创建表 create table user(id int ,name varchar(30),pwd varchar(40) )insert into user values(2,hxf,789101),(3,hlm,789102),(4,hzh…...
疑似45亿地址信息泄露事件跟进后续
开放隐私计算 收录于合集#数据安全13个开放隐私计算开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播,愿成为中国 “隐私计算最后一公里的服务区…...
Hadoop集群配置
一、系统文件配置集群部署规划NameNode和SecondaryNameNode不要安装在同一台服务器ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode放在同一台机器上。这里装了四台机器,ant151,ant152,ant153,ant154。ant151ant152ant153ant154NameNode…...
【C语言】程序环境和预处理|预处理详解|定义宏(下)
主页:114514的代码大冒 qq:2188956112(欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ ) Gitee:庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 文章目录 目录 文章目录 前言 2.5带副作用的宏参数 2.6宏和函数的对比 3#undef 编辑 4 命令行定义…...
MySQL主从复制
操作流程准备两个服务器主服务器配置1>修改主配置文件 /etc/my.cnf[mysald] log-binmysql-bin //[必须]启用二进制日志server-id12>重启 mysql 服务3>创建mysql用户并授权mysql> GRANT REPLICATION SLAVE ON ** to slaver% identified by 123456;4>查看当前主服…...
南通网站维护/长沙网站公司品牌
CHENYILONG BlogIOS详解TableView——内置刷新,EGO,以及搜索显示控制器 Fullscreen技术博客http://www.cnblogs.com/ChenYilong/新浪微博http://weibo.com/luohanchenyilong内置刷新内置刷新是苹果IOS6以后才推出的一个API,主要是针对TableVi…...
网站技术维护/网页在线代理翻墙
http://www.tuicool.com/articles/FRfMni2 http://docs.opencv.org/3.1.0/d7/d9f/tutorial_linux_install.html#gsc.tab0 http://blog.csdn.net/asongsongsong/article/details/52122504...
福州企业建设网站/茶叶推广软文
Python学习教程:(初级算法)取交集 题目分析 因为题目不是很长,这里把题目贴出来: 题目意思,敲重点: 1、找出两个列表里重复的元素 2、不仅仅是取交集这么简单,注意 Note 里的那句…...
广东网页制作网站/论坛如何做seo
裴波那切数在百度百科的定义是: 斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:0、1、1、…...
wordpress给用户注册/杭州优化排名哪家好
一、相关工具 编译器:VS2019 二、调用步骤 1、首先打开vs2019创建一个控制台应用,如下所示: 2、在类class Program添加对dll文件的引用,例如[DllImport("testdll.dll", EntryPoint "myAdd", ExactSpelling …...
wordpress恢复小工具/seo关键词排名优化教程
Python模块化编程 包 模块 模块是一个包含所有你定义的函数和变量的文件,其后缀为.py(就如我们编写的程序就是一个模块),可被其他程序引入。以使用该模块的函数等功能 模块分为三种: 1.内置模块:sys,os,sub…...