首页 > 其他分享 >04身份认证:除了账号密码,我们还能怎么做身份认证?

04身份认证:除了账号密码,我们还能怎么做身份认证?

时间:2023-09-19 19:44:21浏览次数:32  
标签:04 登录 微信 用户 认证 密码 应用 身份

高效安全的对称加密算法,解决密钥分发难题的加密算法(防止对称密钥泄露),以及提供单向加密的三列算法

问题

现在公司有好几个应用,每一个应用都有独立的账号体系,管理起来失分复杂。而且,内部员工的账号系统也没有建设起来,应该怎么解决这些问题?

身份认证

分为两个部分:对外认证和对内认证

对外认证,其实就是应用的登录注册模块,面向用户进行认证。对外认证的入口比较集中,一个应用通常只有一个登录入口。因此,可以在登录这个功能上,时效内很多种认证的方式。这就可以用到之前提到的你知道什么、你拥有什么、你是什么

除了应用本身需要有登录注册的模块,应用的各种内部系统同样需要涉及登录认证的功能,比如:服务器的登录、数据库的登录、Git的登录、各种内部管理后台的登录等,也就是对内登录

对外和对内认证的区别

对外认证是单一场景下的认证,对内认证是多场景下的认证

 

身份认证主要面临的威胁

主要包括无认证、弱密码、认证信息泄露

首先,没有认证环节是所有应用和公司存在的最普遍问题。尤其是在对内认证的部分,很多公司的数据库、接口、管理后台在使用的时候,并不经过认证这一环节

除了没有认证环节,弱密码也是一个普遍存在的问题。安全的最大敌人是人类的惰性。

认证信息泄露

是指黑客通过各种手段,拿到了用户的密码信息和身份凭证这样的认证信息。常见的手段包括钓鱼、拖库等

查看邮箱密码是否被泄露

https://haveibeenpwned.com/

总的来说身份认证面临的威胁其实都是认证信息的泄露。

 

身份认证的安全怎么保证?

解决安全问题,不只是在解决一个技术问题,还要培养外部用户和内部员工的安全意识。也就是说,认证安全并没有什么完善的技术解决方案,更多的是通过一些规章制度去强化安全意识

基本技术解决方案

比如,对密码的强度进行限制(如强制使用字母、数字、特殊字符的组合密码,并达到一点长度),强制用户定期修改密码,对关键操作设置第二密码(如微信、支付宝的支付密码

 

当然,随着互联网的发展,也会不断地利用新技术去升级验证手段,帮助用户降低被攻击的风险。比如,通过手机验证替代密码验证(因为丢失手机的几率比丢失密码的几率低);通过指纹等生物特征替代密码。

除此之外,还可以通过加密信道(如HTTPS)来防止窃听;也可以通过给下发的凭证设置一个有效期,来限制凭证在外暴露的时间,以此来减少重放攻击带来的影响。

随着公司业务的不断扩张,当账号体系变得越来越复杂时,如何对这些账号进行统一的管理,是解决身份认证问题的关键。而单点登录就是一个非常有效的解决方案。

 

单点登录如何解决身份认证问题?

几种典型的单点登录方式:CAS流程、JWT、OAuth和OpenID。

 

CAS(Central Authentication Service,集中式认证服务)流程

不属于某一种单点登录的实现方式,而是提供了一整套完整的落地方案。整体流程如下图所示,

 

1、 加入用户现在要访问某个应用。比如极客时间App

2、 应用需要进行认证,但应用本身不具备认证功能。因此,应用将用户重定向至认证中心的页面。比如,你在登录一个应用的时候。它显示你可以选择微信、QQ、微博账号进行登录,你点击微信登录,就跳转至微信的登录页面了

3、 用户在认证中心页面进行认证操作。如果用户之前已经在其他应用进行过认证了,那么认证中心可以直接识别用户身份,免去用户再次认证的过程。

4、 认证完成后,认证中心将认证的凭据,有时会加上用户的一些信息,一起返回给客户端。也就是你在微信登录完成后,回到了极客时间App

5、 客户端将凭据和其他信息发送给应用,也就是说,极客时间App将微信的登录凭据发送给了极客时间后端

6、 应用收到凭据后,可以通过签名的方式,验证凭据的有效性。或者,应用也可以直接和认证中心通信,验证凭据并获取用户信息。这也就是为什么极客时间能够拿到你的微信头像了

7、 完成认证

 

JWT(Json Web Token)是一种非常轻量级的单点登录流程。他会在客户端保存一个凭证信息,之后在你每一次登录的请求中都带上这个凭证,将其座位登录状态的依据。JWT的好处在于,不需要应用服务端去额外维护Cookie或者Session了。但是,正式因为它将登录状态落到了客户端,所以我们无法进行注销等操作了。

 

oAuth(Open Authorization)的主要特点是授权,也是通常用QQ、微信登录其他应用时所采用的协议。通过OAuth,用户在完成认证中心的登录之后,应用只能够验证用户确实在第三方登陆了。但是,想要维持应用内的登录状态,应用还是得颁发自己的登录凭证。这也就是为什么QQ授权后,应用还需要绑定你的手机号码。这也就意味着,应用是基于QQ的信息创建了一个自身账号。

 

OpenID 和OAuth的功能基本一致。但是OpenID不提供授权的功能。最常见的,当我们需要在应用中使用微信支付的时候,应用只需要手机支付相关的信息即可,并不需要获取用户的微信头像

在这个流程中,应用的服务器直接接受用户的认证信息,并转发给认证中心。对用户来说,这个认证中心是完全透明的。但是,这个流程给与了应用过多的信任,从安全性方面老梁的话,是不合理的。在这个过程中,应用直接获取到了用户的认证信息,但应用能否保护好这些信息呢?

建议是,多花一些公服去接入成熟的单点登录体系,而不是自己去实现一个简化版的。JWT使用范围广,在单点登录的选取上面,如果想要将用户信息做统一管理,选择它最为简单;如果认证中心只是被用来维护账号密码,由业务去维护用户所绑定的其他手机等信息,那么,采用OAuth更合适。

 

单点再强只是一个点,各方面强才是真的强。 简单回答一下老师今天的问题,个人觉得应当是从多方面去做这件事情:

1.程序层:程序端在传输中禁用明文,早年的sql注入其实就是web页面传了具体值;其实目前账号登录最常规的还是手机验证码,动态随机生成的,超时重发而已;

2.数据库层:密码存储以算法加密形式存储,早年大量的明文存储其实造成了许多问题

3.操作系统层:强密码且定时过期,这个其实从windows2008开始就非常典型;如:密码必须大小写区分、必须特殊字符、必须16位之类的

4.网络层:就如老师之前课程举的例子-蹭网,公共网络中密码被泄露的风险很大,国内大量的密码泄露其中不少是蹭网蹭出来的。

 

标签:04,登录,微信,用户,认证,密码,应用,身份
From: https://www.cnblogs.com/Adam-Ye/p/17715633.html

相关文章

  • case04数据结构字典
    编程提示·针对字典而言,输出字典的键运用keys函数,输出字典的值运用values函数,如需遍历字典的全部元素则可以通过items函数完成。·在字典中新增键和值,可以运用update函数;删除相应的键和值,则可以运用del命令。汇率变量日期中间价涨跌幅(%)美元兑人民币202......
  • 04_串口打印print函数
    串口打印print函数intfputc(intch,FILE*f){ HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,1000); returnch;}......
  • 亚马逊 化妆品/护肤品检HRIPT,BCOP,COA,MSDS,FDA,CPNP认证
    亚马逊化妆品/护肤品检HRIPT,BCOP,COA,MSDS,FDA,CPNP认证亚马逊作为全球最大的电子商务平台之一,对平台上销售的产品有着严格的质量要求。为了保证消费者的权益所以亚马逊会要求卖家提供认证,化妆品比较常见的认证有哪些?下面小编就为大家介绍一下:亚马逊化妆品/护肤品检HRIPT,BCOP,COA,M......
  • 【漏洞复现】Openfire身份认证绕过漏洞到RCE(CVE-2023-32315)
    1、简介Openfire是一个基于XMPP协议的即时通讯服务器,也称之为即时通讯平台。在即时通讯中往往因为需要保存一些状态或者数据所以不能采用点对点通讯,而是需要搭建服务器来转发。Openfire的管理页面包含5个菜单选项,分别是服务器基本信息配置选项、用户组管理选项、会话管理选项、分......
  • 2023年9月上海/杭州/广州/深圳DAMA-CDGA/CDGP数据治理认证报名
    DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业竞争能力。DAMA是数据管理方面的认证,帮助数据从业者提升......
  • 2023年9月上海/杭州/深圳NPDP产品经理国际认证报名
    产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。  【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是全球范围内产品开发与管理专业人士最杰出的倡导者,协助个人、企业......
  • 2023年9月上海/杭州/深圳CSPM-3国标项目管理中级认证报名
    CSPM-3中级项目管理专业人员评价,是中国标准化协会(全国项目管理标准化技术委员会秘书处),面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才职业能力评价和激励机制的要求,培养我国项目管理领域复合型人才。  【证书含金量】 ·竞聘优先......
  • 一文搞懂 OTP 双因素认证
    GitHub在2023年3月推出了双因素认证(two-factorauthentication)简称2FA,并且承诺所有在GitHub上贡献的开发者在2023年底前启用双因素认证。因此最近在访问GitHub时如果注意的话经常会看到提示让在2023年10月12日之前开启,否则可能影响账户的使用:如果之前没了解过......
  • github 2fa中国认证及TOTP App
    BecauseofyourcontributionsonGitHub,two-factorauthenticationwillberequiredforyouraccountstartingSep28,2023.Thankyouforhelpingkeeptheecosystemsafe!Learnmoreaboutourtwo-factorauthenticationinitiative.2FA对github有代码贡献的帐号......
  • cka认证考题复习
    1、新建命名空间,在该命名空间中创建一个pod•命名空间名称:cka•pod名称:pod-01•镜像:nginx命令行配置:kubectlcreatenamespaceckakubectlrunpod-01--image=nginx--namespace=ckayaml配置:apiVersion:v1kind:Podmetadata:name:pod-01namespace:ckaspec:......