一、引子

在专栏开篇作中我有提到数据安全架构中的5A概念,5A概念中的其中一个A是授权,因此,本篇我们来聊聊授权相关的东西。

授权的概念:向通过身份认证的主体(用户/应用等)授予或拒绝访问客体(数据/资源等)的特定权限。比如员工默认只能查询自己的薪酬数据,但指定级别以上的主管人员有权查询管辖范围内员工的薪酬数据。

二、授权的原则与方式

从安全意义上,默认权限越小越好(甚至没有任何权限),满足基本的需要即可。例如,在隐私保护越来越重要的今天,用户的个人信息应默认只能用户自己访问等等。授权一般有五种模式,分别是基于属性的授权基于角色的授权基于任务的授权基于ACL的授权动态授权

2.1、基于属性的授权

基于属性的授权,是在规则明确的情况下,应用系统可以不用建立授权表,只将这种规则纳入访问控制模块即可,通过比对属性(或规则),比如是否为资源的所有者、责任人,来决定是否放行。

例如:

● 用户有权查询、修改、删除自己的个人信息,但用户无权查询、修改、删除其他用户的个人信息。
● 允许用户的好友查看其发表的内容,拒绝非好友的访问。
● 设备的负责人有权对自己名下的设备进行运维管理,其他没有权限的人则不能对该设备进行运维管理。

2.2、基于角色的授权

基于角色的授权,是在应用系统中先建立相应的角色,再将具体的用户ID或账号体系的群组纳入这个角色。

用户通过成为某种角色(或其所在的群组成为某种角色),从而拥有该角色所对应的权限。如果用户角色发生变化,不再属于某角色,则对应的权限就失效了。

角色典型的应用场景如下:

● 业务管理员角色。
● 审计员角色。
● 审批角色。
● 非自然人的组织账号(比如很多公司、机构拥有官方的社交网络账号),可将公司账号的维护管理权限授权给某个员工,从而该员工可以官方账号的名义发布信息。

如果不使用角色而是直接授权给指定的员工ID,则在人员转岗或职责变化、新的人员加入等情况发生时,需要频繁地维护权限表,而在这一点上往往做不到及时维护,导致转岗的人员仍然持有重要的权限。使用角色后,只需要维护该角色内的人员清单即可,维护工作量大大减少。

2.3、基于任务的授权

基于任务的授权,是为保障流程任务顺利完成而采取的临时授权机制,该授权需要一项正在进行的任务作为前提条件。

典型场景如下:

● 用户拨打客户服务电话,会生成一个工单,客户服务部的员工为了验证呼入用户的身份,或协助用户解决问题,有权获取该工单所对应用户的联系方式或资料。
● 如果快递包裹上不再允许直接展示完整的收件人的姓名、电话、地址(现在已经有部分快递开始使用脱敏的收件人信息),那么快递员就需要查看派单的收件人信息(或者通过APP间接拨打收件人的电话)。
● 某员工只能在流程某一环节查看申请单信息(比如自己审批的那个环节才能看),流程处于其他环节时就看不到了。

2.4、基于ACL的授权

ACL即访问控制列表,在执行访问控制的时候,访问控制模块会依据ACL设定的权限表来决定是否允许访问。ACL的主体可以是单个用户,也可以是一个群组。

ACL场景举例如下:

● A拥有防火墙策略审批系统的审批权(A在具有审批权的名单中)。
● B授权C登录自己名下的一台服务器(B将C纳入允许登录该服务器的名单中)。
● 防火墙上允许A系统跨区访问B系统(限定访问的源IP、目标IP、目标端口)。

2.5、动态授权

动态授权,是基于专家知识或人工智能的学习,来判断访问者的信誉度,以决策是否放行。比如分析某个请求,如果是正常的用户就允许访问,如果高度怀疑是入侵行为或未授权的抓取网站内容的爬虫,则可能拒绝访问或者需要额外的操作(如输入验证码等)。

三、典型的授权风险

典型的授权风险包括:

未授权访问,就是根本没有授权机制。
平行越权和垂直越权
交叉越权,同时存在平行越权和垂直越权。
诱导授权,隐私保护不力或用户自主授权模式太宽松,导致用户很容易被误导或诱导,轻易授权给第三方应用,交出自己的个人隐私数据。
职责未分离,将不同的管理权限授给同一人。

以上基本都很好理解,就不做过多介绍了,这里我们单独介绍下诱导授权

诱导授权的原因是权限管理过于宽松,容易被诱导授权也是一种风险。作为数据控制者,应严格控制默认权限,以及用户对外的授权机制,防止批量数据泄露。

当然,从法律合规的角度来看,主要问题之一在于没有获得用户显式的同意,包括两个关键动作:

1)选择框,即默认不能勾选,应由用户主动勾选;
2)用户点击同意。

四、授权问题的发现与改进

4.1、授权问题的发现

授权缺陷的发现方式一般是交叉测试法

简单地说,交叉测试法就是不同角色(或不同权限等级)的用户,以及同一角色内的不同用户,互相交换访问地址(含参数),把A使用的地址发给B,把B使用的地址发给A,看结果是否符合业务需要的权限规则。一般情况下,如果存在安全缺陷,业务在上线前需要完成修复。

4.2、授权问题的改进

授权缺陷的改进措施一般是应用内建立授权模块

如果一个业务默认只允许用户访问自己的资料,比如同一个URL地址配合不同的参数,需要在应用内建立授权模块。那么之后:

● 如果当前用户访问的资源是自己的,按规则放行。
● 如果当前用户访问的资源不是自己的,到授权表中检查是否存在对应的授权记录,如属于特定的允许访问的角色,如审批人员、客服人员,则在授权表指定的范围内受控地访问,包括只读权限、只能读取少量指定的资源等。
● 如既不是被授权的用户,也不属于任何被授权的角色,则拒绝访问。

数据安全--3--数据安全5A之授权相关推荐

  1. 1、【java数据安全】数据安全之加密解密(base64、MD、SHA、DES、AES、IDEA、PBE、DH、RSA、EIGamal)、数字签名(DSA、ECDSA)和数字证书介绍、应用示例详细介绍

    java数据安全 系列文章 1.[java数据安全]数据安全之加密解密(base64.MD.SHA.DES.AES.IDEA.PBE.DH.RSA.EIGamal).数字签名(DSA.ECDSA)和数 ...

  2. 医疗数据安全 | 健康医疗数据安全服务体系建设思考

    作者:清华大学软件学院 金涛 冯晓彬本文约5000字,建议阅读10+分钟本文提出以法规政策要求为抓手,以标准研制工作为基础,以检测认证服务为牵引,以产品服务开发为支撑,以主体能力提升为目标,通过保险社 ...

  3. 【案例】金融行业的数据安全风险评估-数据安全治理之数据安全风险评估白皮书

    本文基于学习数据安全治理之数据安全风险评估白皮书 2021 的内容进行整理,希望加深自身对数据安全评估体系的认识,也希望对不了解数据安全风险评估的任何人有所帮助,如存在版权问题,请及时联系我进行删除 ...

  4. java数据安全_java数据安全(一)

    在java开发中,常常需要考虑数据安全问题,然不仅仅需要考虑数据存储的安全,还需要考虑数据的传输安全.自从有了数据安全问题后,密码学也就出来了.了解数据安全,首先需要了解密码学 1.什么是密码学 密码 ...

  5. 2023数字中国创新大赛网络数据安全赛道数据安全产业人才能力挑战赛

    文章目录 写在前面 数据安全 签到挑战 key 遗憾 数据分析 区块链威胁分析.1 区块链威胁分析.2 fernet.1 fernet.2 fernet.3 C2流量分析.1 C2流量分析.2 C2流 ...

  6. 论文计算机数据安全,计算机数据安全论文-20210323002205.doc-原创力文档

    基于小波变换的CDMA图像盲水印算法 刘红岩,张建伟,刘铁柱 (南京信息工程大学数理学院,南京210044) 摘要本文提出了一种盲扩展谱水印算法,将水印信息重复的嵌入到图像多层小波分解的系数中.通过对 ...

  7. 收藏!企业数据安全防护5条建议

    引言:数据安全对企业生存发展有着举足轻重的影响,数据资产的外泄.破坏都会导致企业无可挽回的经济损失和核心竞争力缺失,而往往绝大多数中小企业侧重的是业务的快速发展,忽略了数据安全重要性.近年来,企业由于 ...

  8. 数据安全治理所遵循的有哪些原则

    为了找出大数据时代数据安全需要解决的问题所面临的主要挑战,我们可以梳理数据安全治理的核心思想,简单地说,数据安全治理可以遵循"以数据为中心,以组织为单位,以能力成熟度为基本把握"的 ...

  9. 数据安全态势感知解决方案汇总

    数据安全态势感知前言 进入 21 世纪以来,全球科技创新进入空前活跃时期,新一代技 术的不断涌现驱动着数字经济的高速发展.2020 年我国数字经济规 模已达到 39.2 万亿元,占 GDP比重达 38 ...

  10. Dataphin核心功能(四):安全——基于数据权限分类分级和敏感数据保护,保障企业数据安全

    简介: <数据安全法>的发布,对企业的数据安全使用和管理提出了更高的要求.Dataphin提供基于数据分级分类和数据脱敏的敏感数据识别和保护能力,助力企业建立合规的数据安全体系,保障企业数 ...

最新文章

  1. 实用Common Lisp编程——函数
  2. ddnspod php 脚本_使用DNSPOD的域名解析实现DDNS域名动态的脚本
  3. Ext---CheckBoxGroup的取值和赋值
  4. python读取csv文件_Hello,Python!小鲸教你Python之文件读取
  5. new Image().src资源重复请求问题
  6. 【转载】游戏并发编程的讨论 Nodejs并发性讨论 语法糖术语
  7. 欠阿里云 1 分钱,数据被删除
  8. pytorch自动微分的几个例子
  9. git --amend 使用和撤销
  10. 09、多线程(一) -- 基本概念
  11. Matlab中_pkg.exe,pkg文件该如何打开?轻松打开pkg文件的方法
  12. 用火狐浏览器看中一段代码是复制外部html还是复制内部html,Firefox火狐浏览器漏洞-远程代码执行全过程(附Poc)...
  13. oc引导windows蓝屏_蓝屏错误疑难解答
  14. Symbian开发——Symbian开发知识(转)
  15. 未能联接game center服务器,win10系统GameCenter无法连接服务器的处理步骤
  16. Julia之初体验(九)字符串连接与匹配
  17. 查询员工的薪水涨幅情况
  18. c语言中:=和==的区别是什么?
  19. 电机与拖动 - 8 直流电机的电力拖动
  20. 沃达丰已在英国7城推出5G网络 部分设备由华为提供

热门文章

  1. 好看的皮囊 · 也是大自然的杰作 · 全球高质量 · 美图 · 集中营 · 美女 · 2017-08-22期...
  2. 关于PC端QQ无法加载群文件和打开在线群文件解决方法
  3. 8小时 用kotlin开发一款app
  4. pcie gen3 bios设置_唯一还在认真做BIOS的大陆板卡厂商!七彩虹iGame Z490 Vulcan X V20评测...
  5. 短信验证码平台哪家速度快又稳定,推荐下?
  6. dbm与功率之间简单换算
  7. osm 搭建离线地图_搭建开源地图服务 - 利用OSMGIS和iD
  8. 从零开始学springboot笔记(一)-Spring boot之Hello Word
  9. Excise_day01
  10. RefineNet 理解