实验十三操作系统安全性实验.pdf

实验十三操作系统安全性实验.pdf

ID:53005158

大小:118.52 KB

页数:3页

时间:2020-04-10

实验十三操作系统安全性实验.pdf_第1页
实验十三操作系统安全性实验.pdf_第2页
实验十三操作系统安全性实验.pdf_第3页
资源描述:

《实验十三操作系统安全性实验.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验十三操作系统安全性实验(一)实验目的在操作系统的安全性增强中,对程序的权限管理是非常重要的问题。对程序的运行和访问权限有不同的管理方法。目前常见的一种对程序运行权限的管理方法是采用授权的序列号来限定程序的运行。本次实验就是综合采用标识,加密和鉴别等多项技术来实现对一种对程序运行权限的限制,从而增强学生对相关安全技术的理解和掌握,并提高学生进行系统安全程序设计的应用能力。(二)实验题目在计算机系统中限制程序的运行权力大多都是用序列号来限定的。如果序列号只是一串符号的表示则不能防止同一个程序在不同的

2、计算机复制运行。因为同一个序列号可以在许多机器上同时安装。如果将序列号的标示信息与特定计算机的硬件系统相结合就可以做到每个计算机对应一个序列号,这样同一个程序的必须拥有某计算机上的序列号才可以在该计算机上运行。获得这种与硬件系统绑定的序列号的方法有很多种,本次实验将采用硬盘标识信息来获得序列号。每个硬盘都有一个唯一的标识序列号,这样如果将硬盘序列号和程序绑定在一起就可以将程序限定在某块硬盘上面。程序运行时通过查询当前硬盘标识序列号信息并与提供的程序序列号相比较,从而确保是否有运行权限。但是,如果直接

3、采用硬盘标识序列号作为程序序列号是不安全的,因为以明文方式存储的信息容易被破译。因此我们借鉴UNIX系统中保存用户密码信息的方法来保存序列号。在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在shadow文件中。当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明文的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而

4、且还在一定程度上增加了密码被破解的难度。本次实验产生序列号和验证的方法与此类似,不过将用户密码变成了硬盘序列号信息。仔细阅读附件1中关于硬盘序列号信息的获取方法和附件2中关于MD5加密算法的介绍。设计并完成一个在Linux系统下产生软件序列号的程序,要求该程序能够读出硬盘序列号信息并用MD5算法加密,产生的密文存放在license.dat文件中。用教师提供的Test程序来测试产生的序列号是否正确(三)测试要求将license.dat与教师提供的Test程序放在同一目录下,运行Test程序。Test程

5、序首先按照产生序列号的方式重新计算序列号,然后与license.dat中的信息进行比较,如果比较结果一致则继续运行。正确的运行结果是打印出“hello,world”。如果提示错误,则需要你重新调试自己的程序产生争取的序列号。(四)实验报告要求实验报告要包含以下几个方面:1.实验目的,实验题目、实验环境。2.算法思想和概要设计和重要函数功能和接口说明。3.源程序、注释和结果。注释如在上机时来不及打入,可在写报告时补上。4.测试方法,对测试结果的分析,错误的分析。5.程序及测试的改进、本次上机经验及体会

6、。附1硬盘序列号的读写每个硬盘的序列号都是唯一的,硬盘的基本信息中还有其他的一些信息,如厂家设定、磁头数等等,而且这些信息都是连续的。每块IDE硬盘信息格式都是相同的,存放的位置也相同的,全部都放在磁盘的头部。硬盘标识的结构硬盘标识是保存在硬盘头上的256个字符:它们他们如下:WORD0:基本信息字WORD1:柱面数WORD2:保留WORD3:磁头数WORD4:保留WORD5:保留WORD6:每磁道扇区数WORD7-9:厂家设定值WORD10-19:序列号WORD20:缓冲类型WORD21:缓冲大小

7、WORD22:ECC校验大小WORD23-26:固件版本WORD27-46:内部型号其中我们所关心的是第10-19个字符,在这个位置保存着银盘的序列号,在所有IDE硬盘都保符合这样的标准。但是事实上现在的硬盘并没用到全部的10个word,只用到了10-13这四个word,每个word是16位一共64位数据。读硬盘序列号由于在Linux系统中对应每个IDE硬盘都会生成一个对应得文件,这个文件里记录了硬盘前256个word的内容,除了从硬盘中直接读取外还可以从Linux系统中这个文件中读取。从Linux

8、系统中读取文件比较简单,但是从硬盘中读取序列号更为确切和安全。读取序列号需要调用到系统IO读写。我们想要读的仅是最前面256个word中第10-13个word。在Linux系统中队硬盘序列号的读写方法如下:①向端口3F6写入控制字节,建立相应的硬盘控制方式;②检验硬盘控制器和驱动器的状态(检测端口的第7和第6两位),如果控制器空闲而且驱动器就绪,即可输入命令;③完整地输入7个字节长度的命令块,一次写入端口1F1H-1F7H,不论是否需要,端口1F1H-1F6H对应的前

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。