370 likes | 540 Views
7.4.2 认证机制. 1 用户身份的标识与鉴别 标识与鉴别 的目的 认证机制应做好以下工作 1)TCB 维护认证数据 , 2)TCB 保护认证数据, 3)TCB 维护、显示、保护所有活动用户、用户帐户信息;. 2 UNIX/Linux 系统的标识和鉴别. 系统的 /etc/passwd 文件含有全部系统掌握的用户登录信息, passwd 中的记录为用冒号隔开的七个字段,例如: smith:xyz246ght:6759:4302:Jame Q smith:/home/smith/:/bin/sh. 密钥分发中心 (KDC). 认证服务器
E N D
7.4.2 认证机制 1 用户身份的标识与鉴别 • 标识与鉴别 的目的 • 认证机制应做好以下工作 1)TCB维护认证数据 , 2)TCB保护认证数据, 3)TCB维护、显示、保护所有活动用户、用户帐户信息;
2 UNIX/Linux系统的标识和鉴别 • 系统的/etc/passwd文件含有全部系统掌握的用户登录信息,passwd中的记录为用冒号隔开的七个字段,例如: • smith:xyz246ght:6759:4302:Jame Q smith:/home/smith/:/bin/sh
密钥分发中心(KDC) 认证服务器 (AS) 票证颁发服务器(TGS) 2a 口令 1a 1b AUTTGS+tg_ticket 2b KAT+tg_ticket KAB+sg_ticket 3a 3b AUTB+sg_ticket KAB+结果 Kerberos 体系结构 客户机A 应用服务器B 3 Kerberos网络身份认证
Kerberos 议协(1) 步1 A从AS处得到TGS所需要的许可票证 • 1a 登录时,A向AS提供口令,以证明其身份,AS在数据库中验证A的访问权限,并生成相应票证。 • 1b AS给A返回一个消息E({KAT,tg_ticket},KA),其中,KAT是A和TGS通信的会话密钥,tg_ticket是一个通往TGS的许可票证。此消息使用A的密钥KA加密,因此,只有A可以获得KAT和tg_ticket。
Kerberos 议协(2) 步2 A从TGS处得到B所需要的许可票证 • 2a A向TGS申请针对所需应用服务器B的票证,在申请消息中,A提供tg_ticket(步1中已获得)、应用服务器标识B和一个认证符AUTTGS。许可票证的形式为:tg_ticket=E({A,TGS,KAT},KTGS),此消息使用TGS的密钥KTGS加密,只有TGS可以解密它,其含义是:允许A从TGS处取得应用服务器B的许可票证,并且必须使用KAT进行认证。认证符AUTTGS的形式为AUTTGS=E(A,KAT),用于向TGS证明A是此申请请求的创建者。 • 2b TGS给A返回一个消息E({KAB,sg_ticket},KAT),其中,KAB是用于A和B通信的会话密钥,sg_ticket是通往B的许可票证。此消息使用会话密钥KAT加密,因此,只有A可以获得KAB和sg_ticket。
Kerberos 议协(3) 步3 A从B处得到所需要的服务 • 3a A向B请求所需服务,在请求中,A提供sg_ticket(步2中已获得)和一个认证符AUTB。服务许可票证的形式为sg_ticket=E({A,B,KAB},KB),此消息使用使用B的密钥加密,仅能被B所解密,且具有以下含义:允许A从B处获得服务,并且A必须使用密钥KAB进行认证。认证符AUTB的形式为AUTB=E(A,KAB),用于向B证明A是此申请请求的创建者。 • 3b B执行所请求的服务,然后,将结果返回给A,如有需要,可用KAB对结果进行加密。
7.4.3 授权机制 1 授权机制的功能和安全系统模型 • 什么是授权? • 授权机制的主要功能: • 授权 • 确定访问权限 • 实施存取权限。
用户1 用户2 计算机系统 认证机制 主体1 主体2 主体1、主体2可访问的资源 授权机制 主体1可访问的资源 认证和授权
O S 客体 访问监控器 主体 访问权限 授权机制 安全策略 安全系统模型
主体 客体 file1 file2 file3 P1 read/write/execute read write P2 read read/write/execute read P3 read write read/write/execute 访问控制矩阵示例 2 自主访问控制机制
进程P1的CL: file1(rwx); file2(r--); file3(-w-); …… 进程P3的CL: file1(r--); file2(-w-); file3(rwx); 权能表示例 1)基于行的自主访问控制机制(1) • (1)权能表
1)基于行的自主访问控制机制(2) (2)前缀表 (3)口令表
file1 P1(rwx) P2(r--) P3(r--) … … (a)访问控制表 file1 (b)优化的访问控制表 ACL和优化ACL表 P1 GROUP5 rwx * GROUP5 --x P3 * r-- * * --- 2) 基于列的自主访问控制机制
3) 自主访问控制机制实现举例(1) (1)“拥有者/同组用户/其他用户”模式 • UNIX/Linux的文件保护机制是一种简单的授权机制。 • 主体有惟一的用户ID(uid),且属于某个用户组,用户组有惟一的用户组ID(gid),代表用户的进程继承用户的uid和gid,实际上是第一个为用户启动的shell进程,该shell进程及其所有子孙进程都继承这个uid和gid。 • 系统中能对客体访问的主体被分为:客体属主、同组用户和其他用户。 • 对每个客体的访问模式区分为:读(r)、写(w)和执行(x),这些信息构成一个简化的访问控制矩阵,允许客体的属主和特权用户为客体设定访问控制信息。 • 当主体访问客体时,根据进程的uid、gid和客体的访问控制信息验证访问的合法性。
自主访问控制机制实现举例(2) (2)“访问控制表ACL”和“拥有者/同组用户/其他用户”结合模式 • 在安全操作系统UNIX SVR4.1中,采用“访问控制表ACL”和“拥有者/同组用户/其他用户”结合的实现方法。 • 每个文件对应一个ACL;在通信机制IPC中,使每个消息队列/信号量集合/共享存储区对应一个ACL。
自主访问控制机制实现举例(3) • ACL操作: “授权”、 “取消”“查阅”。 • DAC安全检验策略如下: 若进程以x权限访问客体,则x必须在客体的ACL项中;若进程搜索路径,则它必须具有该路径中每个子目录的搜索权。例如,当进程访问文件时,调用自主访问控制机制,将进程uid、gid等用户标识信息和请求访问方式mode,与ACL中的ACL项相比较,检验是否允许进程以mode方式访问该文件。
3 强制访问控制机制(1) • 1)强制访问控制的概念 • 强制访问控制用于将系统中的信息分密级和范畴进行管理,保证用户只能够访问那些被标明能够由他访问的信息的一种访问约束机制。 • 系统中每个主体(进程),每个客体(文件、消息队列、信号量集、共享存储区等)都被赋予相应的安全属性,这些安全属性不能改变,它由安全系统自动地按严格的规则设置或由安全管理员管理。 • 当主体访问一个客体时,调用强制访问控制机制,根据主体的安全属性和访问方式,比较它和客体的安全属性,确定是否允许主体对客体进行访问。
强制访问控制机制(2) • 对系统的主体和客体分别赋予与其身份相对应的安全属性的外在表示-安全标签,它有两部分组成:{安全类别:范畴}。 (1)安全类别-有等级的分类 • 安全级别:也称密级,系统用来保护信息(客体)的安全程度。 • 敏感性标签:客体的安全级别的外在表示,系统利用此敏感性标签来判定进程是否拥有对此客体的访问权限。 • 许可级别:进程(主体)的安全级别,用来判定此进程对信息的访问程度。 • 许可标签:进程的安全级别的外在表示,系统利用进程的安全级别来判定它是否拥有对要访问的信息的相应权限。
强制访问控制机制(3) • (2)范畴-无等级概念 • 范畴是该安全级别信息所涉及的部门 ,用来判定该用户是否属于信息对应的部门。 • 例如,在公司内,可建立信息安全类别:Confidential Restricted(技术信息)、Restricted(内部信息)和Unrestricted(公开信息)。 • 公司内的范畴可以为:Accounting(财务部)、Marketing(市场部)、Advertising(广告部)、Engineering(工程部)和Research&Development(研发部)。
2) 强制访问控制的实现 • (1)安全标签的实现 • 基于多级安全策略,系统的访问控制机制的实现要基于以下内容: • 对每个客体赋予一个敏感性标签,此标签标明系统用来保护此信息的安全程度(级别);对每个主体(进程)赋予一个许可标签,此标签用来指定此进程的可信程度; • 系统通过基于主体(进程)的许可标签和客体(信息)的敏感性标签来判定该进程是否拥有对该信息相应的访问权限; • 系统保证对所有I/O的信息都能够正确地标记反映其安全级别的敏感性标签。
安全标签实现要点 • 类别部分:由于类别部分反映的是一种等级关系,故又称安全等级或密级,在安全类别中密级按线性顺序排列,例如,公开<机密<秘密<绝密,在实现时以数字从小到大依次递增表示其安全等级。 • 范畴部分:范畴部分由无等级概念的元素组成,表示一个清晰的信息领域,范畴集之间不存在等级,但具有包含或被包含关系,也可以是无关的;在实现中范畴用数字代表,范畴集是数字的集合表示。
安全标签A和B之间存在四种关系 • A支配B:当且仅当A的安全等级大于等于B的安全等级,A的范畴集包含B的范畴集,即B的范畴集是A的范畴集的子集。 • B支配A:当且仅当B的安全等级大于等于A的安全等级,B的范畴集包含A的范畴集,即A的范畴集是B的范畴集的子集。 • A等于B:当且仅当A的安全等级等于B的安全等级,A的范畴集中的任何一项也是B的范畴集中的一项,反之亦然,也即A支配B,B支配A。 • A与B无关:A安全级的范畴集不包含B安全级的范畴集,同时B安全级的范畴集不包含A安全级的范畴集。
进程A 许可标签: {secret:a、b、c} 进程B 许可标签: {top secret:a、b、c} 写许可 读许可 读许可 写拒绝 filex 敏感性标签: {secret:a、b、c} 读拒绝 写拒绝 写许可 进程C 许可标签: {top secret:d、e、f} 读拒绝 基于安全标签的强制访问控制 (2)基于安全标签的强制访问控制 进程B 许可标签: {confidential:a、b、c}
3) 强制访问控制 • 防止特洛伊木马 • Linux提供“安全注意键”
4 特殊授权机制-最小特权原理 1) 最小特权原理 POSIX最小特权原理, • (1)在硬件特权方面,当处理器不是以特权模式或特权域方式运行时,必须限制特权机器指令的使用,限制对某些存储区域的访问; • (2)在软件特权方面,由操作系统赋予某些程序的恰好够用的特权,这些特权允许它超越在应用程序上实施的常规访问控制,或者调用所选择的函数,具有多种类型软件特权的系统允许在最小特权方面实施细粒度控制; • (3)进程在系统中代表用户和系统管理员的行为,不应获得多于完成它们工作所需的特权。
2) 最小特权管理的实现 • 用户特权: 将特权集分别映射到不同管理用户身上 : (1)系统安全管理员: (2)系统审计员: (3)系统操作员: (4)安全操作员: (5) 网络管理员: • 进程特权和文件特权:
7.4.4 加密机制 1 数据加密模型 • 加密与解密 • 明文与密文 • 加密函数(算法)与解密函数(算法) • 密码系统对信息应提供功能:秘密性 、鉴别性 、完整性 和防抵赖 。
2 基于密钥的算法分类 1)对称算法 • 加密/解密密钥是相同的 ,加密密钥能够从解密密钥中推算出来,反之也成立。 2)公开密钥算法 • 用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来。加密密钥可以公开,其他人能用加密密钥来加密信息,但只有用相应的解密密钥才能解密信息,
3 计算机密码算法 1)数据加密标准DES 2)公开密钥算法RSA 基本技术如下: • 网中每个节点都产生一对密钥,用来对它接收的消息加密和解密; • 每个系统都把加密密钥放在公共文件中,这是公开密钥,另一个设为私有的,称私有密钥 • 若A要向B发送消息,它就用B的公开密钥加密消息; • 当B收到消息时,就用私钥解密。由于只有B知道其私钥,于是没有其他接收者可解出消息。公开密钥法的主要缺点是算法复杂,开销大、效率低。
4 数字签名 1)简单数字签名 • (1)发送者A使用私有解密密钥对明文进行加密,形成的密文传送给接收者B; • (2)B利用A的公开加密密钥对所得密文进行解密,便得到明文,除A之外,谁也不具有解密密钥,因此,也只有A才能送出用他的解密密钥加密过的密文; • (3)如果A要抵赖,只需出示他的解密密钥加密过的密文,使其无法抵赖。
2)保密数字签名 按下面步骤进行: • 发送者A使用私有解密密钥对明文进行加密,得到密文1; • A再用B的公开加密密钥对密文1进行加密,得到密文2再传送给B; • B收到后,先用自己的私有密钥对密文2进行解密,得到密文1; • B再利用A的公开加密密钥对所得密文1进行解密,于是得到明文。
5 网络加密 • 链-链加密: • 端-端加密: • 组合加密:
7.4.5 审计机制 审计是对系统中有关安全的活动进行完整记录、检查及审核,作为一种事后追踪手段来保证系统的安全性,是对系统安全性实施的一种技术措施 。 1 审计事件 2 审计记录和审计日志 3 审计机制的实现 4 审计缓冲区的设计
1 审计事件 • 审计机制把主体、客体都定义为可审计对象。 • 要审计的事件可分成:注册事件(用户的标识、鉴别和退出)、使用系统或访问资源的事件(特权用户执行的操作、创建/删除文件、执行程序、修改口令/安全级)、管理员及操作员实施的操作事件和利用隐蔽信道的事件(隐蔽存储通道发生活动)等。 • 系统应该确认和选择重要的事件加以审计,系统审计员可以通过设置审计事件标准,确定对系统中的哪些用户或哪些事件进行审计。
2 审计记录和审计日志 • 审计记录包括信息有:事件的日期和时间、事件主体的惟一标识、事件类型、事件结果(成功/失败)等。对于认证事件,应记录事件发生的地点(终端标识符);对于客体的创建或删除事件,应记录客体名及其安全级。 • 审计日志是存放审计记录的二进制码文件,每次审计进程启动后,都会按设定的路径和命名规则产生新的审计日志文件,系统审计员有权查询和打印审计日志文件中的审计结果,有权选择所需内容,如与某用户、某事件或某个时间有关的记录信息。
3 审计机制的实现 • 哪些事件要审计? • 审计点设置 • 审计记录 • 日志文件
用户态 核心态 内核审计进程 审计点 审计点 审计日志文件 审计系统调用 循环缓冲 审计缓冲区 4 审计缓冲区的设计 审计点