Presentation is loading. Please wait.

Presentation is loading. Please wait.

第6讲 访问控制基本方法 第4章:操作系统基础安全性 第3部分/共5部分.

Similar presentations


Presentation on theme: "第6讲 访问控制基本方法 第4章:操作系统基础安全性 第3部分/共5部分."— Presentation transcript:

1 第6讲 访问控制基本方法 第4章:操作系统基础安全性 第3部分/共5部分

2 本讲内容 主题:访问控制基本方法 教材内容: 第4.5节:基于权限位的访问控制 第4.6节:进程的有效身份与权限
© 2009 电子工业出版社

3 简单访问控制权限及其表示方法 一个赋值例子: © 2009 电子工业出版社

4 简单访问控制权限模式描述 f(文件, 用户)权限 权限位串字符串数字 用户:可以是一个用户,也可以是一类用户。
权限:读+写+执行。 权限位串字符串数字 位串:长度为3的二进制位。 字符串:长度为3。 数字:1个八进制数。 © 2009 电子工业出版社

5 用户划分的三分法 属主: 属组: 其余: 文件的拥有者。 一个文件的属主是唯一的。 属主的首选用户组。 一个文件的属组是唯一的。
除属主和属组之外的用户的全体。 © 2009 电子工业出版社

6 三分法确定的用户域 属主域: 属组域: 其余域: 属主用户的集合。 该域只含一个用户。 属组中除属主外的所有用户的集合。 该域可含多个用户。
用户全集减去属主域和属组域后剩下的部分。 © 2009 电子工业出版社

7 三分法用户域示例 A:属主域;B:属组域;C:其余域。 A、B、C不相交。 © 2009 电子工业出版社

8 基本访问控制权限模式描述 f(文件, 用户群)权限体 权限体新位串新字符串新数字 用户群:属主用户+属组用户+其余用户。
权限体:属主权限+属组权限+其余权限。 权限:读+写+执行。 权限体新位串新字符串新数字 新位串:长度为9位的二进制位。 新字符串:长度为9个字符。 新数字:3个八进制数。 例: rwxr-x--x © 2009 电子工业出版社

9 基本访问控制判定算法 任务:判断用户U可否对文件F执行a操作(a是r、w或x之一)? 设:F的属主和属组分别为Uo和Go。
当U等于Uo时,如果F的左3权限位串中与a对应的位为1,则允许U对F执行a操作,否则,不允许U对F执行a操作,判定结束。 当Go是U的属组时,如果F的中3权限位串中与a对应的位为1,则允许U对F执行a操作,否则,不允许U对F进行a操作,判定结束。 如果F的右3权限位串中与a对应的位为1,则允许U对F执行a操作,否则,不允许U对F进行a操作。 © 2009 电子工业出版社

10 例4.24—访问权限判定 设在某UNIX操作系统中,部分用户组的配置信息如下: grp1:x:300:usr1,usr2,usr3,usr4
grp2:x:301:usr5,usr6,usr7,usr8,usr9 系统中部分文件的权限配置信息如下: rw-r-x--x usr1 grp File1 r---w---x usr5 grp File2 请问,用户usr1、usr2和usr5可以对文件file1执行什么操作?用户usr6可以对文件file2执行什么操作? © 2009 电子工业出版社

11 例4.24—访问权限判定 设在某UNIX操作系统中,部分用户组的配置信息如下: grp1:x:300:usr1,usr2,usr3,usr4
grp2:x:301:usr5,usr6,usr7,usr8,usr9 系统中部分文件的权限配置信息如下: rw-r-x--x usr1 grp File1 r---w---x usr5 grp File2 请问,用户usr1、usr2和usr5可以对文件file1执行什么操作?用户usr6可以对文件file2执行什么操作? 可对file1的操作: usr1—属主—读和写;usr2—属组—读和执行;usr5—其余—执行。 可对file2的操作:usr6—属组—写。 © 2009 电子工业出版社

12 例4.25—关于属主权限的考虑 设在某UNIX操作系统中,自主访问控制机制的部分相关文件配置信息如下:
r--r--r-- usr5 grp File3 请问,用户usr5是否有可能对文件file3进行写操作? © 2009 电子工业出版社

13 例4.25—关于属主权限的考虑 设在某UNIX操作系统中,自主访问控制机制的部分相关文件配置信息如下:
r--r--r-- usr5 grp File3 请问,用户usr5是否有可能对文件file3进行写操作? 表面上看,usr5对file3无写权限。 但是,usr5是file3的属主,根据自主访问控制性质,他有权修改file3的权限配置,如改为: rw-r--r-- usr5 grp File3 因而,usr5有可能对file3执行写操作。 © 2009 电子工业出版社

14 进程与文件和用户的关系 进程P是用户Up的化身 进程P的行为逻辑由文件F确定 进程P对文件filex的访问权限如何确定?
相关性:用户Up对文件filex的访问权限?用户Uf对文件filex的访问权限? © 2009 电子工业出版社

15 进程到文件用户域的映射 已知:f(文件, 用户群)  权限体 亦即:f(文件, 用户域)  权限 设想:g(进程)  用户域
所以: 只要把进程映射到文件对应的用户域中,就可以根据用户域对文件的访问权限,确定进程对文件的访问权限。 © 2009 电子工业出版社

16 例4.28—判定进程对文件的访问权 问题:进程P是否拥有对文件F的访问权限y?
假设:给进程P分配用户标识和组标识Iup和Igp,文件F的属主、属组和权限位串分别为Iuf、Igf和S1S2S3。 当Iup等于Iuf时,检查S1中是否有y权限,有则允许访问,否则,不允许访问,结束判定; 当Igp等于Igf时,检查S2中是否有y权限,有则允许访问,否则,不允许访问,结束判定; 检查S3中是否有y权限,有则允许访问,否则,不允许访问。 © 2009 电子工业出版社

17 进程的用户属性 用户属性:用户标识(UID)+组标识(GID) 真实用户:进程为谁工作? 有效用户:进程拥有的权限与谁相同?
真实用户属性:RUID+RGID 有效用户属性:EUID+EGID 访问判定时,进程到用户域的映射: g(进程)  EUID+EGID © 2009 电子工业出版社

18 进程变身 通过执行新的程序映像,可为进程更换新的神经系统。 UNIX类操作系统的系统调用exec能达到这个目的。
© 2009 电子工业出版社

19 例4.31—进程变身效果 假设:用户执行程序progf1启动进程proc1。 问题:进程proc1的运行将显示什么信息? progf1:
printf(“China”); exec(“progf2”); printf(“America”); return; progf2: printf(“England”); exec(“progf3”); printf(“Canada”); return; progf3: printf(“Australia”); return; 假设:用户执行程序progf1启动进程proc1。 问题:进程proc1的运行将显示什么信息? © 2009 电子工业出版社

20 例4.31—进程变身效果 假设:用户执行程序progf1启动进程proc1。 问题:进程proc1的运行将显示什么信息?
printf(“China”); exec(“progf2”); printf(“America”); return; progf2: printf(“England”); exec(“progf3”); printf(“Canada”); return; progf3: printf(“Australia”); return; 假设:用户执行程序progf1启动进程proc1。 问题:进程proc1的运行将显示什么信息? 结果:China -- England -- Australia © 2009 电子工业出版社

21 例4.32—确定进程的用户属性 用户U启动进程P时: 进程P变身且映像文件F允许时: 进程P的RUID和EUID  用户U的ID
进程P的RGID和EGID  用户U的属组ID 进程P变身且映像文件F允许时: 进程P的EUID  文件F的属主ID (1) 进程P的EGID  文件F的属组ID (2) (1)的条件:文件F有SETUID标记 (2)的条件:文件F有SETGID标记 © 2009 电子工业出版社

22 文件的SETUID/SETGID标记的表示
位串表示法: utgtstrowoxorgwgxgrawaxa ut=1  SETUID;gt=1  SETGID 字符串表示法: RoWoXoRgWgXgRaWaXa ut=1  Xo=“s”;gt=1  Xg=“s” 例子:  r-s--x--x  r-x--s--x © 2009 电子工业出版社

23 例4.35—文件SETUID/SETGID的应用
progf1: printf(“China”); exec(“progf2”); printf(“America”); return; progf2: printf(“England”); exec(“progf3”); printf(“Canada”); return; progf3: printf(“Australia”); return; grp2:x:301:usr5,usr6,usr7,usr8,usr9 --x--x--x usr1 grp progf1 --x--s--x usr6 grp Progf2 --s--x--x usr5 grp Progf3 rw-r----- usr5 grp filex 假设:用户usr1 执行程序progf1启动进程P。 问题:进程P显示China时,对文件filex拥有什么访问权限? 结果: © 2009 电子工业出版社

24 例4.35—文件SETUID/SETGID的应用
progf1: printf(“China”); exec(“progf2”); printf(“America”); return; progf2: printf(“England”); exec(“progf3”); printf(“Canada”); return; progf3: printf(“Australia”); return; grp2:x:301:usr5,usr6,usr7,usr8,usr9 --x--x--x usr1 grp progf1 --x--s--x usr6 grp Progf2 --s--x--x usr5 grp Progf3 rw-r----- usr5 grp filex 假设:用户usr1 执行程序progf1启动进程P。 问题:进程P显示China时,对文件filex拥有什么访问权限? 结果:没有任何权限。 © 2009 电子工业出版社

25 例4.35—文件SETUID/SETGID的应用
progf1: printf(“China”); exec(“progf2”); printf(“America”); return; progf2: printf(“England”); exec(“progf3”); printf(“Canada”); return; progf3: printf(“Australia”); return; grp2:x:301:usr5,usr6,usr7,usr8,usr9 --x--x--x usr1 grp progf1 --x--s--x usr6 grp Progf2 --s--x--x usr5 grp Progf3 rw-r----- usr5 grp filex 假设:用户usr1 执行程序progf1启动进程P。 问题:进程P显示England时,对文件filex拥有什么权限? 结果: © 2009 电子工业出版社

26 例4.35—文件SETUID/SETGID的应用
progf1: printf(“China”); exec(“progf2”); printf(“America”); return; progf2: printf(“England”); exec(“progf3”); printf(“Canada”); return; progf3: printf(“Australia”); return; grp2:x:301:usr5,usr6,usr7,usr8,usr9 --x--x--x usr1 grp progf1 --x--s--x usr6 grp Progf2 --s--x--x usr5 grp Progf3 rw-r----- usr5 grp filex 假设:用户usr1 执行程序progf1启动进程P。 问题:进程P显示England时,对文件filex拥有什么权限? 结果:读。 © 2009 电子工业出版社

27 例4.35—文件SETUID/SETGID的应用
progf1: printf(“China”); exec(“progf2”); printf(“America”); return; progf2: printf(“England”); exec(“progf3”); printf(“Canada”); return; progf3: printf(“Australia”); return; grp2:x:301:usr5,usr6,usr7,usr8,usr9 --x--x--x usr1 grp progf1 --x--s--x usr6 grp Progf2 --s--x--x usr5 grp Progf3 rw-r----- usr5 grp filex 假设:用户usr1 执行程序progf1启动进程P。 问题:进程P显示Australia时,对文件filex拥有什么权限? 结果: © 2009 电子工业出版社

28 例4.35—文件SETUID/SETGID的应用
progf1: printf(“China”); exec(“progf2”); printf(“America”); return; progf2: printf(“England”); exec(“progf3”); printf(“Canada”); return; progf3: printf(“Australia”); return; grp2:x:301:usr5,usr6,usr7,usr8,usr9 --x--x--x usr1 grp progf1 --x--s--x usr6 grp Progf2 --s--x--x usr5 grp Progf3 rw-r----- usr5 grp filex 假设:用户usr1 执行程序progf1启动进程P。 问题:进程P显示Australia时,对文件filex拥有什么权限? 结果:读+写。 © 2009 电子工业出版社

29 问题? © 2009 电子工业出版社


Download ppt "第6讲 访问控制基本方法 第4章:操作系统基础安全性 第3部分/共5部分."

Similar presentations


Ads by Google