04 | 身份认证:除了账号密码,我们还能怎么做身份认证?
04 | 身份认证:除了账号密码,我们还能怎么做身份认证?
讲述:何为舟
时长16:26大小15.06M
身份认证包括哪些东西?
身份认证主要面临哪些威胁?
身份认证的安全怎么保证?
单点登录如何解决身份认证问题?
总结
思考题
赞 12
提建议
精选留言(33)
- 小晏子2019-12-16试着答一下思考题, 目前公司认证主要纯在的问题是对内认证偏弱,各种服务器环境密码过于简单,而且口口相传,很容易泄露,也很容易遭受内部攻击。 要解决这个问题,我认为公司内部需要建立起一套对内认证的安全体系,首先,对于内部系统的登陆,可以使用跳板机的形式,绑定员工账号,员工使用其个人用户名密码登陆,其次,建立权限等级,不同员工绑定不同权限组,做到安全隔离,最后,可以建立账号监控体系,定期监控登陆日志,做风险分析报警等,防范风险于未然。展开
作者回复: 赞
共 2 条评论15 - leslie2019-12-16填鸭式直接赶完了落下的课,发现有些问题有注意却没有去真正明白且换位思考。 极客时间做秋冬课程调研时曾经问过我,我当时就提出安全是目前极客时间最空白的内容却又是最需要的,年末终于出来了。前几个月学全栈梳理课程时尤为感受到安全的重要性,虽然很多时候我们会由于职业的关系在某方面去做一些安全策略,可是安全不是仅仅是局部的数据库、程序开发、网络防火墙,而是贯穿整个计算机系统的。单点再强只是一个点,各方面强才是真的强。 简单回答一下老师今天的问题,个人觉得应当是从多方面去做这件事情: 1.程序层:程序端在传输中禁用明文,早年的sql注入其实就是web页面传了具体值;其实目前账号登录最常规的还是手机验证码,动态随机生成的,超时重发而已; 2.数据库层:密码存储以算法加密形式存储,早年大量的明文存储其实造成了许多问题 3.操作系统层:强密码且定时过期,这个其实从windows2008开始就非常典型;如:密码必须大小写区分、必须特殊字符、必须16位之类的 4.网络层:就如老师之前课程举的例子-蹭网,公共网络中密码被泄露的风险很大,国内大量的密码泄露其中不少是蹭网蹭出来的。 以上就是个人对此在这些年工作中最典型看到和接触到问题:网络和安全这块确实偏弱,刚看完胥峰老师的书,希望课程中能和老师交流学习,提升这块的能力,更好的应当安全风险。谢谢老师的分享。展开
作者回复: 你好,感谢你的留言。看起来你是确实有体会过安全的强需求的。课程会一点一点的覆盖主要的知识点,每节课的思考会集中在某个方向上,你也可以自己串联一下。希望能够帮助到你~
共 2 条评论9 - 。2019-12-16老师,你好,咨询个问题。 应用服务和中间件(这两个以下简称服务)部署在公司的机房里,服务通过nginx对外暴露。nginx在机器A上,其余服务在机器B~N,公司的安全人员要扫描所有机器上的应用。个人感觉如果机器B~N上做好防火墙设置,只需要关系机器A上的安全问题就可以了,机器B~N不对外暴露,在应用服务层面就没有安全问题了。请问是否是这样展开
作者回复: 嗯,这么做,一定程度上能缓解安全问题。比如nginx如果只暴露80端口,那么B~N的漏洞则主要集中在Web漏洞上。 但是,内网并不是绝对安全的,通过Web漏洞,也可以实现内网穿透,访问内网的其他服务。如果你的防火墙只是做在A和BN之间,那么对于这种横向渗透,就起不到防御作用了。
6 - 胡波 allenhu2019-12-16老师, 哪个haveibeenpwned网站显示的结果准确吗?我自己的gmail邮箱都显示"oh no" , 可是google并没有给我汇报这个gmail密码已经被泄露了啊?
作者回复: 还是比较准确的。不过因为它没有显示具体细节,很可能是很早期的密码被泄露了。
共 3 条评论5 - xiao豪2019-12-16老师,请问LDAP是属于哪种,适合在什么场景下使用?
作者回复: 内部认证用LDAP的多一些。LDAP比较独立,它自身包含了单点登录和群组管理的功能,可以方便公司内部作为组织架构的基础数据库支持。
5 - 雷霹雳的爸爸2019-12-20https://haveibeenpwned.com/ 这个,并不表示邮箱账号泄露了吧,我鬼子文实在是差,但是看下来它的解释,大概还是这个账号对应得标识,或者作为标识,在哪些已经被他收录的安全事件中涉及到了吧,当然有可能,这些安全事件中得网站中我用的和这个标识得email站密码一样,那我自然就中枪了,或者是由于OAuth认证关联信息,然后又被利用等等,这个其实希望老师能详细给解释一下,我最早是用1password时候给我导向到它家的,我还以为是1password宣传自己的产品...另外老师能点评一下1password这家得工具和服务么展开
作者回复: 因为它没有披露密码,所以无法证实。但我认为haveibeenpwned的准确率还是可以的,只不过可能泄露的是很久很久之前的密码。 1password这类密码管理工具还是很好用的,至少我认为是目前个人用户保存密码的最佳解决方案。别人毕竟专门做密码存储的,方案的安全程度肯定比个人自存密码来得靠谱。
4 - 哈德韦2020-07-15老师好,怎么理解使用了 JWT 后,就无法注销了? 1. JWT 都有过期时间,过期后就自动注销了; 2. 如果 JWT 存放在客户端(cookie 或者 local storage),用户点注销,客户端只要删除保存好的 JWT 就行了; 3. 如果“注销”是指从服务器端将用户“强踢下线”,那么可以把密钥更新。(需要实现用户粒度的密钥管理) 以上是我对使用 JWT 注销的理解,请问是否有误?展开
作者回复: 是的。说的其实就是第三种,用户粒度密钥管理实现成本上很高,一般都是统一密钥,所以无法注销。
共 2 条评论3 - 0082020-03-15课程提到的对外认证和对内认证才明白我们的一直理解的认证那么片面,特别是我们还把数据库密码明文写在配置文件里,想想都可怕,最近刚做的服务运维相关的应用,可以管理所有服务状态及配置,因为没有统一的内部认证系统,一直处于裸奔状态,心虚的很,所以一直在思考如何落地统一认证,也同时纠结于认证系统是否需要同时考虑授权,比较偏向于仅考虑App层面的授权(即是否可以访问该App),而每个App内的授权不在统一认证系统里做统一管理。不知道业界一般是如何考虑认证、授权、用户信息管理的。展开
作者回复: 一般内部都是会采用SSO管理所有的内部员工权限的。对于数据库、服务之类的,会在依据服务特性去进行封装,比如使用堡垒机登录服务器,通过网关连接数据库等。
3 - 丽莎2019-12-16我们现在已经越来越习惯用这种通过微信/微博或者其他CAS来认证登陆的场景了,我一直好奇的难点是,在CAS完成认证过程后,登陆凭据是如何从CAS服务器转移到欲登陆的APP中的。我们知道Cookie等内容都是严格遵循浏览器的同源策略的,就算使用30X跳转,设置的Cookie也只能存在CAS域名内。我惟一想到的方法是在Reloacation的URL后面跟上认证凭证,请问我的想法对吗?老师有没有额外的资料可以补充给我阅读,谢谢。
作者回复: 就是通过跳转实现的。不过在网页中,一般是会生成一个form表单,表单的内容就是各种凭证,然后提交的时候,相当于以POST请求跳转到新页面,这样传递信息的长度也不受限制。具体可以看一下,SAML,网页时代比较流行的单点登录机制。
共 2 条评论3 - 曙光2020-03-11老师,CAS流程和企业简单SSO之间的区别还是没弄懂,CAS的第5步“将认证信息发给应用”和企业简单版的第3步“返回认证凭据相关信息”,应用都会接收到认证信息,是不是都存在“过多的信任”问题?
作者回复: 认证凭据的时效性和有效范围是可控的,通常只能在一段时间内认证某一款应用,因此可以下发给应用。但账号密码属于隐私信息,一旦泄漏,就可以认证全部应用,因此会存在风险。
2 - 麋鹿在泛舟2019-12-25请问kerberos属于哪种认证 和 其他几种注意什么差异呢
作者回复: kerberos也算是单点登录的一种,不过更多的应用于面向服务的认证。比如分布式集群中,如何认证每一个服务节点都是可信的,通常会使用keerberos。
2 - tt2019-12-16老师讲解了JWT和OAuth在应用场景上的区分,拓宽了思路。 之前只是理解JWT是OAuth流程中token的一种特殊形态: 1、内容是客户端可理解而不是不透明的; 2、内容可以自带数字签名而不需要去认证中心验证。展开
作者回复: 嗯,整体上来说,相似的地方会比较多。主要的区别还是在最终的目的上。
2 - 程序员二师兄2020-03-24好奇的我赶紧进网站试了一下自己的账号,还好“Good news — no pwnage found!”1
- 轩呀2020-03-23课程中说到了人脸认证,今天在QQ空间里看到了有人发的一款工具,只要一张照片就可以做到点头,眨眼,张嘴等动作,那么对于一些需要验证人脸的应用,应该怎么防御呀
作者回复: 这个就是人脸算法上需要进行的对抗升级了。现在高级的人脸算法,还是有破解难度的,它会对真实的背景环境、纹理信息等进行识别,不是人脸那一块正确了就行。
1 - 业余爱好者2020-01-22认证环节的问题一般都是认证信息的泄露,所以保证认证信息的机密性是非常重要的。 在业界一般采用单点登录实现身份认证。cas是集中式认证服务的简称。它有很多变种,像jwt,oauth,openid等。1
- 律飛2019-12-28目前公司存在的主要问题是管理层和开发人员安全意识薄弱,缺乏安全技术知识,在前期需求分析和设计中对安全几乎不考虑,在后期开发中缺乏系统考虑。另外对内认证偏弱,各种服务器环境密码、admin帐户过于简单。 要解决这个问题,我认为公司应该购买本课程,提高管理层和开发人员的安全意识,学会基本的安全知识。另外应进行安全体系建设,建立安全制度,明确职责和权限。
作者回复: 哈哈,谢谢支持,有问题欢迎留言交流~
1 - Geek_4996c92023-01-04 来自广东公司对外的认证是jwt 对内认证也比较完善,连接服务需要通过跳板机,程序的账号密码是写在nacos,展示的时候会加密处理,因为公司人比较少,一人一个账号(因为发生过乱改生产数据库的事情),做好了权限隔离。但是对redis的处理就简单了,直接跳过了鉴权,但是服务是在内网环境,没有提供公网服务地址。 不好的点在于流程不够规范,本地可以连生产数据库去跑一些数据,也可以很容易能拿到管理员账号。 内部服务之间的接口调用没有鉴权,应该也不需要吧?展开
- 黄福超2022-09-02 来自广东目前公司的服务器密码过于弱,但是有一定的认证,也有一定的隔离,但是没有对应的监控体系, 也没有定期的修改服务器密码
- 周Sir2022-07-05jwt的token存在服务器redis,想让用户下线或者注销时,设置token过期即可。
- AFlymamba2022-06-231、对外认证 互动营销业务,走 OAuth 获取用户在第三方平台相关数据,比方微信公众号授权,借助 openid 做唯一性记录,然后生成业务的 jwt,后续客户端访问服务端每次都需要携带业务 jwt,否则认定为 401。 通常还会做业务补偿,比方让用户输入号码,为业务服务,比方说工单(用户能提供号码)反查,根据号码做短信推送等。 2、对内认证 vpn、定期强制让内部开发更新密码、密码组成有要求。 3、用户体系没做大一统管理,单独服务做认证的话其实问题还好 访问令牌失窃问题。 一是访问令牌具有时效性,过期无法用。 其次限定客户端 ip 等。展开