网络安全笔记:网络身份认证
该部分为本科期间网络安全课程笔记备份。
概述
身份认证:安全通信和安全访问的前提
访问控制:控制用户和系统,系统和资源进行通信和交互,保护免受未授权访问,为授权做准备。
标识:一种能够确保主体(用户、程序或进程)就是它所宣称的那个实体的方法
认证:证明、确认标识的正确性
授权:认证通过后,对主体访问资源的能力的安排。是操作系统的核心功能。
稽查:对主体行为的审核和记录

单向认证:只包括单一的由A向B传送鉴别信息的过程。
双向认证:B还将向A传送鉴别信息过程。
标识与认证
安全提问、口令、一次性口令、密码认证、生物标识和认证
安全问题
常规问题+个性化回答
口令
口令或通行字机制是最广泛研究和使用的身份鉴别法。通常为长度为>=8的字符串。选择原则:易记、难猜、抗分析能力强。
口令系统有许多脆弱点:人为泄露、口令猜测、搭线窃听、重放攻击
对付人为泄露的措施:严格组织管理办法和执行手续;每个口令只与一个人有关;输入的口令不再现在终端上;使用易记的口令,不要写在纸上;口令定期改变。
对付口令猜测的措施:严格限制非法登录的次数;口令验证中插入实时延迟;使用验证码;限制最小长度,至少8字节以上;防止用户特征相关的口令等简单口令;口令定期改变;及时更改预设口令;使用机器产生的口令。
一次性口令
每次登录过程中传送的信息都不相同:口令序列、口令池、挑战/应答、时间同步、事件同步
一次性口令的生成:短信密码、令牌卡、智能卡
短信密码
短信密码以手机短信形式请求包含6位随机数的动态密码,身份认证系统以短信形式发送随机的6/8位密码到客户的手机上,客户在登录或者交易认证时候输入此动态密码,从而确保系统身份认证的安全性。
令牌卡
是比较强的认证方法,给授权用户分配一个认证设备。通常称为“令牌”,它产生一登录时必须使用的代码。
方法:通过种子值和当前时间,采用伪随机算法产生令牌码;令牌服务器通过基于其记录中的种子值,产生它自己的一个当前有效代码,然后与用户提交的代码相比较,达到对用户认证的目的。
缺点是算法不被信息系统使用者所知,存在安全风险,维护成本高。
智能卡
智能卡(Smart card):是一个带CPU的安全芯片卡,具有自己的操作系统,安全加解密算法;
特点:一般为接触式的,用户需要读卡器;内置加密口令或数字证书、私钥等,实现身份认证。
缺点:费用高,需要读卡器
密码认证
对称密码体制认证、公钥密码体制认证、HASH认证
生物标识和认证
指纹、手掌轮廓、视网膜(眼球后方视网膜上的血管的图形)、虹膜(瞳孔周围彩色部分)、动态签名、语音识别、面部特征、手型拓扑
错误接受率:假冒者被接受的概率
错误拒绝率:合法用户被拒绝的概率
特征选择的原则:普遍性、唯一性、稳定性、可接受性、防伪性、可收集性、可执行性
基于量子计算的认证
海森堡测不准原理、量子不可克隆定理
海森堡测不准原理:观察者无法同时准确地测量待测物的「位置」与「动量」,类似的不确定性也存在于能量和时间,角动量和角度等许多物理量之间。在原子、核子、电子而言,「偷看」、「窃听」对系统而言就是一种「测量」。只要测量发生就会造成系统的波函数「走调」(dechorence),也就是说,只要一测量就会改变系统的状态。
量子的互补性(complementary):测量一个量必然改变另一个量,不是因为测量仪器不好而不准。
量子不可克隆定理:量子力学的线性特性禁止使得每个复制态与初始量子态完全相同的复制, 这就是量子不可复制定理的最初表述。
目前基于量子计算的认证的问题:
- 制造出高效的单光子源比较困难。
- 需要工作在所需波长高效的单光子探测器还未成熟。
- 量子密码系统即使没有窃听者窃听的情况下。由于系统自身的不稳定性也会造成一定的长期误码率使通信的质量受到影响。
- 传送距离还不够远。
- 需要高科技、成本贵的仪器,使得目前不符合经济效益 。
授权
授权的目的:在确认用户身份进入信息系统后,确定用户能做什么操作;起到越权使用资源的防御措施,限制对关键资源的访问;防止合法用户的不慎操作而造成的破坏;保护网络资源受控地、合法地使用。
访问控制列表(Access Control list):目前最广泛采用的方式,对一个特定资源指定任意一个用户的访问权限;将有相同权限的用户分组,授予组的访问权。


优点:① 直观而理解;② 容易查出对某特定资源拥有访问权限的所有用户;③ 有效实施管理;
缺点:不宜用于网络规模大,需求复杂的企业内部网络
一般授权的基本原则:默认拒绝;授予能够实现业务的最小权限,与最小特权原则一致。
授权方法
角色访问方法:不同角色的业务访问需求可能类似
组访问原则方法:需要同样访问权限的用户的集合
事务类型限制:事务实例取值的不同,访问权限赋予可能也不同。(银行取钱,职责不同,能操作的金额应该不一致;数据库管理员负责建立人事数据库,但他未必有权访问这些数据记录)
单点登录
基于经纪人的单点登录( Broker-Based SSO)
基于令牌的单点登录( Token-Based SSO )
基于经纪人的单点登录
Kerberos:

分布式单点登录的实例,使用对称加密算法体系
主要组件:
- 密钥分发中心,存有所有用户和服务的密钥;具有密钥分发和认证功能;客户和服务充分信任KDC是系统安全的基础
- 实体对象:主体,用户、程序或服务,
- 票证:用户主体之间访问认证
Keberos的工作步骤:请求许可票据=>返回许可票据=>请求服务器票据=>返回服务器票据—=》请求服务
Realm: 一个Kerberos的认证数据库所负责的一个网络范围称作一个Realm.这个数据库中存放有该网络范围内的所有Principal和它们的密钥,数据库的内容被Kerberos的认证服务器AS和TGS所使用。Realm通常用大写的字符串表示,并且在大多数Kerberos系统的配置中,Realm的范围和该网络环境的DNS域是一致的。
Principal: 在Kerberos中,Principal是参加认证的基本实体。一般来说,它有两种,一种用来代表网络服务使用者的身份,另一种用来代表某一特定主机上的某种网络服务,也就是说Principal是用来表示客户端和服务端身份的实体。为了使用方便,用户所见到的Principal是用一个字符串来表示的
Credential: Ticket和与它相联系的会话密钥合在一起称为Credential。在下文中可以见到,之所以有这个概念是因为它们是客户端在向服务器证明自己的身份时必需的两样东西.在一个Ticket的生存期内客户端会将这两样东西以Credential为单位保存在一个Cache文件中。
Ticket: 一个Ticket是一个用于安全的传递用户身份所需要的信息的集合。它不仅包含该用户的身份,而且包含其它一些相关的信息。一般来说,它主要包括客户方Principal,目的服务方Principal,客户方IP地址,时间戳(分发该Ticket的时间),该Ticket的生存期,以及会话密钥等内容。

TGS : Ticket Granting Server AS : Authentication Server
Kerberos优势:与授权机制相结合;实现了一次性签放的机制,并且签放的票据都有一个有效期;支持双向的身份认证,既服务器可以通过身份认证确认客户方的身份,而客户如果需要也可以反向认证服务方的身份;支持分布式网络环境下的认证机制。
Kerberos弱点:单点故障;必须实时处理大量信息;密钥需要暂时性的存在工作站上,存在威胁;会话密钥被解密后仍保留在缓存中,存在威胁;对密码的猜测攻击;密钥更新过程复杂。
基于令牌的单点登录
- 针对单因素认证的问题。
- 当用户需要访问系统资源或登入系统时,系统提示用户输入用账号和密码。
- 系统采用加密方式或明文方式将用户名和密码传送到服务器端,进行比对。如果验证通过,系统允许该用户进行随后的访问操作,否则拒绝用户的进一步的访问操作。
- 在这个过程中,账号是辨识深份的作用,
[密码]就是所谓的单因子认证因素。
用户访问控制
模型:
自主访问控制( DAC, Discretionary Access Control)
强制访问控制 (MAC, Mandatory Access Control),
基于角色的访问控制 (RBAC, Role-Based Access Control)
基于任务的访问控制(TBAC, Task-Based Access control)
自主访问控制
特点:
- 根据主体的身份及允许访问的权限进行决策。
- 自主是指具有某种访问能力的主体能够自主地将访问权的某个子集授予其它主体。
- 灵活性高,被大量采用。
自主访问控制模型
矩阵模型:
设S为全体主体的集合,S={s1,s2,…,sm }。
设O为全体客体的集合,O={o1,o2,…,on }。
设R为全体权力的集合,R={r1,r2,…,rl }。
记权力矩阵为:

① 矩阵的每一行对应一个主体,每一列对应一个客体。行与列交叉点上的元素a ij 表示主体si 对客体oj 所拥有的所有权力的集合。
② 当主体si 要对客体oj 进行访问时,访问控制机制检查aij ,看主体si 是否具有对客体oj 进行访问的权力,以决定主体si 是否可对客体oj 进行访问,以及进行什么样的访问。
③ 自主性:客体的属主有权将其客体的访问权力授予其它主体,或收回。
自主访问控制的访问类型
访问许可与访问模式描述了主体对客体所具有的控制权与访问权.
访问许可定义了改变访问模式的能力或向其它主体传送这种能力的能力.
访问模式则指明主体对客体可进行何种形式的特定的访问操作:读\写\运行.
访问许可特性:
- 等级型(Hierarchical)
- 拥有型(Owner):对每个客体设置一个拥有者(通常是客体的生成者).拥有者是唯一有权修改客体访问控制表的主体,拥有者对其客体具有全部控制权
- 自由型(Laissez-faire)
访问模式(Access Mode):
系统支持的最基本的保护客体:文件,对文件的访问模式设置如下:(1)读-拷贝(Read-copy);(2)写-删除(write-delete);(3)运行(Execute);(4)无效(Null);
缺点:信息在移动过程中其访问权限关系会被改变;配置工作量大,效率低。
缺陷举例:如用户A可将其对目标O的访问权限传递给用户B,从而使不具备对O访问权限的B可访问O。可能被木马等恶意程序利用
强制访问控制
强制访问控制模型(MAC Model:Mandatory Access Control Model)
特点:
- MAC是一种多级访问控制策略
- 数据所有者无权决定文件的访问权限,权限由操作系统决定,可能覆盖所有者的设置
- 基于安全标签实现:系统事先给访问主体和受控对象分配不同的安全级别属性,在实施访问控制时,系统先对访问主体和受控对象的安全级别属性进行比较,再决定访问主体能否访问该受控对象。
- MAC对访问主体和受控对象标识两个安全标记:一个是具有偏序关系的安全等级标记;另一个是非等级分类标记。对于标签的类别,部分可实施须知规则。BLP模型是一个例子。



强制访问控制模型
BLP模型:每个主体和客体都划分一个密级 A;每个主体和客体都划分一个业务范围 C;设SC为全体安全级别<A,C>的集合:SC= <A,C>
定义二元关系≤如下,并称关系≤为支配 :

对于集合SC中的任意元素X,Y,Z都有
- 自反性 X≤X;
- 传递性 如果X≤Y,而且Y≤Z,则X≤Z;
- 反对称性 如果X≤Y,而且Y≤X,则X=Y。
如上定义的关系≤为偏序关系,集合SC为偏序集合,记为[SC, ≤]。
在[SC, ≤]中定义运算∪ 、 ∩如下:
<A,C> ∪ <A’,C’>=<max(A,A’),C ∪ C’>
<A,C> ∩ <A’,C’>=<min(A,A’),C ∩ C’>
显然,[SC, ≤]的最高安全级别和最低安全级别分别是:
HIGH=<Topsecret,{全体属类} >,LOW=< unclassified,{}>
- 简单安全原则(向下读):主体 s对客体 o具有读访问权,当且仅当 S支配 O,即
<Ao,Co>≤<As,Cs>。 - 特性(向上写):主体 s对客体 o具有写访问权,当且仅当 O支配 S,即
<Ao,Co>≥<As,Cs>。 - 稳定原则:主体和客体的安全级别在它们被引用时必须保持不变。
- 强制性:通过比较主体和客体之间的安全级别的支配关系来控制主体对客体的访问。主体不能自主的授予客体权力或回收权力。
优点:更安全,可以阻止某些类型的特洛伊木马攻击。
缺点:对用户限制较多,用户感到不够灵活。主要保护秘密性,缺乏对真实性和完整性保护。
B级以上操作系统:多数安全操作系统
自助和强制访问控制差异
自主访问控制:配置的粒度小,配置的工作量大,效率低
强制访问控制:配置的粒度大,缺乏灵活性
基于角色的访问控制
背景:主体和客体的数量级增大,传统模型很难适用;Web上的访问控制成为主流研究课题
基本思想:提出“角色”作为授权中介,定义不同层次的访问控制模型用于不同应用背景,利用RBAC模型本身实施模型管理
主流模型
- RBAC96:RBAC基本模型 Sandhu et al. 1996
- ARBAC97(Administrative RBAC):RBAC管理模型

RBAC基本思想
RBAC的基本思想:
- 根据用户在一个组织中担任的角色来确定对其所的授权。
- 虽然一个用户担任一个角色后,便可以拥有该角色的权限,但是他不能将权限转授给别人。
角色的定义:每个角色与一组用户和有关的动作相互关联,角色中所属的用户可以有权执行这些操作
角色与组的区别:
- 组:一组用户的集合
- 角色:一组用户的集合 + 一组操作权限的集合
基于角色的访问控制模型(RBAC Model,Role-based Access Model):
- RBAC模型的基本思想是将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问许可权。
- 访问控制是由各个用户在部门中所担任的角色来确定的
- 角色可以看作是一组操作的集合,不同的角色具有不同的操作集,这些操作集由系统管理员分配给角色。
- 依据角色的不同,每个主体只能执行自己所制定的访问功能。用户在一定的部门中具有一定的角色,其所执行的操作与其所扮演的角色的职能相匹配。
- 系统管理员负责授予用户各种角色的成员资格或撤消某用户具有的某个角色,RBAC提供了一种描述用户和权限之间的多对多关系。
- 同一个用户可以是多个角色的成员,即同一个用户可以扮演多种角色
- 角色可以划分成不同的等级,通过角色等级关系来反映一个组织的职权和责任关系,这种关系具有反身性、传递性和非对称性特点,通过继承行为形成了一个偏序关系
访问控制策略的一个例子:
(1)允许一个出纳员修改顾客的帐号记录(包括存款和取款、转帐等),并允许查询所有帐号的注册项
(2)允许一个分行管理者修改顾客的帐号记录(包括存款和取款)并允许查询所有帐号的注册项,也允许创建和终止帐号
(3)允许一个顾客只询问他自己的帐号的注册项
(4)允许系统的管理者询问系统的注册项和开关系统,但不允许读或修改用户的帐号信息
(5)允许一个审计员读系统中的任何数据,但不允许修改任何事情
一般步骤: (所有者、管理员和用户三方参与,体现职责分离)
- 所有者决定给角色分配特权,给用户分配角色
- 管理员代表所有者统一创建角色和功能
- 管理员创建用户ID并赋予权限
RBAC的基本概念

- RBAC的基本思想是根据用户所担任的角色来决定用户在系统中的访问权限。
- 一个用户必须扮演某种角色,而且还必须激活这一角色,才能对一个对象进行访问或执行某种操作。
- 用户(User):访问计算机资源的主体。用户集合为U。
- 角色(role):一种岗位,代表一种资格、权利和责任。角色集合为 R。
- 权限(permission):对客体的操作权力。权限集合为 P。
- 用户分配(User Assignment):将用户与角色关联。用户分配集合为UA={(u,r)|u∈U, r∈R}。用户 u与角色 r关联后,将拥有 r的权限。权限分配(Permission Assignment)
- 权限分配:将角色与权限关联。
- 权限分配集合为PA={(p,r)|p∈P, r∈R}。权限 p与角色 r关联后,角色 r将拥有权限 p。
- 激活角色(Actve Role):角色只有激活才能起作用,否则不起作用。也可以通过会话激活角色。
- 会话(Session):用户要访问系统资源时,必须先建立一个会话。一次会话仅对应一个用户。一次会话可激活几个角色。
RBAC的基本机制
- RBAC的授权机制:
- 分为两步: 将用户分配给角色;将访问权限分配给角色。
- 授权要满足安全约束条件:最小特权原则,职责分离原则,角色互斥原则角色激活限制原则
- 角色分级,高级角色可以继承低级角色的访问权限。
- RBAC用户与角色的关系(多对多关系):一个用户可担当多个角色;一个角色可分配给多个用户。
- 角色和权限之间的关系(多对多关系):一个角色可以拥有多个访问权限;不同的角色也可以拥有相同的权限。
- 角色和角色的关系(分级关系):高级角色可以继承低级角色的访问权限。
- 会话:用户要访问系统资源时,必须先建立一个会话,一次会话仅仅对应一个用户。一次会话中可以激活几个角色。角色激活要满足安全约束。
- 激活:激活是角色的一种状态。通过会话激活角色。只有激活的角色才起作用。
- 角色分级:
- 角色分级是组织角色的一种自然方法。
- 角色分级的结果将导致一个角色可以直接或间接地继承另一角色的访问权限。
- 直接继承:相邻角色之间的继承。
- 间接继承:非相邻角色之间的继承。
- 高低级角色之间的继承关系是一种偏序关系。

- 安全约束:
- 约束是设计高级安全策略的一个强有力的机制。
- 各个环节施加安全约束,以实现不同的安全策略。
- 可以定义在系统层,也可以定义在应用层。
- 可以是事件触发的,也可以不是事件触发的。
- 职责分离约束:合理划分任务和相关权限,以保证多用户协同工作的安全性。
- 角色互斥约束:如果一组角色是互斥的,那么一个用户或同一个访问权限只能被分配给其中的一个角色。利用角色互斥约束可实现职责分离。
- 最小特权约束:只给角色分配完成某工作所需的最小权力。
- 角色激活约束:
- 激活数约束:限制一个角色同时授权和激活的数目。主席只有一个。
- 角色激活时间约束 :限制一个角色激活的时间。主席可以长期当选。
RBAC的优势
- 便于授权管理。
- 便于根据工作需要分级,如企业财务部门与非财力部门的员工对企业财务的访问权就可由财务人员这个角色来区分。
- 便于赋于最小特权,如即使用户被赋于高级身份时也未必一定要使用,以便减少损失。只有必要时方能拥有特权。
- 便于任务分担,不同的角色完成不同的任务。
- 便于文件分级管理,文件本身也可分为不同的角色,如信件、账单等,由不同角色的用户拥有。
基于任务的访问控制
该模型的基本思想是:授予给用户的访问权限,不仅仅依赖主体、客体,还依赖于主体当前执行的任务及任务的状态。当任务处于活动状态时,主体拥有访问权限;一旦任务被挂起,主体拥有的访问权限就被冻结;如果任务恢复执行,主体将重新拥有访问权限;任务处于终止状态时,主体拥有的权限马上被撤销。
基于任务的访问控制(Task-Based Access Control,TBAC):是一种新的安全模型,从应用和企业层角度来解决安全问题,而非已往从系统的角度。
它采用“面向任务”的观点,从任务(活动)的角度来建立安全模型和实现安全机制,在任务处理的过程中提供动态实时的安全管理。
在TBAC中,对象的访问权限控制并不是静止不变的,而是随着执行任务的上下文环境发生变化,这是称其为主动安全模型的原因。
TBAC特点
- 它是在工作流的环境考虑对信息的保护问题。在工作流环境中,每一步对数据的处理都与以前的处理相关,相应的访问控制也是这样,因而TBAC是一种上下文相关的访问控制模型。
- 它不仅能对不同工作流实行不同的访问控制策略,而且还能对同一工作流的不同任务实例实行不同的访问控制策略。这是“基于任务”的含义,所以TBAC又是一种基于实例(instance-based)的访问控制模型。
- 因为任务都有时效性,所以在基于任务的访问控制中,用户对于授予他的权限的使用也是有时效性的。
TBAC原则
通过授权步的动态权限管理,TBAC支持两个著名的安全控制原则:
- 最小特权原则:在执行任务时只给用户分配所需的权限,未执行任务或任务终止后用户不再拥有所分配的权限;而且在执行任务过程中,当某一权限不再使用时,授权步自动将该权限回收。
- 职责分离原则:有时,一些敏感的任务需要不同的用户执行。这可通过授权步之间的互斥依赖实现。
访问控制模型总结
①安全模型对于安全计算机系统的设计具有指导意义。
②安全模型具有抽象、精确、无歧义等优点。
③安全模型不是技术设计书。
④具体实现方案称为机制。
⑤机制是具体的、繁琐的。





浙公网安备 33010602011771号