安全攻防技能30讲
何为舟
前微博安全研发负责人
立即订阅
2521 人已学习
课程目录
已更新 5 讲 / 共 30 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 别说你没被安全困扰过
免费
安全基础概念 (4讲)
01 | 安全的本质:数据被窃取后,你能意识到问题来源吗?
02 | 安全原则:我们应该如何上手解决安全问题?
03 | 密码学基础:如何让你的密码变得“不可见”?
04 | 身份认证:除了账号密码,我们还能怎么做身份认证?
安全攻防技能30讲
登录|注册

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

何为舟 2019-12-16
你好,我是何为舟。
上一讲,我们详细讲解了密码学的三种算法:高效安全的对称加密算法,解决密钥分发难题的非对称加密算法,以及提供单向加密的散列算法。
在表达了你对密码学清晰的理解之后,面试官开始相信你具备安全方面的基础知识了。于是,他准备和你探讨一下安全落地的细节。基于你之前提出的“黄金法则”,面试官问道:“黄金法则的认证(Authentication)部分不就是账号密码吗?这么简单的东西,有必要考虑得那么复杂吗?”
认证,也就是身份识别与认证(通常来说,识别和认证是一体的,因此后面我会用身份认证来指代识别和认证)。毫无疑问,对于一个安全的应用来说,身份认证是第一道门槛,它为后续所有的安全措施提供“身份”这样一个关键信息。
听完你的简单叙述后,面试官直接问道:“现在我们公司有好几个应用,每一个应用都有独立的账号体系,管理起来十分复杂。而且,内部员工的账号体系也没有建设起来。如果是你,你会怎么解决这些问题呢?”
现在你可能很难回答这些问题,没关系,带着这些问题,让我们来学习今天的内容。相信学完之后,再有人问,你都可以对答如流。

身份认证包括哪些东西?

首先,身份认证不仅仅是一个输入账号密码的登录页面而已,应用的各个部分都需要涉及身份认证。在我看来,身份认证可以分为两个部分:对外认证和对内认证
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《安全攻防技能30讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(8)

  • 胡波 allenhu
    老师, 哪个haveibeenpwned网站显示的结果准确吗?我自己的gmail邮箱都显示"oh no" , 可是google并没有给我汇报这个gmail密码已经被泄露了啊?

    作者回复: 还是比较准确的。不过因为它没有显示具体细节,很可能是很早期的密码被泄露了。

    2019-12-16
    1
  • tt
    老师讲解了JWT和OAuth在应用场景上的区分,拓宽了思路。

    之前只是理解JWT是OAuth流程中token的一种特殊形态:

    1、内容是客户端可理解而不是不透明的;

    2、内容可以自带数字签名而不需要去认证中心验证。

    作者回复: 嗯,整体上来说,相似的地方会比较多。主要的区别还是在最终的目的上。

    2019-12-16
    1
  • leslie
    填鸭式直接赶完了落下的课,发现有些问题有注意却没有去真正明白且换位思考。
    极客时间做秋冬课程调研时曾经问过我,我当时就提出安全是目前极客时间最空白的内容却又是最需要的,年末终于出来了。前几个月学全栈梳理课程时尤为感受到安全的重要性,虽然很多时候我们会由于职业的关系在某方面去做一些安全策略,可是安全不是仅仅是局部的数据库、程序开发、网络防火墙,而是贯穿整个计算机系统的。单点再强只是一个点,各方面强才是真的强。
          简单回答一下老师今天的问题,个人觉得应当是从多方面去做这件事情:
        1.程序层:程序端在传输中禁用明文,早年的sql注入其实就是web页面传了具体值;其实目前账号登录最常规的还是手机验证码,动态随机生成的,超时重发而已;
        2.数据库层:密码存储以算法加密形式存储,早年大量的明文存储其实造成了许多问题
        3.操作系统层:强密码且定时过期,这个其实从windows2008开始就非常典型;如:密码必须大小写区分、必须特殊字符、必须16位之类的
        4.网络层:就如老师之前课程举的例子-蹭网,公共网络中密码被泄露的风险很大,国内大量的密码泄露其中不少是蹭网蹭出来的。
         以上就是个人对此在这些年工作中最典型看到和接触到问题:网络和安全这块确实偏弱,刚看完胥峰老师的书,希望课程中能和老师交流学习,提升这块的能力,更好的应当安全风险。谢谢老师的分享。

    作者回复: 你好,感谢你的留言。看起来你是确实有体会过安全的强需求的。课程会一点一点的覆盖主要的知识点,每节课的思考会集中在某个方向上,你也可以自己串联一下。希望能够帮助到你~

    2019-12-16
    1
  • 夜空中最亮的星(华仔)
    很受益,谢谢老师
    2019-12-17
  • 丽莎
    我们现在已经越来越习惯用这种通过微信/微博或者其他CAS来认证登陆的场景了,我一直好奇的难点是,在CAS完成认证过程后,登陆凭据是如何从CAS服务器转移到欲登陆的APP中的。我们知道Cookie等内容都是严格遵循浏览器的同源策略的,就算使用30X跳转,设置的Cookie也只能存在CAS域名内。我惟一想到的方法是在Reloacation的URL后面跟上认证凭证,请问我的想法对吗?老师有没有额外的资料可以补充给我阅读,谢谢。

    作者回复: 就是通过跳转实现的。不过在网页中,一般是会生成一个form表单,表单的内容就是各种凭证,然后提交的时候,相当于以POST请求跳转到新页面,这样传递信息的长度也不受限制。具体可以看一下,SAML,网页时代比较流行的单点登录机制。

    2019-12-16
  • 小晏子
    试着答一下思考题,
    目前公司认证主要纯在的问题是对内认证偏弱,各种服务器环境密码过于简单,而且口口相传,很容易泄露,也很容易遭受内部攻击。
    要解决这个问题,我认为公司内部需要建立起一套对内认证的安全体系,首先,对于内部系统的登陆,可以使用跳板机的形式,绑定员工账号,员工使用其个人用户名密码登陆,其次,建立权限等级,不同员工绑定不同权限组,做到安全隔离,最后,可以建立账号监控体系,定期监控登陆日志,做风险分析报警等,防范风险于未然。

    作者回复: 赞

    2019-12-16
  • 老师,你好,咨询个问题。

    应用服务和中间件(这两个以下简称服务)部署在公司的机房里,服务通过nginx对外暴露。nginx在机器A上,其余服务在机器B~N,公司的安全人员要扫描所有机器上的应用。个人感觉如果机器B~N上做好防火墙设置,只需要关系机器A上的安全问题就可以了,机器B~N不对外暴露,在应用服务层面就没有安全问题了。请问是否是这样

    作者回复: 嗯,这么做,一定程度上能缓解安全问题。比如nginx如果只暴露80端口,那么B~N的漏洞则主要集中在Web漏洞上。
    但是,内网并不是绝对安全的,通过Web漏洞,也可以实现内网穿透,访问内网的其他服务。如果你的防火墙只是做在A和BN之间,那么对于这种横向渗透,就起不到防御作用了。

    2019-12-16
  • xiao豪
    老师,请问LDAP是属于哪种,适合在什么场景下使用?

    作者回复: 内部认证用LDAP的多一些。LDAP比较独立,它自身包含了单点登录和群组管理的功能,可以方便公司内部作为组织架构的基础数据库支持。

    2019-12-16
收起评论
8
返回
顶部