《现代操作系统(中文第三版)》课后习题——第九章 安全

第九章 安全

1.破译下列的单一字符替换密文。明文包含的仅仅是字母,并且是Lewis Carroll的著名诗歌。

kfd ktbd fzm eubd kfd pzyiom mztx ku kzyg ur bzha kfthcm
ur mfudm zhx mftnm zhx mdzythc pzq ur ezsszcdm zhx gthcm
zhx pfa kfd mdz tm sutythc fuk zhx pfdkfdi ntcm fzld pthcm
sok pztk z stk kfd uamkdim eitdx sdruid pd fzld uoi efzk
rui mubd ur om zid uok ur sidzkf zhx zyy ur om zid rzk
hu foiia mztx kfd ezindhkdi kfda kfzhgdx ftb boef rui kfzk
答:
the time has come the walrus said to talk of many things
of ships and shoes and sealing wax of cabbages and kings
of why the sea is boiling hot and whether pigs have wings
but wait a bit the oysters cried before we have our chat
for some of us are out of breath and all of us are fat
no hurry said the carpenter they thanked him much for that
出自《走到镜子里》——Tweedledum和Tweedledee。

2.假设有一个私密密钥使用了26×26矩阵,行与列都以ABC...Z开头。明文每次用两个字符加密。第一个字符是列,第二个字符是行。每个单元由包含两个密文字符的行和列交叉组成。这样的矩阵必须有些什么限制?共有多少个密钥?
答:限制是任意两个单元格不能包含相同的两个字母,否则解密是不确定的。因此,676个矩阵元素中的每一个含有676个不同组合的字母中不同的一个。因此,不同组合的数量是676!这是一个非常大的数字。

3.私密密钥机制比公钥机制更有效,但需要发送者和接收者事先共用一个密钥。 假设发送者和接收者从未碰到过,但有可信的第三方与发送方共享密钥与接收方也共享密钥(另一个)。那么发送方和接收方如何在这种环境下建立一个新的共享密码体制?
答:发送者选择一个随机密钥,用与受信任的第三方共享的私密密钥将其加密,并发送给的该受信任的第三方。然后,可信的第三方解密随机密钥,并用与接收者共享的私密密钥重新加密,然后将该加密消息发送到接收方。

4.举一个简单例子说明一个数学函数,对一级近似来说这一函数是单向函数。
答:像y = xk这样的函数很容易计算,但求y的k次方根则要困难得多。

5.假设有A和B两个陌生人想使用对称密钥加密和对方交流,但是没有共享对称钥匙。假设他们俩都信任第三方C,C的公钥是大家都知道的。在这种情况下两个陌生人如何建立一个新的对称密钥?
答:A和B选择随机密钥Ka和Kb,使用C的公钥加密后将其发送到C。C选择随机密钥K,使用Ka加密后将其发送到A,使用Kb加密后将其发送到B。

6.假设一个系统在某时有1000个对象和100个域。在所有域中1%的对象是可访问的(r、w和x的某种组合),两个域中有10%的对象是可访问的,剩下89%的对象只在惟一一个域中才可访问。假设需要一个单位的空间存储访问权(r、w和x的某种组合)、对象ID或一个域ID,分別需要多少空间存储全部的保护矩阵、作为访问控制表的保护矩阵和作为能力表的保护矩阵?
答:全部的保护矩阵:1000×100 = 100 000单位空间。ACL:10×100×2(所有域中可访问的1%对象,100个域/ ACL)+ 100×2×2(10%的对象可在两个域中访问,两个域/ ACL)+ 890×1×2(一个域可访问89%的对象,一个域/ ACL)= 4,180个单位的空间。存储能力表所需的空间与ACL的相同。

7.我们讨论过的两种保护机制有能力表和访问控制表。对于下面每个保护问题, 请问应该使用哪个机制。
a) Ken希望除了他的某位办公室的同事之外,其他所有人都可以读到他的文件。b)Mitch和Steve想要共享一些秘密文件。
c)Linda想要她一部分的文件是公开的。
答:让一个人以外的所有人都可读取文件,选择访问控制表是唯一的可能。对于共享私密文件,可以使用访问控制表或有能力表。使文件公开,访问控制表是最简单的,但也可以将文件放在有能力表系统中众所周知的位置。

8.说出在这个UNIX目录里所列保护矩阵的所有者和操作权限。请注意,asw属于两个组:users和devel;gmw仅仅是users组的成员。把两个成员和两个组当作域,矩阵就有四行(每个域一行)和四列(每个文件一列)。
 
答:这是保护矩阵:

9.把前一个问题中的内容作为访问列表,说出每个所列目录的操作权限。
答:ACL如下:

10.在保护权限的Amoeba架构里,用户可要求服务器产生一个享有部分权限的新权限,并可转移给用户的朋友。如果该朋友要求服务器移去更多的权限以便转移给其他人的话,会发生什么情况呢?
答:服务器将验证该功能是否有效,然后生成较弱的功能。这是合法的。毕竟,朋友可以放弃已经拥有的功能。给予其放弃一些更弱的功能的权力不会产生安全威胁。如果你有能力放弃,也就是说,读/写能力,放弃只读权力不会产生问题。

11.在图9-13里,从进程B到对象1没有箭头。可以允许存在这类箭头吗?如果存在,它破坏了什么原则?
 
答:不,这会出现下写,这违反了*规则。

12.如果在图9-13里允许消息从进程传递到进程,这样符合的是什么原则?特别对进程B来说,它可以对哪些进程发送消息,哪些不可以?
答:写入另一个进程的进程与写入文件的进程类似。因此,符合*规则。一个进程可以上写,但不能下写。过程B可以发送给C,D和E,但不能发送给A。

13.请看图9-16所示的隐写术。每个像素色彩空间的点表示,该点处在其轴为R、G和B值的三维系统中。在使用这个空间时,请解释在图片中如果使用了隐写术,对分辨率有何影响?
 
答:在原始照片中,R,G和B轴各自允许从0到255的离散值,包括0和255。 这意味着可以使用的颜色空间中有224个有效点。当为隐形通道取出1位时,只允许偶数值(假设秘密位由0替换)。因此,尽可能多的空间被覆盖,但是颜色分辨率只有一半。总共只有1/8的颜色可以代表。不允许的颜色被映射到相邻的颜色,其所有值均为偶数,例如颜色(201,43,97),(201,42,97),(200,43,96)和(200,42,97)现在都映射到点(200,42,96),不能再被区分。

14.采用各种压缩算法ASCII文件里的自然语言可被压缩至少50%。如果采用在1600×1200图片中每个像素低位插入ASCII文本的方法,隐写术可写入的容量大小为多少个字节?图片尺寸将增加到多少(假设没有加密数据也没有由加密带来的扩展)?这种方法的效率即负载/(所传送的字节)多大?
答:该图像包含1,920,000个像素。每个像素可以使用3位插入ASCII文本,则原始容量为720,000字节。如果由于在存储文本之前压缩文本而有效地翻倍,则在压缩之前,该图像可以保存占用约1,440,000字节的ASCII文本。因此,单个图像可以容纳整个软盘的ASCII数据。由于隐写术没有扩展,具有隐藏数据的图像与原始图像的大小相同,效率是25%。这可以容易地从每个8位颜色样本的1位包含有效载荷的事实中看出,并且在每个有效载荷中压缩着两个ASCII文本。因此,每个24位像素,都编码了6位的ASCII文本。

15.假设一组紧密联系的持不同政见者在被压制的国家使用隐写术发送有关该国的状况消息到国外,政府意识到这一点并发送含有虚假信息的伪造图片。这些持不同政见者如何告诉人们来区分真实的消息和错误的消息?
答:持不同政见者可以使用私钥签署邮件,然后尝试广泛宣传他们的公钥。这有可能因为有人将其走私到国外,然后将其从自由的国家发布到互联网上。

16.去www.cs.vu.nl/ast网站点击covered writing链接。按照指令抽取剧本。回答下面的问题:
(a)原始的斑马纹和斑马纹文件的大小是多少?
(b)斑马纹文件中秘密地存储了什么剧本?
(c)斑马纹文件中秘密地存储了多少字节?
答:
(a)这两个文件都是2.25 MB。
(b)哈姆雷特,凯撒凯撒,李尔王子,麦克白和威尼斯商人。
(c)秘密存储了六个文本文件,共约722 KB。

17.让计算机不回显密码比回显星号安全些。因为回显出星号会让屏幕周围的人知道密码的长度。假设密码仅包括大小写字母和数字,密码长度必须大于5个字符小于8个字符,那么在不出现回显时有多安全?
答:这取决于密码有多长。构建密码的字母表有62个符号。总搜索空间为625+626+627+628,约为2×1014。如果密码已知为k个字符,则搜索空间减少到62k。 因此比例为2×1014/62k。对于k从5到8,这些值是242235,3907,63和1。换句话说,学习只有五个字符的密码减少242235倍的搜索空间,因为所有的长密码不必试,这是一个大胜利。但是,学习八个字符并不太有用,因为所有的短(简单)密码都可以跳过。

18.在得到学位证书后,你申请作为一个大学计算中心的管理者。这个计算中心正好淘汰了旧的主机,转用大型的LAN服务器并运行UNIX 系统。你得到了这个工作。工作开始15分钟后,你的助理冲进来叫道,“有的学生发现了我们用来加密密码的算法并贴在Internet。”那么你该怎么办?
答:尝试让助理冷静。密码加密算法是公开的。输入密码后,登录程序将加密密码,并将密码与密码文件中的条目进行比较。

19.Morris-Thompson采用n位随机码(盐)的保护模式使得入侵者很难发现大量事先用普通字符串加密的密码。当一个学生试图从自己的计算机上猜出超级用户密码时,这一结构能提供安全保护吗?假设密码文件是可读的。
答:不能。学生可以很容易地找出他的超级用户的随机码。该信息在未加密的密码文件中。例如,如果该随机码是0003,那么他只需要尝试将潜在密码加密为Susan0003,Boston0003,IBMPC0003等。如果另一个用户具有Boston0004的密码,那么他不会发现它。

20.请解释UNIX 口令机制与加密原理的不同。
答:加密机制需要使用解密算法和密钥从加密文本获取原始文本。UNIX口令机制使用不能反转的单向函数。

21.假设一个黑客可以得到一个系统的密码文件。系统使用有n位salt的Morris-Thompson保护机制的情况相对于没有使用这种机制的情况下,黑客需要多少额外的时间破解所有密码。
答:假设系统中有m个用户。 然后,黑客可以收集m个盐值,这里假设各不相同。 黑客必须尝试加密每个猜测密码m次,一次使用系统的每一个盐。 因此,黑客破解所有密码的时间增加了一倍。

22.请说出3个有效地采用生物识别技术作为登录认证的特征。
答:有很多标准。以下是其中的几个:测量(不是血液样本)应该是容易和无痛的;应该有很多值(不是眼睛颜色);特性不应随时间而改变(不是头发颜色);应该难以伪造特征(不是重量)。

23.某个计算机科学系有大量的在本地网络上的UNIX机器。任何机器上的用户都可以以
rexec machine4 who
的格式发出命令并在machine4执行,而不用远程登录。这一结果是通过用户的核心程序把命令和UID发送到远程计算机所完成的。在这一系统中,核心程序是可信任的吗?如果有些计算机是学生的无保护措施的个人计算机呢?
答:如果所有的机器都可以信任,它可以正常工作。如果某些信息不可信,则该方案会发生故障,因为不可信任的机器可以向可信任的机器发送消息,要求其代表超级用户执行某些命令。接收消息的机器无法知道该命令是否真的源于超级用户,或学生。

24.在UNIX 系统里使用密码与Lamport登录到非安全网络的架构有何相同点?
答:他们都使用单向功能。UNIX将所有密码存储在密码文件中,Lamport的方案使用单向函数生成一系列密码。

25.Lamport的一次性密码技术采用的逆序密码。这种方法比第一次用f(s),第二次用f(f(s))并依次类推的方法更简单吗?
答:使用它们是不行的。如果入侵者抓住了一个,他会知道下一次使用哪一个。 使用逆序密码可以防止这种危险。

26.使用MMU硬件来阻止如图9-24的溢出攻击可行吗?解释为什么?
 
答:不可行。该问题产生的原因是数组边界没有被检查,而数组边界不一定是页边界,因此MMU没有任何帮助。此外,在每个进程调用中进行内核调用以更改MMU的代价是非常大的。

27.请列出C编译器的一种可大量减少安全漏洞的特性。为什么这种特性没有被广泛使用?
答:编译器可以在所有数组引用上插入代码以执行边界检查。此功能将防止缓冲区溢出攻击。它没有被广泛使用,是因为它会减慢所有程序的速度。此外,在C语言中,声明一个大小为1的数组作为过程参数,然后是引用元素20是非法的,但是清楚地,已经通过地址传送的实际数组最好具有至少20个元素。

28.特洛伊木马可以在由权限保护的系统中工作吗?
答:如果能力表被用来实现小范围保护,那么就是不可以的,否则就可以。例如,如果编辑器仅启动要编辑的文件及其临时文件的功能,那么无论编辑器中潜藏什么木马,都仅仅只能读取这两个文件。而如果编辑器可以访问所有用户的对象,那么特洛伊木马可以做他们的肮脏的工作。

29.在删除文件时,文件块被放回空闲块列表,但并没有被清除。你认为让操作系统在释放之前首先清除每个文件块是个好办法吗?请从这两种做法的安全性和性能分别考虑?并解释每种操作的效果?
答:从安全的角度来看,这将是理想的。使用过的文件块有时被泄露其有价值的信息。而从性能的角度来看,清除块很浪费CPU时间,会严重降低性能。

30.寄生病毒如何保证a)在主程序运行前自己先运行?b)完成自己的操作后把控制权交还给主程序?
答:对于任何操作系统,所有程序必须从已知地址开始执行,或者在程序文件头的已知位置中存储起始地址。a)病毒首先将标准起始地址或文件头中的地址的指令复制到安全的地方,然后将跳转代码或自己的起始地址插入文件头。b)当完成自己的工作时,病毒会执行其借用的指令,然后跳转到下一个要执行的指令,或将控制权转交给到原始头文件中的地址。

31.有些操作系统需要在磁道的开始处设置磁盘分区。这对引导区病毒来说有什么便利?
答:主引导记录只需要一个扇区,如果第一个磁道的其余部分是空闲的,则它提供了很大一部分的空间给病毒隐藏原始引导扇区以及其自身代码。现代磁盘控制器一次读取和缓冲整个磁道,因此读取额外的数据时,不会有可察觉的延迟或附加搜索的声音。

32.改变图9-27所示的程序,让它找到所有的C语言程序而不是可执行程序。
 
答:C程序有扩展名.c,而不是使用访问系统调用来测试执行权限,检查文件名以查看是否以.c结尾。这段代码将会这样写:
char *filename;
int len;
filename = dp->dname;
len = strlen(file name);
if (strcmp(&file name[len − 2], ".c") == 0) infect(s);

33.图9-32d所示的病毒被加密过。反病毒实验室的科学家如何判断哪部分文件是加密密钥以便能够解密病毒代码并反向恢复?Virgil如何才能让这些科学家的工作更困难?
 
答:他们可能无法得知,但他们可以进行猜测,病毒中的一个字与剩余的内容会产生有效的机器代码。他们的电脑可以依次尝试每个病毒字,看看是否有任何一个产生有效的机器码。为了减慢这个过程,Virgil可以使用更好的加密算法,例如对奇数和偶数字使用不同的键,利用键和哈希函数得到一个随机数,然后将第一个字循环左移随机数位,循环左移第二个字,位数为原来的值加1,依此类推。

34.图9-32c的病毒同时有压缩程序和解压缩程序。解压缩程序用来展开并运行被压缩的可运行程序,那么压缩程序用来做什么呢?
 
答:压缩程序需要压缩其他可执行程序作为感染过程的一部分。

35.从病毒制作者的观点出发,说出多形态加密病毒的一个缺点。
答:大多数病毒不想感染文件两次,它甚至可能不起作用。因此,检测文件中是否已被病毒感染是非常重要的。所有用于使防病毒软件检测病毒变得困难的技术也使得病毒本身难以判断哪些文件已被感染。

36.通常人们把下列操作看作是受到病毒攻击后的恢复措施:
a)启动被感染的系统。
b)把所有文件备份到外部存储介质。
c)运行fdisk格式化磁盘。
d)从原版的CD-ROM重新安装操作系统。
e)从外部存储介质重新装入文件。请说明上述操作中的两个错误。
答:首先,从硬盘运行fdisk程序是一个错误。它可能被感染,并可能感染引导扇区。它必须从原始的CD-ROM或写保护的软盘运行。其次,恢复的文件可能会被感染。把它们复制回来而不清洁它们可能会重新安装病毒。

37.在UNIX里可能存在共事者病毒吗(不改动已有文件的病毒)?如果可能,为什么?如果不可能,为什么?
答:可能,但机制与Windows略有不同。在UNIX中,可以将共事者病毒安装在搜索路径上的目录中,而不是真实程序所在的目录。最常见的例子是在一个用户目录中插入一个程序ls,它有效地覆盖/bin/ls,因为它是第一个被找到的。

38.病毒和蠕虫的区別是什么?它们分别是如何繁殖的?
答:蠕虫是一个独立的程序,它本身就可以工作。病毒是附加到另一个程序的代码片段。蠕虫通过制作更多的蠕虫程序副本来再现。病毒通过感染其他程序再现。

39.自解压缩文件,把一个或多个文件以及一个提取程序压缩在一起,通常用作发布程序或升级程序。请讨论这种文件的安全特性。
答:显然,从未知来源执行任意程序是危险的。自解压缩文件可能特别危险,因为它们可以将多个文件释放到多个目录中,并且提取程序本身可能是一个特洛伊木马。如果有可用的选择,则以普通文件的形式获取文件要好得多,然后可以使用您信任的工具来提取文件。

40.讨论用某个程序做输入,写一个判断此输入程序是否含有病毒程序的可能性。
答:编写这样的程序是不可能的,因为如果这样的程序是可行的,那么破解者就可以使用该程序在她写的病毒程序中规避病毒检查。

41.9.8.1节描述了通过一系列防火墙规则将外界访问限制在仅有的三个服务上。请描述另一个能添加到此防火墙上的规则集,使得对这些服务的访问受到进一步严格的限制。
答:可以检查所有传入数据包的源IP地址。第二组规则将丢弃所有传入的源IP地址属于已知的垃圾邮件发送者的IP数据包。

42.在某些计算机上,图9-37b使用的SHR指令用“0”来填充未被使用的位;而其他位向右移。对图9-37b来说,使用不同的移位指令对正确性是否存在影响?如果有影响,哪种移位方法更好一些?
 
答:没有影响。如果使用零填充,则S2必须在低阶k位中包含真正的前缀作为无符号整数。如果使用符号扩展名,则S2也必须进行符号扩展。只要S2包含移动真实地址的正确结果,则S2中未使用的高位是什么不重要。

43.要校验Applet是否由可信的供应商标记,Applet供应商可以提供由可信第三方签署的证书,其中包括其公钥。但是读取证书用户需要可信第三方的公钥。这可由第四方提供,但是用户又需要第四方的公钥。这看上去没有办法解决验证系统,然而实际上浏览器却可以做到。为什么?
答:现有的浏览器预装了几个受信任的第三方(如Verisign Corporation)的公钥。 他们的业务包括验证其他公司的公钥,并为他们提供证书。这些证书由Verisign的私钥签名。由于Verisign的公共密钥内置于浏览器中,因此可以验证使用其私钥签名的证书。

44.描述使得Java成为比C能写出更安全的程序的编程语言的三个特征。
答:首先,Java不提供指针变量。这限制了进程覆盖任意内存位置的能力。其次,Java不允许用户控制存储分配(malloc / free)。这简化了内存管理。第三,Java是一种类型安全的语言,确保一个变量的使用方式应该基于它的类型。

45.假设你的系统使用JDK 1.2。给出允许一个来自www.appletsRus.com的小应用程序在你的机器上运行时你使用的规则(类似图9-39中的那些规则)。这个小应用程序可能从wwwappletsRus.com中下载额外的文件,在/usr/tmp/中读写文件,也从/usr/me/appletdir中读文件。
答:规则如下。


46.用C语言或shell脚本写一对程序,通过UNIX系统里的隐蔽信道来发送和接收消息。提示:即使当文件不可访问时也可以看到许可位,通过设置其参数的方法,确保sleep命令或系统调用被延迟一段固定的时间。请度量在一个空闲系统上的数据率,然后通过启动大量的各种后台进程来人为创建较大的负载,再次计算数据率。
答:略。

47.一些UNIX系统使用DES算法加密密码。这些系统通常连续25次应用DES算法获得加密密码。从网上下载一个DES的实现,写一个程序加密一个密码,检查一个密码对这个系统是否有效。使用Morris-Thompson保护机制产生一个有10个加密密码的列表。使用16位盐。
答:略。(盐:Salt,指加密中当用户首次提供密码时(通常是注册时),由系统自动往这个密码里加一些“Salt值”,这个值是由系统随机生成的,并且只有系统知道。)

48.假设一个系统使用访问控制表维护它的保护矩阵。根据如下情况写一组管理函数管理访问控制表:(1)创建一个新的项目;(2)刪除一个对象;(3)创建一个新域;(4)刪除一个域;(5)新的访问权限(r、w和x的某种组合)被授予一个域来访问一个对象;(6)撤销已存在的对一个域的对象的访问权限;(7)授予某个对象对所有域的访问权限;(8)撤销某个对象对所有域的访问权限。
答:略。
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值