1.32k likes | 1.5k Views
第九章 计算机 软件 的安全 性. 2001 年 10 月,在中国举行的 APEC 会议上,微软总裁比尔 . 盖茨说:“中国即将加入世界贸易组织,中国的企业需要依赖信息技术提高自身的效率和竞争力,这将带来巨大的应用软件需求。这给中国的软件产业既带来了挑战,也带来了机遇。中国信息产业尤其是软件产业的发展前景光明,我对此很有信心。软件产业创造了很大的就业机会,发展势头是可以预期的。”比尔 . 盖茨建议:对于中国来说,需要大力发展教育。“如果有更多的学生学习计算机,有更好的英语技能,中国信息产业的发展步伐会更快。”. 第九章 计算机 软件 的安全 性. 本章知识点:
E N D
第九章 计算机软件的安全性 2001年10月,在中国举行的APEC会议上,微软总裁比尔.盖茨说:“中国即将加入世界贸易组织,中国的企业需要依赖信息技术提高自身的效率和竞争力,这将带来巨大的应用软件需求。这给中国的软件产业既带来了挑战,也带来了机遇。中国信息产业尤其是软件产业的发展前景光明,我对此很有信心。软件产业创造了很大的就业机会,发展势头是可以预期的。”比尔.盖茨建议:对于中国来说,需要大力发展教育。“如果有更多的学生学习计算机,有更好的英语技能,中国信息产业的发展步伐会更快。”
第九章 计算机软件的安全性 本章知识点: 软件安全的概念 软件与程序的运行机制 软件自身安全 软件存储安全 软件通信安全 软件应用安全 软件运行安全 软件正确性与可信性 软件安全保护机制 软件防复制(存储访问技术) 软件防执行(运行控制技术) 软件防暴露(加密解密技术) 软件防篡改(完整可用技术)
第九章 计算机软件的安全性 软件的重要性: 硬件是躯体,软件是灵魂! 软件是信息化的灵魂! 软件是各国、尤其是发达国家争夺科技主导权的制高点。 软件是一种产品,软件是一种武器! 软件产业是知识经济的核心。 软件既可以用来攻击别人,也可以用来保护自己。 软件主要指计算机系统中的程序(源程序和执行程序)以及程序运行所必须的数据和文档。
第九章 计算机软件的安全性 恶意攻击的主要目标:计算机系统 直接的重点目标:信息和数据,以及包含、记录和 存储这些信息数据的软件(程序)。 软件的丢失、篡改、窃取、非法复制、滥用等对系统造成的后果是灾难性的,对社会造成的影响可以是严重和深远的。 网络、通信和信息处理的推广普及,系统开放式结构设计,系统连接技术和协议公开化,形成一个社会各方与专业领域融合的大环境。各种大型应用软件、专用软件(如金融财务软件、军用软件、统计规划软件、地理、气象、能源、航空航天软件等)的使用,大型数据库的联网开放,都使软件和数据的重要性和地位日益重要和不可缺少。
第九章 计算机软件的安全性 国民经济对软件和数据的依赖性日益严重,软件中任何一个小的纰漏、一种不完善的功能、一次微细的修改都可能对系统造成极大的影响。 有恶意企图的人、企图利用软件来达到非法目的的人视软件为一个攻击对象。 对软件的保护和对系统的保护一样至关重要、是十分迫切需要解决的问题。 软件安全保护保护什么? 软件生成的过程。 软件本身。 软件赖以生存的环境。 软件运行的条件。
第九章 计算机软件的安全性 软件安全保护什么? 软件的完整性、可用性、保密性、运行安全性。 ①软件自身安全 防止软件丢失、被破坏、被篡改、被伪造 ②软件存储安全 可靠存储,保密存储,压缩存储,备份存储 ③软件通信安全 安全传输、加密传输、网络安全下载、完整下载 ④软件使用安全 合法用户与非法用户,授权访问,防止软件滥用, 防止软件窃取,软件的非法复制 ⑤软件运行安全 确保软件正常运行,功能正常
第九章 计算机软件的安全性 一、软件与程序的运行机制 一个程序要运行,必须要有环境。 (对Von Numan存储程序式计算机来说) 程序代码(指令)有地方存放, 处理器能从这里取到, 指令能够按照顺序执行, 保存的程序和数据是完整的。
第九章 计算机软件的安全性 二、软件自身安全 软件自身的完整性是软件抵御外部攻击的能力。 自身安全的研究包括: 软件自身完整性:保证代码完整、数据完整和功能完整,而采用数据校验技术,程序自诊断、自保护技术,软件加密、软件压缩、软件运行控制技术等。 软件自身可信性:减少(或无)隐蔽通道、无程序陷阱(trapdoor),无(或者减少)bug。避免无效操作,死机和不可信调用。 隐蔽通道是指一个秘密的和未公开发表的进入软件模块的入口。这些入口可以是软件程序为了功能扩充而保留的程序接口;为软件测试而有意留下、但测试后又忘记删除的接口或入口;为今后软件维护而有意留下的程序入口;软件产品化后提供的公共调用入口等。
第九章 计算机软件的安全性 三、软件存储安全 软件和数据的宿主是各类存储介质 (磁盘、磁带、光盘等),对软件的访问、修改、复制等都需要经过存储介质和设备。存储设备的可靠性、存储设备 (磁盘) 的加密解密、存储设备的访问控制等成为软件安全的重要问题。影响软件存储安全的两个重要因素是: 1。存储介质(磁盘)的可靠性 2。文件系统的组织结构 3。数据与文件的路由
第九章 计算机软件的安全性 1。存储介质(磁盘)的可靠性 磁盘是软件(程序)的载体,磁盘受损会影响到软件的存储与执行。 采用磁盘管理(程序)工具,可以有效地对磁盘进行操作,但是,也可以对磁盘进行伤害。磁盘工具的滥用,是一个潜在的危险。 注意:别有用心的人可以通过对磁盘进行直接读写而产生破坏。
第九章 计算机软件的安全性 1)磁盘基本配置参数 硬盘的主要工作参数: 柱面(磁道)数:Cylinders (缩写Cyl) 磁头数: Heads(缩写H) 每道扇区数: Sectors per track(缩写Sec) 每扇区字节数:Bytes per sector(缩写BpT) 硬盘参数设置必须在使用前通过系统setup配置 程序设置,并记录在CMOS存储芯片中。
第九章 计算机软件的安全性 • 2)硬盘容量计算 • 即CHS模式(Cylinder, Head, Sector) • 计算:柱面 磁头 扇区 字节 = 总容量 • 例: 柱面数 (1024) • 磁头数 ( 16) • 扇区数 ( 63) • 字节数 ( 512) • = 总容量 528 Megabytes
第九章 计算机软件的安全性 系统对大容量硬盘的支持问题: 1)DOS系统不能访问2.1GB的磁盘分区 2)Windows须借助DM进行大分区 3)528MB限制:BIOS和盘控制器(94年) 4)4096Cyl限制:4096Cyl(2.1GB),BIOS 5)8.4GB限制:BIOS,OS,FAT32支持 8.4GB 6)速度限制:UltraDMA33与UltraDMA66 7)交叉系数:Interleave与格式化 8)格式化:不作低级格式化
硬盘容量限制问题是在8.4GB的年代。 我们知道硬盘的容量和扇区都是由三个数值决定,它们分别是柱面数(Cylinder)、磁头数(Head)、扇区数(Sector),简称CHS。 操作系统访问硬盘需要通过DOS下的INT13 API接口,虽然硬盘的CHS寄存器是28bit,但是瓶颈在于INT13 API的C:10bit;H:8bit;S:6bit,这样能访问的最大容量也就是210×28×(26-1)=16515072个扇区,第一个扇区不能为0,所以减去1。每扇区是512字节,所以最大容量就是8.46 GB(硬盘厂商都是以1000为换算单位),这样就产生了8.4容量的限制。
在那之后 。。。 • Windows系统可以通过32bit的Disk Access直接访问硬盘,这样瓶颈就转回了硬盘的CHS寄存器身上,一共28bit的CHS寄存器可寻址最大容量是228-1,也就是268435455个扇区,每个扇区512字节,总容量就是137.4GB,这就是我们目前的硬盘容量限制。
現在 • 打破了这个限制,把28bit的CHS寄存器限制提升到了48bit,也就是CHS都是16bit,这样容量限制就是144PB(1PB=1,000,000GB),但是我们到目前使用的操作系统都是32bit寻址,所以瓶颈在于操作系统了,不过即便是32bit,我们受到的限制也是2199GB,这足够我们今后很多年的发展了
第九章 计算机软件的安全性 3)交叉系数:Interleave 12 1 12 1 11 2 8 5 10 3 4 9 9 4 11 2 5 6 8 7 7 6 3 10 交叉系数:1:1 交叉系数:1:4
第九章 计算机软件的安全性 4)磁盘分区:Partition 磁盘在存储文件和数据之前必须进行分区,没有进行分区的磁盘不能进行格式化。 分区是形成磁盘记录结构的基础,格式化是按照文件系统的存取结构在磁盘上形成有关联的记录区。 分区容量的大小可由用户自行选择,但小容量分区和大容量分区需要分区程序的支持。
第九章 计算机软件的安全性 磁盘分区信息 MSDOS和Windows操作系统磁盘分区信息记录在磁盘的主引导扇区中,位于磁盘的0面0道第一扇区。 共有四个磁盘分区信息表,地址位移为
第九章 计算机软件的安全性 磁盘分区表 01B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 80 01 01C0 01 00 0B 3F 7F FB 3F 00-00 00 C1 40 1F 00 00 00 01D0 41 FC 05 3F FF FD 00 41-1F 00 80 9F 1F 00 00 00 01E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 01F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA 第一个分区表:01BE----01CD 第二个分区表:01CE----01DD 第三个分区表:01DE----01ED 第四个分区表:01EE----01FD
硬盘分区表,位于1BEH-1FDH处,每个分区表占用16个字节,共4个分区表,16个字节各字节意义如下:硬盘分区表,位于1BEH-1FDH处,每个分区表占用16个字节,共4个分区表,16个字节各字节意义如下: 0:自举标志,80H为可引导分区,00为不可引导分区; 1~3:本分区在硬盘上的开始物理地址; 4:分区类型,其中1表示为12位FAT表的基本DOS分区; 4为16位FAT表的基本DOS分区;5为扩展DOS 分区; 6为大于32M的DOS分区; 其它为非DOS分区。 5~7:本分区的结束地址; 8~11:该分区之前的扇区数,即此分区第一扇区的绝对扇区号; 12~15:该分区占用的总扇区数。 . 引导扇区的有效标志,位于1FEH-1FFH处,固定值为AA55H。
硬盘分区是针对一个硬盘进行操作的,它可以分为:主分区、扩展分区、逻辑分区。其中主分区可以是1-4个,扩展分区可以有0-1个,逻辑分区则没有什么限制。它们的关系如下图所示:硬盘分区是针对一个硬盘进行操作的,它可以分为:主分区、扩展分区、逻辑分区。其中主分区可以是1-4个,扩展分区可以有0-1个,逻辑分区则没有什么限制。它们的关系如下图所示: 主分区 扩展分区 主分区 主分区 主分区 扩展分区 主分区 主分区 主分区 主分区 主分区 主分区 逻辑分区 逻辑分区 逻辑分区 扩展分区
第九章 计算机软件的安全性 2。文件系统的组织结构 文件系统在磁盘上的结构是了解系统核心的关键,也是软件安全的基础。 每种操作系统的文件系统组织结构是不一样的,各自具有自己的特点,了解这种特点,就了解了存储在磁盘上的文件、数据等的访问方法,每一个系统管理员和网络管理员都必须了解文件系统组织结构及其在磁盘上的存储结构。 在流行操作系统中MSDOS、Windows、UNIX的文件系统在磁盘上的结构是保证安全的基础。
第九章 计算机软件的安全性 1)Windows文件系统的组织结构 Windows文件系统(FAT16)与MSDOS具有类似的磁盘结构,包括: (1)主引导扇区 (2)次引导扇区 (3)文件访问表(FAT表) (4)文件目录结构
WIN95/98/ME文件系统 • 硬盘区域的组织(FAT12/FAT16/FAT32) • FAT16分区< 2GB • 由MBR( 虚拟MBR)、DBR、FAT、FDT、DATA 构成 • FDT定义了文件名、文件大小、文件存放的起始簇号 • FAT是一个链表,定义文件的其他存放簇号和结束标志。
各区域的相互关系 • 硬盘启动: • 由BIOS读入MBR的内容 • 然后调入活动分区的DBR,由DBR来引导系统 • DBR中除了引导程序部分,还有一个重要的BPB表,操作系统靠BPB表参数来管理文件。
FAT16分区 B:每扇区字节数 512 D:每簇扇区数 4 E:保留扇区 1 10:FAT数 2 11:引导记录 512 16:每个FAT扇区数 63 1FE:引导扇区结束标志55AA
FAT16文件系统 逻辑驱动器 MBR DBR 保留扇区 FAT1 FAT2 FDT=32 DATA 剩余扇区
FAT32文件系统BPB参数 B:每扇区字节数 512 D:每簇扇区数 32 E:保留扇区 32 10:FAT数 2 11:引导记录 0 未使用 16:每个FAT扇区数 0, FAT32不用 24:每个FAT扇区数 9542 2c: 引导目录第一簇 2。是根目录在DATA区的起始扇区 52:文件系统 FAT32 1FE:引导扇区结束标志55AA
FAT32文件系统 保留扇区=32 FAT1 FAT2 DATA 剩余扇区 FDT
第九章 计算机软件的安全性 在磁盘上的分布情况: (FAT16) 0面0道1扇区 共有62个扇区保留 主引导 扇区 保留扇区 (内容应当为全0) 。。。。。 次引导 扇区 FAT表 FAT表 1 2 文件目 录表 数据 。。。。 1面0道1扇区
第九章 计算机软件的安全性 3。数据与文件的路由 注意: 尽可能不在软件程序中采用路由来访问文件和数据。这样,由于物理盘体的安装替换,磁盘的逻辑盘号将会发生改变,从而改变软件的运行配置环境,造成错误。 如果必须要设置数据路由,必须根据磁盘配置情况予以自动修改并连接。
第九章 计算机软件的安全性 1)、硬盘接口 IDE 仅支持2个盘 可支持4个盘 EIDE 7/15个盘 可支持多个盘 SCSI 可支持多分组多个磁盘 DAC
第九章 计算机软件的安全性 2)、硬盘盘号 原有硬盘盘号排序 逻辑盘号重新排序 C: C: D: E: 盘 1 盘 1 E: F: F: G: C: D: D: H: 盘 2 盘 2 E: I: 光盘 光盘 K: 活动盘 活动盘 J:
单硬盘安装 • 硬盘在出厂时,一般都将其默认设置为主盘,跳线连接在“Master”的位置,如果你的计算机上已经有了一个作为主盘的硬盘,现在要连接一个作为从盘。那么,就需要将跳线连接到“Slave”的位置。
多硬盘的安装与设置 • 主板上一个IDE 接口可以接两块硬盘(即主从盘),而主板有两个IDE口即IDE1和IDE2,所以理论上,一台个人电脑可以连接四块硬盘
主从设置。 主从设置虽然很简单,但可以说是双硬盘安装中最关键的。一般来说,性能好的硬盘优先选择作为主盘,而将性能较差的硬盘挂作从盘。
第一、最好将两块硬盘分别接在主板上的两个IDE口上,而不要同时串在一个IDE口上,此时就不需要进行主从盘设置,不过会出现一个问题,即双硬盘盘符交错问题.第一、最好将两块硬盘分别接在主板上的两个IDE口上,而不要同时串在一个IDE口上,此时就不需要进行主从盘设置,不过会出现一个问题,即双硬盘盘符交错问题.
第二、如果用户还有如光驱、刻录机等设备,那最好连将两块硬盘连接在同一根硬盘线上,这样的做法是不让光驱的慢速影响到快速的硬盘。第二、如果用户还有如光驱、刻录机等设备,那最好连将两块硬盘连接在同一根硬盘线上,这样的做法是不让光驱的慢速影响到快速的硬盘。
光驱和硬盘到底应当怎样连接 • 对于标准的IDE接口光驱,可以将光驱与硬盘连接在一条数据线上,但必须使用主板上的Primary IDE(或IDE1)接口,硬盘跳线应该设为主盘(Master),光驱应设置为从盘(slave)模式;
光驱和硬盘到底应当怎样连接 • 也可以让硬盘和光盘使用两条数据线,硬盘使用主板的Primary IDE(或IDE1)接口,光驱使用主板的Secondary IDE(IDE2)接口,硬盘和光驱此时都要把跳线设为主盘(Master)。
第九章 计算机软件的安全性 四、软件运行安全 1)软件运行正确性 计算机系统的安全也取决于在其上运行的软件。 软件既要确保能够正常运行,还应具有非常高的运行正确性,在执行时其功能不应出现差错,一旦出现差错,则要有出错处理能力和容错能力。要求软件在运行过程中,不能破坏别的运行软件,也不允许别的软件来破坏自己。 。
第九章 计算机软件的安全性 2)运行日期和时间 日期和时间是计算机内常用的定时基础,即时钟。 三种时钟概念: ①系统时钟(system clock) 控制中央处理器和其他逻辑器件和部件工作的时钟。 ②实时时钟(realtime clock) 根据实时事件和定时方式完成各种控制操作的定时。 ③日历时钟(canlender clock) 与日历日期和时钟同步的工作时钟。 日历时钟记录了计算机工作的日期和时间,记录下了文件和数据存取、注册登录操作、传输接收的日期和时间,某些软件(如金融、银行、统计、交易、气象、商务、军事等)对日期和时间非常敏感,对日期和时间具有很大的依赖性。
第九章 计算机软件的安全性 3)Y2K问题 Y2K问题即“2000年问题”、“千年虫”问题。 问题的起因早至60年代。 当初计算机程序设计人员为节省存储空间,将日期的年份设定仅仅采用了两位字符,默认年份的开头两个数字总是19,即1998年被简记为98。而在读出年份时,又自动地在其前面加上数字19。目前的几乎所有计算机系统沿袭了这种简化日期记录、表达和计算方式。而2000年在现有系统中只能输入和记录为00,读出和计算时自动加上19会成为1900,使2000年和1900年没有区别。这种错误表达,尤其是在计算中将会影起严重的后果,它可能引发金融混乱、统计错误、交易失效,甚至整个计算机系统和信息系统崩溃。