安全攻防技能30讲
何为舟
前微博安全研发负责人
立即订阅
2872 人已学习
课程目录
已更新 9 讲 / 共 30 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 别说你没被安全困扰过
免费
安全基础概念 (5讲)
01 | 安全的本质:数据被窃取后,你能意识到问题来源吗?
02 | 安全原则:我们应该如何上手解决安全问题?
03 | 密码学基础:如何让你的密码变得“不可见”?
04 | 身份认证:除了账号密码,我们还能怎么做身份认证?
05 | 访问控制:如何选取一个合适的数据保护方案?
Web安全 (3讲)
06 | XSS:当你“被发送”了一条微博时,到底发生了什么?
07 | SQL注入:明明设置了强密码,为什么还会被别人登录?
08 | CSRF/SSRF:为什么避免了XSS,还是“被发送”了一条微博?
安全攻防技能30讲
登录|注册

05 | 访问控制:如何选取一个合适的数据保护方案?

何为舟 2019-12-18
你好,我是何为舟。
在上一讲中,我们主要从身份认证的场景和威胁上,对身份认证进行了介绍。同时,身份认证的核心问题是身份管理,因此我们可以采用单点登录的形式,来解决复杂的身份管理问题。常用的单点登录方式包括 CAS 流程、JWT、OAuth 和 OpenID。
那听了你对身份认证的规划之后,面试官觉得很满意,接着又问道:“既然身份认证都做到这么好了,是不是就不需要所谓的‘黄金法则’了?有了身份认证,还需要授权和审计做什么呢?”
对于这个问题,你肯定要先给出否定的回答,这个很显然。接着,你可以说:“通过身份认证,我们只能够确认用户的身份,而对用户的操作和访问行为的把控,就是授权和审计的任务了。”
接着,面试官又发问了:“我理解身份认证和授权的区别了。目前,我们公司的授权机制比较随意,基本就是有什么需求就做什么。如果是你,你会怎么优化授权机制呢?”
那这一讲中,我们就来介绍几种常见授权机制的概念和原理,以及在实际工作中我们该如何去选取合适的保护机制。这些通用的机制学习起来可能比较抽象,但“磨刀不误砍柴工”,理解了宏观上的知识基础,对我们后续学习各类具体的防御机制会有很大的帮助。
我个人认为,“授权”和“访问控制”其实是同一个概念,都是允许或者禁止某个用户做某件事情。现在行业内普遍用“访问控制”这个术语来讨论相关问题。因此,后续我们都会用“访问控制”来替代“授权”。如果你看到了这两种说法,知道它们是一个意思就可以了。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《安全攻防技能30讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(11)

  • tt
    最近一直在做统一认证和单点登录的事情,还有第三方API访问认证、授权(访问权控制)的事情,自己也查了好多资料,但经过老师的梳理,所有的东西一下子结构化、调理化了好多。

    在做设计方案的时候,虽然最终方案八九不离十,但始终有一种朦胧感,和领导(而不是面试官,哈哈)汇报方案的时候也总是眉毛胡子一把抓,一会儿讲数据,一会儿讲现学现卖的攻击方法,一会儿讲到SESSION、TOKEN和CORS。

    有了老师给的框架,这下方便设计和汇报了。从数据和防范给领导切入,在往回说如何授权(内网采用基于角色的访问控制,公网还要加上DAC),最后落实到该选取外网基于OAuth+自有应用状态、内网基于自有token+各内部模块维护自有状态的方法。

    作者回复: 赞

    2019-12-18
    3
  • MJ
    调理清晰 大赞
    2019-12-18
    1
  • Cy23
    首先根据role-BAC进行基于角色的访问控制,然后根据需要判定是否需要DAC用户可以控制自己的文件能够被谁访问,再细化需求,判定是否需要MAC让主体和客体被划分为“秘密、私人、敏感、公开”这四个级别,
    2019-12-18
    1
  • leslie
    "威胁评估"这个如何去做其实是根源:通过威胁评估从而做好风险防范。访问控制的根源其实是由于威胁评估而引发的:我觉得我们可以这样去理解,由于有这些威胁评估故而我们要去做访问控制。
          举个例子:家里/企业如果不装门和锁,可能任何人都能进入;如果天下无贼当然可以不控制-不过现实不可能,因此我们才需要各种各样的门。
         老师今天的课程其实吧威胁评估放到访问控制前面更好理解和解答今天的问题。迟到的补课,刚忙完其它,后面持续跟进学习和答题,从而更好的掌握知识。谢谢老师的分享。
    2019-12-24
  • ZeroIce
    基于角色,基于规则,基于标签。似乎都是为了分类。例如:对于什么角色分配什么权限,也就是相当于给他打了个标签。两者由散变为汇总分类。基于角色=基于标签?有什么区别?不太理解这个问题
    2019-12-24
  • 鸵鸟
    从MAC授权机制来看,如果需要同时保证机密性和完整性,那么不同安全级别的主体只能访问相同安全级别的客体。请问可以具体描述一下这两个点嘛?不是很理解

    作者回复: 是的,如果想要同时保护机密性和完整性的话,则需要禁止跨级别的数据交换。具体可以了解一下:Biba模型和Bell-LaPadula模型。

    2019-12-21
  • boyxie
    大家对于数据权限的设计有没有什么最佳实践呢,我们现在是各数据冗余用户ID和机构ID,在操作数据时加上相应的SQL过滤各个ID,不知道有没有更加解耦的方式

    作者回复: 最好是做到统一管理。可以是数据库层面的,也可以是应用层面的。比如数据库层面,如果是基于角色,那么可以给不同的角色定义不同的数据库视图,就可以避免获取无关的数据。应用层就是做一个统计的查询入口,进行id的过滤。

    2019-12-19
  • Zhen
    条例清楚,特别是脑图把各个知识点总结的很清晰,赞!
    另外,这里主要举的是网络安全的例子,其框架也可以应用到手机安全中。比如,认证阶段,不仅要通过口令、指纹、人脸等验证用户是否合法;另一方面,网络还需要验证手机是否可信是否安全;在授权或者Access control方面,SELinux/SEAndroid也是基于MAC机制的,哪些资源可被哪些进程以哪种方式访问,都预先标记设置好了;如果需要在手机上播放加密流媒体,也会有DRM方面的鉴权解密操作,保证视频被安全的访问。

    作者回复: 是的,安全框架对于各个场景,基本都是相通的~

    2019-12-19
  • 追风筝的人
    dac 由用户进行授权控制
    2019-12-18
  • 星亦辰
    数据库授权是DAC,限定自己的数据库可以被哪个服务器的哪个用户访问。
    Iptables 是 rule back 根据来源 去向判断数据去留。

    应用系统后台里应用最多的是 role bac。

    某些机房的ACL属于 MAC 吧,强制策略。

    作者回复: 赞

    2019-12-18
  • 小晏子
    有个疑问请教老师:系统基于白名单的访问方式能划到哪一个类里呢?

    作者回复: 看操作人是谁。比如自己给自己的系统设定白名单,那就更偏向DAC,如果是运维给各个系统设置白名单,那就更偏向ruleBAC。

    2019-12-18
    2
收起评论
11
返回
顶部