密码学应用(二)

  • 简介
  • 访问控制模型
    • 自主访问控制模型
    • 强制访问控制模型
      • BLP模型
      • Biba模型
      • Clark-Wilson模型概念
      • Chinese wall模型
      • 基于角色的访问控制(RBAC)模型
      • 基于属性的访问控制(ABAC)模型

简介

访问控制技术:指防止对任何资源进行未授权的访问,从而使计算机在合法的范围内使用。
一般是指通过用户身份及其所属的某项定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用的一种技术。
访问控制通常用于系统管理员控制用户对服务器、目录、文件等网络资源的访问。

访问控制模型

访问控制模型:在为用户对系统资源提供最大限度共享的基础上,对用户的访问权限进行管理,防止对信息的非授权篡改和滥用。保证用户在系统安全策略下正常工作,拒绝非法用户的非授权访问请求,拒绝合法用户越权的服务请求。

访问控制模型
自主访问控制模型(DAC) 访问控制列表(ACL)
权能列表(Capacity List)
强制访问控制模型(MAC) 保密性 Bell-Lapudula模型
完整性 Biba模型
Clark-Wilson模型
Chinese Wall模型
基于角色访问控制模型(RBAC)
基于属性访问控制模型(ABAC)(面向对象)

自主访问控制模型

自主访问控制:是指用户有权对自身所创建的访问对象(文件、数据表等)进行访问,并可将对这些对象的访问权授予其他用户和从授予权限的用户收回其访问权限。


常用应用:Linux的文件权限,实现访问控制表/矩阵:

gatfacl FileName #获取文件控制访问列表
setfacl -m u:userName:7 FileName    #设置用户在文件或目录控制访问列表
setfacl -m g:groupName:7 FileName   #设置用户组在文件或目录控制访问列表
setfacl -x u:UserName FileName  #删除某用户在某个目录或者文件上的访问列表
setfacl -x u:groupName FileName #删除某用户组在某个目录或者文件上的访问列表
setfacl -b FileName #取消对该文件上的所有ACL权限

DAC模型特点:

  • 授权的实施主体自主负责赋予和回收其他主体对客体资源的访问权限。DAC模型一般采用访问控制矩阵和访问控制列表来存放不同主题的访问控制信息,从而达到对主体访问权限的限制目的;
  • ADL(访问控制表)是DAC中常用的一种安全机制,系统安全管理员通过维护ACL来控制用户访问有关数据。
    DAC模型缺点:
  • 主题的权限太大,无意间就可能泄露信息;
  • 不能防备特洛伊木马的攻击访问控制表;
  • 当用户数量多、管理数据量大时,ACL会很庞大。不移维护。

访问控制矩阵(ACM:Acess Control Matrix)中使用矩阵的列和行来分别对应访问主体和访问客体,二者交叉位置的元素则代表着相应的主体对客体的操作规则:
访问控制列表(ACL:Access Control List):列表对应某个固定客体,其中的列表示能够对此客体进行一定操作的主体。

强制访问控制模型

简介:

主体和客体都有一个固定的安全属性,系统用该安全属性来决定一个主体是否可以访问某个客体。是一种强加给访问主体的规则。

BLP模型

BLP模型(Bell-Lapudula):是D.Elliott Bell和Leonard J.Lapudula于1973年提出的一种模拟军事安全策略的计算机访问控制模型;
BLP也是最早也是最常用的一种多级访问控制模型;
BLP用于保证系统信息的机密性。
BLP模型的安全策略包括自主安全策略和强制安全策略两个部分:

  • 自主安全策略使用一个访问控制矩阵表示,矩阵中的元素表示主体对客体所有允许的访问模式,主体按照在访问矩阵中被授权的对客体的访问权限对客体进行相应的访问;
  • 强制安全策略对每个主体和客体都定义了安全级,安全级由密级和范畴构成。安全级之间存在着支配关系(密级:绝密>机密>秘密>公开,范畴:军事、外交、商务等。密级是大小关系,范畴是包含关系)。

BLP安全特性:

  • 低安全级不可以向高安全级读,高安全级可以向低安全级写;

*特性:

  • 低安全级可以向高安全级写,低安全级不可以向高安全级读;
  • 高安全级可以向低安全级读,高安全级不可以向低安全级写;
    (两种特性同时存在)
    (BLP模型和Biba模型安全特性相反。)

Biba模型

Biba模型:由Biba在1977年提出,多级访问控制模型,保护数据完整性;
强制安全策略为每一个主体和客体都分配了完整级;
Biba安全特性:

  • 低安全级可以想高安全级读,低安全级不可以高安全级写;
  • 高安全级可以向低安全级写,高安全级不可以向低安全级读;

(BLP模型和Biba模型安全特性相反。)

Clark-Wilson模型概念

Clark-Wilson模型是一个确保商业数据完整性的访问控制模型,由计算机科学家David D. Clark和会计师Davicl R.Wilson发表于1987年,并于1989年进行了修订。
如果说BLP模型更注重于军事领域的计算机应用的话,Clark-Wilson模型则偏重于满足商业应用的安全需求。

在商业应用环境中,最关心系统数据的完整性以及对这些数据操作的完整性。数据的完整性是指,如果数据满足给定的条件,则称数据处于一个一致性状态,在每次操作前和操作后,数据都必须满足这个一致性条件。系统的一个事务处理就是一系列操作,使系统从一个一致性状态转移到另一个一致性状态。
数据操作的完整性是指,需要有人检查和验证事务处理是否被正确执行,一个事务需要两个或两个以上的不同的人来执行,如果要使用一个事务处理来破坏数据,必须有两个不同的人员犯错,或者他们合谋担保该事务处理已被正确实现。

Chinese wall模型

Chinese Wall模型由Brewer和Nash提出,是一种同等考虑保密性和完整性的访问控制模型。
Chinese Wall模型主要用于解决商业应用中的利益冲突问题,它在商业领域的应用与BLP模型在军事领域的作用相当。
与BLP模型不同的是,访问数据不是受限于数据的属性(密级),而是受限于主体已经获得了对哪些数据的访问权限。Chinese Wall模型的主要设计思想是将一些可有旨会产生访问冲突的数据分成不同的数据集,并强制所有主体最多只能访问一个数据集,而选择访问哪个数据集并未受强制规则的限制。

Chinese Wall模型定义

在Chinese Wall模型中,客体分为无害客体和有害客体两种,其中,无害客体为可以公开的数据,有害客体为会产生利益冲突,需要限制的数据。
Chinese Wall安全模型的两个主要属性:
① 用户必须选择一个他可以访问的区域(DAC)。
② 用户必须自动拒绝来自其他用户所选区域的利益冲突区域的访问(MAC)。

基于角色的访问控制(RBAC)模型

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。
RBAC认为授权实际就是who,what,how三者之间的关系,即who对what进行how的操作。Who,权限的拥用者或主体(如Principal、User、Group、Role、Actor等等);what,权限针对的对象或资源(Resource、Class);How,具体的权限(Privilege,正向授权与负向授权)。

RBAC模型支持三个著名的安全原则:

  • 最小权限原则
    受保护的敏感信息du只能在一定范围内被共享,履行工作职责zhi和职能的安全dao主体,在法律和相关安全策略允许的前提下,为满足工作需要。仅被授予其访问信息的适当权限,称为最小化原则。敏感信息的。知情权”一定要加以限制,是在“满足工作需要”前提下的一种限制性开放。可以将最小化原则细分为知所必须(need to know)和用所必须(need to use)的原则。
  • 分权制衡原则
    在信息系统中,对所有权限应该进行适当地划分,使每个授权主体只能拥有其中的一部分权限,使他们之间相互制约、相互监督,共同保证信息系统的安全。如果—个授权主体分配的权限过大,无人监督和制约,就隐含了“滥用权力”、“一言九鼎”的安全隐患。
  • 安全隔离原则
    隔离和控制是实现信息安全的基本方法,而隔离是进行控制的基础。信息安全的一个基本策略就是将信息的主体与客体分离,按照一定的安全策略,在可控和安全的前提下实施主体对客体的访问。

RBAC的优点:

主要在于易用和高效。给用户授权时只需要对角色授权,然后将相应的角色分配给用户即可;从技术角度讲,思路清晰且易于实现,且后期维护时只需要维护关系模型,显得简单而高效。

RBAC的缺点主要有两个:

  1. 在进行较为复杂的权限校验时需要不断地遍历和递归,会造成一定的性能影响。
  2. 缺少数据权限模型,基于 RBAC来实现数据权限校验比较复杂和低效。

基于属性的访问控制(ABAC)模型

ABAC:更精细的访问控制,用来匹配我们复杂的业务场景,同时这个模型易于理解和实现,也利于控制与运维


传统的 RBAC 与 ACL 等访问控制机制中,可以认为是 ABAC 的子集,对于 RBAC,只是我们的访问机制的实现只是基于属性 role而已,ACL 则是基于属性是 identity 的 AC。


术语

  • Attribute:属性,用于表示 subject、object 或者 environment conditions的特点,attribute 使用 key-value 的形式来存储这些信息,比如我在公司的 role 是 developer,role 是key,developer 是 value,而我的小组昵称袋熊,key 是 team,value 是 wombat。

  • Subject:常常指代使用系统的人或者其他使用者(non-person entity,NPE),比如说客户端程序,访问 API 的client 或者移动设备等等。当然一个 subject 可以有多个的 attributes,就像用户属性这些我们曾经用过的名词一样。

  • Object:指代我们这个 ACM 需要管理的资源,比如文件,比如某项记录,比如某台机器或者某个网站,任何你需要进行访问控制的资源都可以称为object,同样 object 也可以有多项属性,比如袋熊组的桌子,或者洛克组的线上实例,我们也常常使用 resource来描述这些资源,但是在 ABAC 的环境下,我们称为 object。

  • Operation:有了 object 有了 subject,自然就有了 subject需要做的事情,比如查看某条记录,登录某台服务器,使用某个 SaaS服务进行报销或者查看候选人的作业。往往包括我们常说的读、写、修改、拷贝等等,一般 operation 是会表达在 request 中的,比如HTTP method。

  • Policy:通过 subject、object 的 attribute 与 environment conditions 一起来判断subject 的请求是否能够允许的关系表示,比如说:policy可以用人类语言这样表达,只有袋熊组的人才能访问这几台服务器,或者只有在办公室才能访问这些资源,但对于机器来说,无非就是一个判断语句罢了。当然了,policy可以是一堆这样 boolean 逻辑判断的组合,比如只有公司的正式员工、并且在公司的六楼区域的网络中,才能访问某个服务。你可以使用Specification Pattern 来实现 policy,其实没那么复杂。

  • Environment Conditions:表示目前进行的访问请求发生时,的操作或情境的上下文。Environment conditions 常常用来描述环境特征,是独立于 subject 与 object的,常用来描述系统的情况:比如时间,当前的安全等级,生产环境还是测试环境等等。

密码学应用(二)访问控制相关推荐

  1. 格理论与密码学(二)

    格理论与密码学(二) Babai最近向量算法 高斯格基约简算法 LLL格基约简算法 Babai最近向量算法 设 L ⊂ R n L\subset\R^n L⊂Rn是一个格, v 1 , v 2 , . ...

  2. 信息安全密码学实验二:序列密码的设计与实现

    序列密码的设计与实现 一.实验目的 理解线性反馈移位寄存器的基本构造,编程实现一个简单的线性反馈移位寄存器并用输出序列对给定明文实施逐比特加密. 二.实验原理 给定前一状态的输出,将该输出的线性函数再 ...

  3. 密码学(二):古典密码之维吉尼亚密码的破解

    维吉尼亚密码的破解 一.引言   上一章我们介绍了维吉尼亚密码的原理,是通过移位替换的加密方法进行加密,但是因为概率论的出现这种简单的移位或替换就容易破解了,其原理很简单,英文中字母出现的频率是不一样 ...

  4. [密码学] DES(二)

    文章目录 DES DES的安全性 期望的安全性 S盒的设计原则(唯一的非线性部件) 雪崩效应 密钥的安全隐患 互补性 弱密钥和半弱密钥 密钥搜索攻击--穷举攻击 DES https://blog.cs ...

  5. 实验吧-密码学(二)

    11.最近在论证一个问题,到底是先有鸡还是先有蛋 Ijm,lo 3wsdr4 6tghu7 解题链接: http://ctf5.shiyanbar.com/crypto/1/dan.html 在键盘上 ...

  6. 密码学的100个基本概念

    密码学的100个基本概念 一.密码学历史 二.密码学基础 三.分组密码 四.序列密码 五.哈希函数 六.公钥密码 七.数字签名 八.密码协议 九.密钥管理 十.量子密码 2022年主要完成了密码学专栏 ...

  7. 密码学的中文入门书籍及课程推荐

    密码学是一门研究如何保护信息安全的学科.一种简单轻松入门密码学的方法是学习密码学史,此处推荐书籍<密码了不起[知乎出品]>(刘巍然).这是一本密码学科普读物,通过浅显生动的例子,在不涉及复 ...

  8. HTTPS安全通讯 1. 密码学基础

    文章目录 一. 密码学发展 1. 古代保密之术 2. 近代密码学发展 二.数论 三. 群论与有限域 1. 抽象加法与群论 2. 有限域 四.加密基元与加密工具包 五.随机数 1. 随机数分类 2. 命 ...

  9. Python 开源库及示例代码

    Python 开源库及示例代码 更多干货 分布式实战(干货) spring cloud 实战(干货) mybatis 实战(干货) spring boot 实战(干货) React 入门实战(干货) ...

  10. 04Reverse基础(五)

    04Reverse基础(五) 任务内容 学习笔记 一.<图解密码学> 二.<程序员的自我修养> 任务实现 一.IDA补充学习 二.攻防世界 REVERSE 新手区 12道题目并 ...

最新文章

  1. 报错解决:error: this statement may fall through [-Werror=implicit-fallthrough=]
  2. Sniffer pro 找不到网卡的解决方法
  3. java poi 导出 国际化_更好用的excel国际化多语言导出
  4. 合并单链表,输出单链表中间元素,判断是否有环等
  5. 生成FaceBook所需的散列哈希值
  6. java amr 转mp3 报错_amr 转 MP3 报错it.sauronsoftware.jave.InputFormatException问
  7. python读取视频占用内存太大_Python 读取大文件内存占用检测示例
  8. 今天加班做了昨天晚上要写的页面,用到了一些之前用过但还不熟悉需要上网搜索才能用的知识点:...
  9. linux实现定时任务
  10. CentOS搭建Ghost博客
  11. Python标准库32个模块的整理
  12. wps无法连接到计算机,WPS无法连接网络怎么解决-解决wps不能连接网络的方法 - 河东软件园...
  13. AI化身心脏病“专家” 为心脏健康保驾护航
  14. JQ设置cookie(3分钟搞定)
  15. 当你从美梦中惊醒的时候,你该做什么?
  16. 软件缺陷常见问题总结(软件测试入门速成篇)
  17. oracle10漏洞修复,Oracle 2017年10月安全公告,修复252个安全漏洞
  18. SpringCloud 小案例 -- SpringCloud netfilx 使用
  19. java之将两个数组中的“姓”和“名”随机拼接,让其生成新的名字
  20. java发展前景选兄弟连_对于Java你了解多少 兄弟连带你了解Java开发工程师现状...

热门文章

  1. 像素、分辨率、图片大小概念
  2. 京东物流实时风控实践
  3. java 返回类对象_JAVA如何实现返回不同类型的对象
  4. 云服务服务器免费使用
  5. 五子棋 java 棋盘变大_【java求助!】我的五子棋棋盘怎么加边框~!!??
  6. 如何更换我的密钥对?
  7. Unity3d开发MOBA游戏类《王者荣耀》记录(起)
  8. 微信公众号最佳实践 ( 7.5 )股票行情及分析
  9. 程序员收入高,听说要被整治了?
  10. Python Couldn‘t find any class folder