• 监督系统运行的安全性;
• 保证系统自身的安全性和完整性。
n为了实现这些目标,需要建立相应的安全机制,包括硬件安全机制、标识与认证、访问控制、最小特权管理、可信通路、安全审计等
硬件安全机制
优秀的硬件保护性能是高效、可靠的操作系统的基础。
计算机硬件安全的目标是保证其自身的可靠性并为系统提供基本安全机制。
其中基本安全机制包括存储保护、内存与地址保护、运行保护、I/O保护等。
存储保护
• 存储保护是一个最基本的要求,主要是指保护用户在存储器中的数据。
– 保护单元为存储器中的最小数据范围,可为字、字块、页面或段。
– 保护单元越小,则存储保护精度越高。
– 对于代表单个用户,在内存中一次运行一个进程的系统,存储保护机制应该防止用户程序对操作系统的影响。
– 在允许多道程序并发运行的多任务操作系统中,还进一步要求存储保护机制对进程的存储区域实行互相隔离。
– 存储保护负责保证系统各个任务之间互不干扰;
– 存储器管理则是为了更有效地利用存储空间。
内存与地址保护
……看不懂
运行保护
• 安全操作系统很重要的一点是进行分层设计,而运行域正是这样一种基于保护环的等级式结构。运行域是进程运行的区域,在最内层具有最小环号的环具有最高特权,而在最外层具有最大环号的环是最小的特权环。一般的系统不少于3~4个环。
• 等级域机制应该保护某一环不被其外层环侵入,并且允许在某一环内的进程能够有效地控制和利用该环以及该环以外的环
I/O保护
• I/O是仅由操作系统完成的一个特权操作,所有操作系统都对读写文件操作提供一个相应的高层系统调用,在这些过程中,用户不需要控制I/O操作的细节。
•(硬件I/O保护的局限性)只靠硬件不能提供充分的保护手段,必须由操作系统的安全机制与适当的硬件相结合才能提供强有力的保护。
标识与认证的定义
• **标识就是系统要标识用户的身份,并为每个用户取一个系统可以识别的内部名称——用户标识符。**用户标识符必须是惟一的且不能被伪造,防止一个用户冒充另一个用户。
• 将用户标识符与用户联系的过程称为认证,认证过程主要用以识别用户的真实身份,认证操作总是要求用户具有能够证明他的身份的特殊信息,并且这个信息是秘密的或独一无二的,任何其他用户都不能拥有它。
认证方法
• 用户知道的事情。
– 口令、PIN数字、秘密的握手、以及母亲的名字都是用户可能知道的事情。
• 用户拥有的物品。
– 身份标志、公钥、驾驶证、或者制服都是一些常见的可以区分用户身份的物品。
• 用户的所属。
– 又为生物特征,以用户的物理特征为基础,比如指纹、用户声音的形式、人脸。
口令
针对口令的攻击:密码嗅探、记录、暴力穷举破解、密码字典、肩窥(最常见的是偷看密码)、社会工程
安全的口令方式
存储安全
• 基于单向函数的口令认证
– f是单向函数,p是口令,id是身份
– Alice提供p||id
– 计算机计算f§
– 计算机与存储的值f§||id 作比较
传输安全
通过加密和动态口令实现
S/KEY认证协议
基本的S/KEY认证协议
改进的S/KEY认证协议
身份验证令牌(智能卡)
图像密码
生物特征
特点
可能会产生错误。即可能有相似生物特点的人也可以解开或者说本人因为各种原因解不开
– False Rejection Rate ( Type I Error)
– False Acceptance Rate (Type II Error)
– Crossover Error Rate:强调某个率高一点或者两者平衡
双因子认证
认证机制中包含有两个认证因子即被称作双因子认证。(常见的是结合密码以及用户手中的USB Key、动态口令牌等进一步验证身份)
USB Key认证
• 外型跟U盘相似
• 内置了CPU、存储器、芯片操作系统(COS),可以存储用户的私钥或数字证书,利用USB Key内置的密码算法实现对用户身份的认证
• 采用软硬件相结合一次一密的强双因子认证模式
• 是目前网上银行客户端安全级别最高的一种安全工具
基于USB Key身份认证系统主要的两种应用模式
• 基于挑战/应答的认证方式
• 基于PKI体系的认证方式
挑战应答
认证协议
单向认证
- 基于共享密钥
- 基于用户名和口令
- 基于公钥和证书
双向认证
- 基于共享密钥
- 基于用户名和口令
- 基于公钥和证书
可信的第三方认证(Kerberos协议)
• Kerberos是一种计算机网络认证协议,用于在非安全网络中对访问者以安全的手段进行身份认证
• Kerberos实现AAA:认证(Authentication)、授权(Authorization)、审计(Audit)。
• 运用对称密钥加密体制进行密钥管理,其扩展方法也可使用公开密钥加密方法
• 当有N个用户使用该系统时,为确保在任意两方之间进行秘密对话,系统维护与每个用户的共享密钥,所需最少会话密钥数为N个。
• 系统采用C/S结构,支持通信双方的相互认证,可以防止数据窃听、防止重放攻击、保护数据完整性
Kerberos特点
• 安全性
– 能够有效防止攻击者假冒合法用户
• 可靠性
– Kerberos服务自身可采用分布式结构,KDC之间互相备份
• 透明性
– 用户只需要提供用户名和口令,工作站代替用户实施认证的过程
• 可伸缩性
– 能够支持大量用户和服务器
Kerberos基本思想
• 用户只需输入一次身份验证信息就可凭此信息获得票据(ticket)来访问多个服务,即SSO(Single Sign On,单点登录)。
• 用户对应用服务器访问前,必须先从Kerberos认证服务器上获取到访问该应用服务器的票据。
Kerberos认证过程
重点:能够分析对Kerberos的攻击,知道如何攻击Kerberos以及如何防范这些攻击
第三章 访问控制
访问控制是主体对客体提出访问的请求后,对这一申请进行批准、允许、撤销的全过程进行的有效控制,从而确保只有符合控制策略的主体才能合法访问。
是引用监视器实现访问控制。,
访问控制的三要素
访问控制涉及到主体、客体和访问策略,三者之间关系的实现构成了不同的访问模型,访问控制模型是访问控制实现的基础。
主体
• 是指访问的发起者,一个提出访问请求或要求的实体,简记为S。有时也称为用户(User)或访问者(被授权使用计算机资源的用户代理,如进程、程序等)。
• 根据主体权限不同可以分为四类:
– 特殊的用户:系统管理员,具有最高级别的特权,可以访问任何资源,并具有任何类型的访问操作能力
– 一般的用户:最大的一类用户,他们的访问操作受到一定限制,由系统管理员分配
– 作审计的用户:负责整个安全系统范围内的安全控制与资源使用情况的审计
– 作废的用户:被系统拒绝的用户。
客体
• 是接受其他实体访问的被动实体, 也称目标,简记为O。
– 可供访问的各种软硬件资源,通常包括为文件、数据等系统需要保护的资源。
• 主客体的关系是相对的。当一个主体受到另外一个客体的访问时,这个主体也就变成了客体。
访问策略
• 是主体对客体的操作行为集和约束条件集, 简记为KS。简单讲,访问策略是主体对客体的访问规则集,这个规则集直接定义了主体对客体可以操作的行为和客体对主体的条件约束。
• 体现为一种授权行为。任何访问控制策略最终可被模型化为访问矩阵形式。
• 授权(Authorization):规定可对该资源执行的动作(例如读、写、执行或拒绝访问)。
• 未授权的访问包括:未经授权的使用、泄露、修改、销毁信息以及颁发指令等。
– 非法用户进入系统。
– 合法用户对系统资源的非法使用。
访问操作
• 具体操作如:读(R)、写(W)、实际上可读可写(修改),添加(a),删除(d),运行(e)等操作。
• O:是一种特殊的访问权–控制权(O或C,O拥有权owner、C:create) ,指某个主体具有改变其它主体对某客体的访问权限的能力。
访问控制的实现框架
访问控制的任务——
–识别和确认访问系统的用户;
–决定该用户可以对某一系统资源进行何种类型的访问。
对于可用性,访问控制通过对以下信息的有效控制来实现
- (1)谁可以颁发影响网络可用性的网络管理指令
- (2)谁能够滥用资源以达到占用资源的目的
- (3)谁能够获得可以用于拒绝服务攻击的信息
访问控制由两个重要过程组成
–通过认证来检验主体的合法身份;
–通过授权(Authorization)来限制用户对资源的访问级别(权利)。
常见访问控制形式
• 在计算机系统中,安全机制的主要内容是访问控制,包括以下3个任务:
– 授权,即确定可给予哪些主体访问客体的权力;
– 确定访问权限(读、写、执行、删除、追加等访问方式的组合);
– 实施访问权限。
• 访问控制一般都涉及自主访问控制和强制访问控制两种形式。
自主访问控制
• 最常用的一类访问控制机制,用来决定一个用户是否有权访问一些特定客体的一种访问约束机制。需要自主访问控制保护的客体的数量取决于系统环境
• 为了实现完备的自主访问控制机制,系统要将访问控制矩阵相应的信息以某种形式保存在系统中。目前在操作系统中实现的自主访问控制机制是基于矩阵的行或列表达访问控制信息。
基于行的自主访问控制机制
• 在每个主体上都附加一个该主体可访问的客体的明细表,根据表中信息的不同又可分成以下3种形式。
– 能力表(capabilities list)。能力决定用户是否可以对客体进行访问以及进行何种模式的访问(读、写、执行),拥有相应能力的主体可以按照给定的模式访问客体。
– 前缀表(profiles)。对每个主体赋予的前缀表,包括受保护客体名和主体对它的访问权限。当主体要访问某客体时,自主访问控制机制将检查主体的前缀是否具有它所请求的访问权。
– 口令(password)。在基于口令机制的自主访问控制机制中,每个客体都相应地有一个口令。主体在对客体进行访问前,必须向操作系统提供该客体的口令。如果正确,它就可以访问该客体。
基于列的自主访问控制机制
• 每个客体都附加一个可访问它的主体的明细表,它有两种形式,即保护位和访问控制表。
– 保护位(protection bits)。这种方法对所有主体、主体组以及客体的拥有者指明一个访问模式集合。保护位机制不能完备地表达访问控制矩阵,一般很少使用。
– 访问控制列表(access control list, ACL)。国际上流行的一种十分有效的自主访问控制模式
访问控制列表ACL
• 每个客体上都附加一个主体明细表,表示访问控制矩阵。表中的每一项都包括主体的身份和主体对该客体的访问权限
访问控制列表ACL的优化
• 可访问某客体的主体很多时,访问控制表将会变得很长。而在一个大系统中,客体和主体都非常多,访问控制表将占用很多CPU时间。
• 把用户按其所属或其工作性质进行分类,构成相应的组(group),并设置一个通配符(wild card)“*”,代表任何组名或主体标识符。
能力表CL和访问控制列表ACL的区别
• 鉴别方面:二者需要鉴别的实体不同
• 保存位置不同
• 浏览访问权限:ACL容易,CL困难
• 访问权限传递:ACL困难,CL容易
• 访问权限回收:ACL容易,CL困难
• ACL和CL之间转换
– ACL->CL:困难
– CL->ACL:容易
• 多数集中式操作系统使用ACL方法或类似方式
• 由于分布式系统中很难确定给定客体的潜在主体集,在现代OS中CL也得到广泛应用
自主访问控制的实现举例
拥有者/同组用户/其他用户+访问控制列表模式
访问控制表只对“拥有者/同组/其他用户”无法分组的用户才使用。
自主访问控制模型的特点
• 对用户提供的灵活的数据访问方式,应用广泛;
• 在移动过程中其访问权限关系会被改变。
• 当用户数量多、管理数据量大时,由于访问控制的粒度是单个用户,ACL会很庞大。
• 采用ACL机制管理授权处于一个较低级的层次,管理复杂、代价高以至易于出错。
• 它有一个明显的缺点,就是这种控制是自主的。虽然这种自主性为用户提供了很大的灵活性,但缺乏高安全等级所需的高安全性。
强制访问控制(MAC)
• 在强制访问控制机制下,系统中的每个进程、每个文件、每个 IPC 客体( 消息队列、信号量集合和共享存储区)都被赋予了相应的安全属性,这些安全属性是不能改变的,它由管理部门或由操作系统自动地按照严格的规则来设置,不像访问控制表那样由用户或他们的 程序直接或间接地修改。
• MAC是一种多级访问控制策略,它的主要特点是系统对访问主体和受控对象实行强制访问控制,系统事先给访问主体和受控对象分配不同的安全级别属性,在实施访问控制时,系统先对访问主体和受控对象的安全级别属性进行比较,再决定访问主体能否访问该受控对象。
安全级别
• 安全级别由两方面的内容构成。
– 保密级别(或叫做敏感级别或级别)。
– 范畴集。
• 安全级别包括一个保密级别,范畴集包含任意多个范畴。安全级别通常写作保密级别后随一范畴集的形式
• 实际上范畴集常常是空的,而且很少有几个范畴名。
• 在安全级别中保密级别是线性排列的。两个安全级别
之间的关系有以下几种。
– 第一安全级别支配第二安全级别。
– 第二安全级别支配第一安全级别。
– 第一安全级别等于第二安全级别。
– 两个安全级别无关。
安全策略
一个安全策略是对一个系统应该具有的安全性的描述。只有当一个操作系统(或一个可信系统的任意部分)与其安全策略相称,也就是说,该操作系统能够满足对它的安全要求,这个操作系统才是可信的。
军事安全策略
系统内所有信息(如文件)都具有相应的密级,每个人都拥有一个许可证。
军事安全策略的目的是防止用户取得自己不应得到的密级较高的信息。
密级、安全属性、许可证、访问类等含义是一样的,分别对应于主体或客体,一般都统称安全级别。
商业安全策略
• 四个安全等级
– Public
– Sensitive
– Private
– Confidential
Clark-Wilson商业安全策略
为了体现用户完整性,他们提出了职责隔离(seperation of duty)目标;
为了保证数据完整性,他们提出了应用相关的完整性验证进程;
为了建立过程完整性,他们定义了对于变换过程的应用相关验证;
为了约束用户、进程和数据之间的关联,他们使用了一个三元组结构
• Clark-Wilson模型的核心是以良构事务为基础来实现商务环境中所需的完整性策略。
在模型中,CDIs、UDIs、IVPs和TPs分别代表受控数据项(constrained data items)、非受控数据项 (unconstrained data items)、完整性验证过程(integrity verification procedures)和变换过程(transformation procedures)。
Clark-Wilson模型中的完整性保证是一个两段式过程:由安全官员、系统所有者和关于一个完整性策略的系统管理员来完成的认证过程,及其由系统来完成的实施过程。
完整性机制和强制访问控制的差别
• 在完整性控制中,没必要给每一个数据项都关联一个特定的完整性安全级,而仅仅是一个许可执行的程序集。
• 一个用户并没有被授权去直接读或写确定的数据项,而是通过执行程序来影响这些数据。
Bell-La Padula军事级保密性模型(BLP)
• 在BLP模型中将主体定义为能够发起行为的实体,如进程;将客体定义为被动的主体行为承担者,如数据、文件等;将主体对客体的访问分为r(只读)、w(读写)、a(只写)、x(执行)以及c(控制)五种访问模式,其中c(控制)是指该主体用来授予或撤销另 一主体对某一客体的访问权限的能力。
• BLP模型的安全策略包括两部分: 自主安全策略和强制安全策略。
• 自主安全策略使用一个访问矩阵表示,访问矩阵第i行第j列的元素Mij表示主体Si对客体Oj的所有允许的访问模式,主体只能按照在访问矩阵中被授予的对客体的访问权限对客体进行相应的访问。
• 强制安全策略包括简单安全特性和*特性,系统对所有的主体和客体都分配一个访问类属性,包括主体和客体的密级和范畴,系统通过比较主体与客体的访问类属性控制主体对客体的访问。
Biba模型
主要应用类似BLP模型的规则来保护信息的完整性
目标
主要目标是用以防止对系统数据的非授权修改,从而达到对整个系统数据完整性进行控制的目的,对于职责隔离目标,则是通过对访问类的恰当划分方案来实现的
完整性级别
• 每个完整级别均由两部分组成: 密级和范畴。其中,密级是如下分层元素集合中的一个元素: {极重要(crucial,C),非常重要(very important,VI),重要(important,I)}。此集合是全序的,即C>VI>I。范畴的定义与BLP模型类似。
• 完整级别形成服从偏序关系的格,此偏序关系称为支配(≤)关系
强制安全特性
• 简单完整性规则(simple integrity axiom),规定完整性级别高的主体不能从完整性级别低的客体读取数据。强调主体如何从客体进行读操作。——没有“下读”。
• 星级完整性规则(*-integrity axiom),规定完整性级别低的主体不能对完整性级别高的客体写数据。——禁止“上写”。
• 调用规则(invocation property),规定一个完整性级别低的主体不能从级别高的客体调用程序或服务。
优势
Biba模型的优势在于其简单性以及和BLP模型相结合的可能性
不足
• 完整标签确定的困难性。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
一、网安学习成长路线图
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网安视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
三、精品网安学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
在这里插入图片描述](https://img-blog.csdnimg.cn/078ea1d4cda342f496f9276a4cda5fcf.png)
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算