计算机数据安全(22 10)实验指导书
- 格式:doc
- 大小:1.30 MB
- 文档页数:25
《数据安全》课程设计指导书计算机与控制学院*******@*******一.目的本课程是信息安全专业所开设的一门基础性的实践课程,主要是数据安全原理和技术在实践开发中的具体应用。
本课程的任务是:通过本课程的学习实践,使用学生进一步理解数据安全开发的工程化思想,掌握如何有效集成各种算法设计安全系统,掌握数据安全相关软件分析、设计和测试方法,面向对象的分析和设计方法的具体应用,熟悉一些数据安全软件开发流程。
二.题目任选下列一项目(或者集成其中的数项)进行,查阅相关文献、了解相关的系统,要求完成系统需求规约文档、系统分析模型文档、系统设计模型文档、系统测试设计文档、系统编码和测试报告。
1. 文件加密系统2. 数字版权保护系统3. 多功能数字签名系统4. U盘加密系统5. 数据备份与恢复软件6. 基于内容加密系统7. 数字密写系统(学生可自选课题,但需由教师认可)三.任务完成形式1.完整的软件系统最终必须向指导老师提交完整的电子版程序源代码、可执行程序、数据文件以及使用说明文件等。
源代码文件要特别注意编程规范、代码风格,关键代码需有合理的注释,不含任何无用代码;数据文件内要求有一定数量的“真实”数据(如对于记录文件,需要有5条以上记录);使用说明文件的第一行,需要给出设计者的学号、姓名,后面为其它说明。
2.课程设计报告(详细要求请参考附录二)课程设计报告总体上主要包括以下几个部分:1)封面2)目录3)课程设计报告正文4)软件安装、使用或者配置说明5)参考文献四.总体要求根据所给的实验指导书的要求,从中选择项目,应用所学的知识,完成题目所规定的各项要求。
总体要求如下:1.程序代码总量不少于600行(其中不包括编译器自动生成的代码),要求基本上逐行注释,关键代码必须有合理注释以及相应的说明。
2.课程设计报告正文字数不少于8000字,概念清楚、叙述正确、内容完整、书写规范。
3.课程设计中必须按指导书要求,综合应用所学的数据安全知识解决实际问题,有必要的理论分析,设计要有合理的依据。
计算机安全实验指导书课程号:适用专业:计算机科学与技术制定人:教研室:网络教研室计算机科学与信息工程学院2007 年9 月实验1 利用软件动态分析技术破解WinZip9.0(4学时)一、实验目的1.理解软件分析技术的原理。
2.掌握常见动态分析工具的使用方法。
3.利用动态分析工具Soft-ICE破解WinZip9.0。
二、实验理论基础1.软件分析技术软件分析技术一般分为静态分析技术和动态分析技术两种。
静态分析是从反汇编出来的程序清单上分析,从提示信息入手,了解软件的编程思路,以便顺利破解。
动态分析是指利用动态分析工具一步一步地单步执行软件,进行破解。
2.动态分析的步骤首先对软件进行粗跟踪。
即每次遇到调用CALL指令、重复操作指令REP、循环操作LOOP指令以及中断调用INT指令等,尸般不要跟踪进去,而是根据执行结果分析该段程序的功能。
其次对关键部分进行细跟踪。
对软件进行了一定程度的粗跟踪之后,便可以获取软件中我们所关心的模块或程序段,这样就可以针对性地对该模块进行具体而详细地跟踪分析。
一般情况下,对关键代码的跟踪可能要反复进行若干次才能读懂该程序,每次要把比较关键的中间结果或指令地址记录下来,这样会对下一次分析有很大的帮助。
三、实验内容1.安装动态分析工具Soft-ICE。
2.利用Soft-ICE破解WinZip9.0,使之成为注册版本。
四、实验步骤1.下载、安装动态分析软件Soft-ICE,并从“开始”菜单启动Soft-ICE,熟悉其具体操作。
2.启动winzip9.0,弹出一个未注册窗口,单击按钮“Enter Registration Code...”,出现注册窗口。
输入自己想要的用户名及任意注册码,如“123456”。
3.使用快捷键【Ctrl+D】,调出Soft-ICE窗口。
输入命令“S 30:0 lffffffff 123456”,找到一个内存地址,在此内存地址处设断点,然后回车。
4.输入命令“X”,回车退出Soft-ICE窗口。
《计算机安全基础》实验指导书侯迎春09计网(1)、(2)、(3)班用内部资料目录实验1 增强Windows操作系统安全1.实验目的及要求1.1实验目的通过实验掌握 Windows 账户与密码的安全设置、文件系统的保护和加密、安全策略与安全模板的使用、审核和日志的启用、本机漏洞检测软件 MBSA 的使用,建立一个 Windows 操作系统的基本安全框架。
1.2实验要求根据教材中介绍的 Windows 操作系统的各项安全性实验要求,详细观察并记录设置前后系统的变化,给出分析报告。
2.实验设备及软件1 台安装 Windows2000/XP 操作系统的计算机,磁盘格式配置为 NTFS ,预装 MBSA(Microsoft Baseline Security Analyzer) 工具。
3.实验内容(1)账户与密码的安全设置(2)文件系统的保护和加密(3)启用安全策略与安全模板(4)用加密软件 EFS 加密硬盘数据(5)审核与日志查看(6)利用 MBSA 检查和配置系统安全需要说明的是,下面的实验步骤主要是以 Windows2000/XP 的设置为例进行说明,并且设置均需以管理员( Administrator )身份登陆系统。
在 Windows XP 操作系统中,相关安全设置会稍有不同,但大同小异。
4.实验步骤4.1 任务一账户和密码的安全设置1 .删除不再使用的账户,禁用 guest 账户⑴ 检查和删除不必要的账户右键单击“开始”按钮,、打开“资源管理器”,选择“控制面板”中的“用户和密码”项;在弹出的对话框中中列出了系统的所有账户。
确认各账户是否仍在使用,删除其中不用的账户。
⑵ 禁用 guest 账户为了便于观察实验结果,确保实验用机在实验前可以使用 guest 账户登陆。
打开“控制面板”中的“管理工具”,选中“计算机管理”中“本地用户和组”,打开“用户”,右键单击 guest 账户,在弹出的对话框中选择“属性”,在弹出的对话框中“帐户已停用”一栏前打勾。
一、实验目的随着信息技术的飞速发展,计算机网络安全问题日益凸显。
为了提高学生的网络安全意识,掌握网络安全防护技能,本次实验旨在通过模拟网络安全攻击和防护,让学生了解网络安全的基本概念、攻击手段和防护措施,提高学生的网络安全防护能力。
二、实验环境1. 实验软件:Kali Linux(用于模拟攻击)、Metasploit(用于攻击工具)、Wireshark(用于网络数据包捕获与分析)2. 实验设备:两台计算机(一台作为攻击者,一台作为受害者)三、实验内容1. 网络扫描(1)使用Nmap扫描目标主机的开放端口,了解目标主机的基本信息。
(2)分析扫描结果,找出可能存在的安全漏洞。
2. 漏洞利用(1)针对目标主机发现的漏洞,利用Metasploit进行漏洞利用。
(2)分析攻击过程,了解漏洞利用的原理和技巧。
3. 数据包捕获与分析(1)使用Wireshark捕获攻击过程中的网络数据包。
(2)分析数据包内容,了解攻击者的攻击手法和目标主机的响应。
4. 防护措施(1)针对发现的漏洞,采取相应的防护措施,如更新系统补丁、关闭不必要的服务等。
(2)学习防火墙、入侵检测系统等网络安全设备的使用方法,提高网络安全防护能力。
四、实验步骤1. 准备实验环境(1)在攻击者和受害者主机上安装Kali Linux操作系统。
(2)配置网络,使两台主机处于同一局域网内。
2. 网络扫描(1)在攻击者主机上打开终端,输入命令“nmap -sP 192.168.1.1”进行扫描。
(2)查看扫描结果,了解目标主机的开放端口。
3. 漏洞利用(1)在攻击者主机上打开终端,输入命令“msfconsole”进入Metasploit。
(2)搜索目标主机存在的漏洞,如CVE-2017-5638。
(3)使用Metasploit中的CVE-2017-5638漏洞模块进行攻击。
4. 数据包捕获与分析(1)在受害者主机上打开Wireshark,选择正确的网络接口。
数据安全课程设计指导书1. 引言数据安全是当今信息社会中的一个重要问题,随着互联网的快速发展和信息技术的广泛应用,我们的生活越来越离不开数据。
然而,随之而来的数据泄漏、无法防御的黑客攻击以及隐私泄露等问题也日益严重。
因此,数据安全日益受到重视,为了培养学生的数据安全意识和基本技能,本课程设计旨在指导学生了解和掌握数据安全的基本知识和常用技术。
2. 课程目标本课程旨在帮助学生:•认识数据安全的重要性和现实意义;•理解数据安全涉及的基本概念和主要威胁;•掌握常见的数据安全技术和方法;•培养数据安全意识和解决问题的能力。
3. 课程内容3.1 数据安全概述•数据安全的定义和重要性;•数据安全与信息安全的关系;•数据获取、处理、存储和传输中存在的风险。
3.2 数据加密与解密•对称加密算法和非对称加密算法的基本原理和常见算法;•数字签名和数字证书的原理和应用;•HTTPS协议的工作原理和安全性。
3.3 数据存储安全•数据备份与恢复;•数据存储安全的管理与控制;•数据库安全性与漏洞及其防范。
3.4 数据传输与网络安全•网络攻击和防范;•防火墙和入侵检测系统的原理和应用;•VPN技术的原理和安全性。
3.5 数据确权与隐私保护•数据确权的法律和道德要求;•隐私保护的技术和方法;•GDPR和个人信息保护法相关内容介绍。
4. 课程组成和教学安排本课程共分为理论教学和实践教学两个部分。
4.1 理论教学•授课方式:讲授+案例讲解•授课内容:课程目标中提到的各个模块的知识点,重点培养学生的理论基础和解决问题的思维方式。
•授课时间:共10周,每周2学时。
4.2 实践教学实践教学旨在帮助学生将理论知识应用到实际场景中,通过实践操作加深对数据安全的理解和掌握。
•实践教学方式:实验操作+案例分析•实践教学内容:根据教学计划,安排学生进行一系列实验操作,如数据加解密实验、网络安全配置实验等。
•实践教学时间:共8周,每周1学时。
5. 课程评估本课程的评估分为平时评估和期末考试两个部分。
信息安全技术实践作业指导书第1章信息安全基础 (4)1.1 信息安全概念与体系结构 (4)1.1.1 信息安全定义 (4)1.1.2 信息安全体系结构 (4)1.2 常见信息安全威胁与防护措施 (4)1.2.1 常见信息安全威胁 (4)1.2.2 防护措施 (4)第2章密码学基础 (5)2.1 对称加密算法 (5)2.1.1 常见对称加密算法 (5)2.1.2 对称加密算法的应用 (5)2.2 非对称加密算法 (5)2.2.1 常见非对称加密算法 (5)2.2.2 非对称加密算法的应用 (6)2.3 哈希算法与数字签名 (6)2.3.1 哈希算法 (6)2.3.1.1 常见哈希算法 (6)2.3.2 数字签名 (6)2.3.2.1 数字签名的实现过程 (6)2.3.3 数字签名的作用 (6)第3章认证与访问控制 (6)3.1 认证技术 (6)3.1.1 生物认证 (6)3.1.2 密码认证 (7)3.1.3 令牌认证 (7)3.1.4 双因素认证 (7)3.2 访问控制模型 (7)3.2.1 自主访问控制模型 (7)3.2.2 强制访问控制模型 (7)3.2.3 基于角色的访问控制模型 (7)3.2.4 基于属性的访问控制模型 (7)3.3 身份认证与权限管理 (7)3.3.1 身份认证 (7)3.3.2 权限管理 (7)3.3.3 访问控制策略 (8)第4章网络安全协议 (8)4.1 SSL/TLS协议 (8)4.1.1 SSL/TLS协议原理 (8)4.1.2 SSL/TLS协议功能 (8)4.1.3 SSL/TLS协议应用 (8)4.2 IPsec协议 (8)4.2.2 IPsec协议工作原理 (9)4.2.3 IPsec协议应用 (9)4.3 无线网络安全协议 (9)4.3.1 无线网络安全协议原理 (9)4.3.2 无线网络安全协议关键技术 (9)4.3.3 无线网络安全协议应用 (9)第5章网络攻击与防范 (9)5.1 网络扫描与枚举 (9)5.1.1 网络扫描技术 (9)5.1.2 枚举技术 (10)5.2 漏洞利用与攻击方法 (10)5.2.1 漏洞利用概述 (10)5.2.2 攻击方法 (10)5.3 防火墙与入侵检测系统 (11)5.3.1 防火墙技术 (11)5.3.2 入侵检测系统(IDS) (11)第6章恶意代码与防护 (11)6.1 计算机病毒 (11)6.1.1 病毒的定义与特征 (11)6.1.2 病毒的分类 (12)6.1.3 病毒的传播与感染 (12)6.1.4 病毒的防护措施 (12)6.2 木马与后门 (12)6.2.1 木马的定义与特征 (12)6.2.2 木马的分类 (12)6.2.3 木马的传播与感染 (12)6.2.4 木马的防护措施 (12)6.3 蠕虫与僵尸网络 (12)6.3.1 蠕虫的定义与特征 (13)6.3.2 蠕虫的传播与感染 (13)6.3.3 僵尸网络的定义与特征 (13)6.3.4 蠕虫与僵尸网络的防护措施 (13)第7章应用层安全 (13)7.1 Web安全 (13)7.1.1 基本概念 (13)7.1.2 常见Web攻击类型 (13)7.1.3 Web安全防范措施 (13)7.2 数据库安全 (14)7.2.1 数据库安全概述 (14)7.2.2 数据库安全威胁 (14)7.2.3 数据库安全防范措施 (14)7.3 邮件安全与防护 (14)7.3.1 邮件安全概述 (14)7.3.3 邮件安全防护措施 (14)第8章系统安全 (15)8.1 操作系统安全 (15)8.1.1 操作系统安全概述 (15)8.1.2 操作系统安全机制 (15)8.1.3 操作系统安全实践 (15)8.2 安全配置与基线加固 (15)8.2.1 安全配置概述 (15)8.2.2 安全配置实践 (15)8.2.3 基线加固概述 (15)8.2.4 基线加固实践 (15)8.3 虚拟化与云安全 (15)8.3.1 虚拟化安全概述 (16)8.3.2 虚拟化安全实践 (16)8.3.3 云安全概述 (16)8.3.4 云安全实践 (16)第9章物理安全与应急响应 (16)9.1 物理安全设施 (16)9.1.1 安全区域规划 (16)9.1.2 机房设施安全 (16)9.1.3 网络设备安全 (16)9.2 安全审计与监控 (16)9.2.1 安全审计 (16)9.2.2 安全监控 (16)9.2.3 安全审计与监控的协同作用 (17)9.3 应急响应与处理 (17)9.3.1 应急响应计划 (17)9.3.2 应急响应团队 (17)9.3.3 信息安全事件处理 (17)9.3.4 事后总结与改进 (17)第10章信息安全管理体系 (17)10.1 信息安全策略与法律法规 (17)10.1.1 信息安全策略概述 (17)10.1.2 信息安全策略的制定与实施 (17)10.1.3 我国信息安全法律法规体系 (17)10.1.4 企业信息安全法律法规遵循 (17)10.2 信息安全风险评估与管理 (17)10.2.1 信息安全风险评估概述 (18)10.2.2 信息安全风险评估方法 (18)10.2.3 信息安全风险评估流程 (18)10.2.4 信息安全风险管理策略与措施 (18)10.3 信息安全培训与意识提升 (18)10.3.1 信息安全培训的意义与目标 (18)10.3.2 信息安全培训内容与方法 (18)10.3.3 信息安全意识提升策略 (18)10.3.4 信息安全培训的实施与评估 (18)第1章信息安全基础1.1 信息安全概念与体系结构1.1.1 信息安全定义信息安全是指保护信息资产,保证信息的保密性、完整性和可用性,避免由于非法访问、泄露、篡改、破坏等造成的信息丢失、损害和不可用的一系列措施和过程。
数据安全课程设计指导书引言数据安全是信息安全的重要组成部分,它关注的是如何保护数据的机密性、完整性和可用性。
在当前数字化时代,数据安全问题日益突出,不少组织和个人都面临着数据泄露、数据损坏以及数据被篡改等风险。
因此,开设数据安全课程对于培养学生的数据安全意识和技能至关重要。
本文档将为你提供一份数据安全课程设计指导书,帮助你制定一门富有实践性的数据安全课程。
课程目标•了解数据安全的基本概念及其重要性;•掌握数据安全的常见威胁和攻击方式;•学习并理解数据加密和解密的原理;•掌握常见的数据安全防护措施;•能够识别和应对数据安全事件。
课程大纲1. 数据安全基础概念•数据安全的定义与重要性•数据安全的三个基本要素:机密性、完整性和可用性•数据安全的威胁与风险2. 数据安全威胁与攻击方式•常见的数据安全威胁:数据泄露、数据损坏、数据被篡改等•常见的数据安全攻击方式:网络攻击、社会工程、恶意软件等3. 数据加密与解密•对称加密与非对称加密的基本原理•常见的加密算法及其应用•数字证书与公钥基础设施 (PKI) 的基本概念4. 数据安全防护措施•访问控制与身份验证•网络安全措施:防火墙、入侵检测系统 (IDS) 等•数据备份与恢复•安全漏洞管理与修复5. 数据安全事件应急响应•数据安全事件分类与级别•数据安全事件应急响应的基本流程•数据安全事件调查与取证教学方法与评价方式为了增强课程的实践性和互动性,建议采用以下教学方法:1.讲授与案例分析结合:教师通过讲授基础理论知识,引导学生分析和解决实际的数据安全问题;2.实践性任务:设计一些涉及数据安全的实践性任务,让学生能够运用所学知识实际操作,并分析结果;3.课堂讨论与互动:鼓励学生在课堂上提问、回答问题,促进思维碰撞和知识交流;4.定期小测与作业:设计一些小测验和作业,用于检验学生对所学知识的掌握程度;5.课程项目:根据学生的实际情况和特长,组织学生开展课程项目,提高实践能力和团队合作精神。
《计算机网络安全》实训(验)指导书课程编号:适用专业:计网/软件技术专业学时数(含课下学时):48 执笔人:谢品章编写日期:2013年9月概述《计算机网络安全》是计算机网络技术专业的核心课程。
通过《计算机网络安全》课程的学习,学生应掌握有关网络安全基本思想、掌握网络安全基本的技能技术。
实验实训的基本要求是:1、严格按要求使用计算机等相关实验设备;2、通过实验实训提高动手操作能力;3、通过实验实训加深对理论知识的理解。
实验实训内容:1、了解数据加密技术的应用。
2、学会使用协议分析软件;3、Windows安全模板配置4、PGP加密软件文的使用。
5、路由器模拟防火墙实验实验实训要求:1、能够结合网络实验的操作,学习来理解计算机网络安全的基本理论知识;2、能够熟练进行对数据加密软件,协议分析软件,和系统的的安全设置;实验一数据加密技术一、实验目的编制基本的文本加、解密程序二、实验内容凯撒密码实现、维吉尼亚表加密、DES三、实验要求使用任意高级语言做出给文本文件加、解密的软件.四、实验步骤:参考教科书有关内容,掌握凯撒加密方法,自行设计密钥.编制程序。
密码术可以大致别分为两种:即换位和替代,当然也有两者结合的更复杂的方法。
在换位中字母不变,位置改变;替代中字母改变,位置不变。
将替代密码用于军事用途的第一个文件记载是恺撒著的《高卢记》。
恺撒描述了他如何将密信送到正处在被围困、濒临投降的西塞罗。
其中罗马字母被替换成希腊字母使得敌人根本无法看懂信息。
苏托尼厄斯在公元二世纪写的《恺撒传》中对恺撒用过的其中一种替代密码作了详细的描写。
恺撒只是简单地把信息中的每一个字母用字母表中的该字母后的第三个字母代替。
这种密码替换通常叫做凯撒移位密码,或简单的说,凯撒密码。
凯撒密码是将每一个字母向前推移K位。
如K=3,则它的每一个明文字符都由其右边第三个(模26)字符代换如将字母A换作字母D,将字母B换作字母E。
如有这样一条指令:RETURN TO ROME用恺撒密码加密后就成为:UHWXUA WR URPH如果这份指令被敌方截获,也将不会泄密,因为字面上看不出任何意义。
实验一对称密钥密码加密解密实验实验学时:2学时实验类型:设计实验要求:必修一实验目的1、掌握对称密钥密码体制的基本概念;2、掌握对称密钥密码体制加密/解密的工作原理;3、重点掌握DES密码算法加密/解密的基本原理;4、通过用DES算法对实际的数据进行加密/解密运算来深刻了解DES的运行原理。
二实验内容1、根据DES密码算法原理,用Turbo C2.0或Visual C++6.0设计编写符合DES密码算法思想的加密/解密程序。
三实验环境1、操作系统:Windows9x/NT/2000/XP2、编程软件:Turbo C2.0或Visual C++6.0四实验原理1、DES算法工作的基本原理:DES是基于Feistel密码结构的分组密码,其入口参数有三个:key、data、mode。
其中,key为加密/解密时使用的密钥;data为加密/解密的数据;mode为其工作模式:当模式为加密模式时,明文按照64位进行分组,形成明文分组,此时key用于对数据加密;当模式为解密模式时,key用于对64位的密文分组进行解密,以恢复明文。
2、DES算法共进行16轮迭代操作,每轮中都使用相同的轮函数F,如下:F(Ri-1,Ki)=p_box(S_boxes(Expand(Ri-1) ⊕ Ki))整个算法的流程如图所示:DES加密算法流程图(一)、密钥生成1、生成种子密钥K使用密钥流生成器生成64位(8个字节)的种子密钥K,每个字节的第8位作为奇偶校验位,不参与实际运算中子密钥的生成过程。
2、生成每一轮迭代中使用的子密钥ki。
(1) 根据PC-1置换进行种子密钥K的变换,舍弃64位种子密钥K中的8个奇偶校验位,得到56位的密钥。
(2) 将变换后的密钥分为左右两部分各28位,分别称为C0和D,即PC-1(K)=C 0D0。
(3) 生成16个子密钥ki,1≤i≤16。
(i) 将Ci 、Di循环左移1位或2位,根据i值由“循环左移表”决定循环左移的位数,即计算C i=LS i(C i-1)和D i=LS i(D i-1),其中,LS表示循环左移。
计算机数据安全实验指导书英文名:Computer Data Security开课单位:计算机学院课程编码:203085学分学时:学分:2;总学时:32(含实验10学时)适用对象:计算机专业本科生先修课程:计算机网络,C语言程序设计撰稿人:陈卓编写日期: 2006年3月一、目的与任务“计算机数据安全”属计算机应用专业选修课,主要介绍计算机数据安全的基本概念、基本原理以及主要的网络安全技术开设实验的目的是:一是通过实验来对所学的理论知识加以验证,进一步加深理论知识的理解;二是锻炼学生的实际动手能力、分析问题能力,为将来的开发与应用打下基础。
二、基本要求在实验教学中,主要安排两个方面的实践环节,一是进一步巩固和加深理论教学的实践验证型实验;二是配置与应用方面的实验。
这两方面的实验都要求学生在实验之前作好准备,预习实验步骤,实验中要求积极动手,理论联系实际,实验后要求完成实验报告。
通过实践性教学,使学生加深对理论知识的理解,提高学生的编程能力,提高学生独立分析问题、解决问题的能力,并增强协调能力和创造性思维能力。
三、内容与进度安排该课程配合理论教学开设了如下实验。
共10学时,每个实验2学时。
实验1: DES算法实验。
实验2:RSA 密码实验实验3:RPCDCOM堆栈溢出实验。
实验4:文件审计实验 *实验5:异常流量分析实验 *1、DES算法实验【实验目的】1.掌握DES运算的基本原理2.了解DES运算的实现方法【实验预备知识点】1.DES算法有什么特点?2.DES算法的加解密过程?3.DES有哪些工作模式?各有什么特点?【实验环境】1.本试验需要密码教学实验系统的支持2.操作系统为Windows 2000或者Windows XP【实验要求】1.掌握DES算法的原理及过程2.完成字符串数据的DES加密运算3.完成字符串数据的DES解密运算【注意事项】实验系统只对输入字符的ASCII值进行加密,目前尚不支持中文【实验步骤】1.打开―DES理论学习‖,掌握DES算法的加解密原理;2.打开―DES实例‖,进行字符串的加解密操作;3.选择―链接模式‖为―ECB‖或―CBC‖;4.选择―工作模式‖为―加密‖;5.在明文编辑框内输入待加密的字符串,若不足8个字节的倍数,系统会自动填充;6.在密钥编辑框内输入密钥,必须为8个字节;7.点击―开始‖按钮,进行加密操作,密钥扩展的结果将显示在列表框中,密文将显示在密文编辑框中;8.选择―解密‖工作模式,点击―开始‖按钮,密文将被解密,显示在明文编辑框中,填充的字符将被自动除去;9.点击―清空‖按钮即可进行下次实验。
图1 DES算法实验界面【实验思考题】在DES算法中有哪些是弱密钥?哪些是半弱密钥?2、RSA算法实验【实验目的】1.了解RSA算法的基本原理2.掌握RSA算法的实现方法【实验预备知识点】1. RSA密码系统所基于的数学难题是什么?2. RSA密码系统可以取代DES、3DES等公钥密码系统吗?【实验环境】1. 本试验需要密码教学演示系统的支持2. 操作系统为Windows 2000及Windows XP【实验内容及基本要求】◆自行以2位小素数为p,q,3为公钥e,构造一个小的RSA系统,对―1、2、3、4‖这4个字母的ASCII码进行加密,解密◆在密码教学系统中实现RSA运算的大素数、公钥、私钥的生成、明文加解密、分块大小的选择◆了解在不同分块大小的情况下,RSA系统的密文长度也会有所变化◆了解在不同参数的情况下,RSA系统的性能变化【实验步骤】1.熟悉RSA运算原理;2.打开―非对称加密算法‖中的―加密‖选项下的―RSA‖,选择―RSA实例‖;3.选择密钥长度为128、256或者512比特;4.点击―GetN‖按钮,得到一个由两个大素数的积构成的大整数;5.点击―GetDE‖按钮,得到公钥和私钥;6.在明文对话框中输入需要加密的明文字符串;7.点击―获得明文ASCII‖按钮可得到明文的ASCII码;8.输入分块长度,或者通过点击―推荐值‖按钮直接获得;9.点击―加密‖按钮可获得加密后的密文,点击―解密‖按钮可获得解密后的明文;10.反复使用RSA实例,通过输入不同大小的分片,了解密文长度的变化;11.反复使用RSA实例,通过输入不同安全参数,了解RSA密码系统的性能与参数关系。
图5 RSA算法实验【实验思考题】1. 对于128bit的AES算法,需要多少安全参数为多少的RSA系统与之相匹配?2. RSA系统的安全参数是什么意思?安全参数为1024bit的RSA系统,其模数n大约为多少bit?3、RPCDCOM堆栈溢出实验【实验目的】1.了解堆栈缓冲区溢出的基本原理及其危害。
2.体会远程缓冲区溢出的常见攻击手法。
3.树立安全编程的思想,从根本上杜绝缓冲区溢出的发生。
【实验环境】1.网络:局域网环境。
2.远程计算机◇操作系统:Windows 2000 Server◇补丁:\◇组件:\◇服务:\3.本地计算机◇操作系统:Windows 2000主机◇软件:DCOM RPC Exploit – GUI v2。
【实验原理】一.缓冲区溢出系统基础计算机程序就是计算机要执行的指令的集合。
所有的程序都是用某种计算机语言来编写的。
程序运行时,需要先经过编译、链接生成可执行的计算机能识别的机器指令,然后再加载到内存空间运行。
计算机程序在内存空间的影像,可分为3个部分:文本(代码)区、数据区和堆栈区,如图4-1所示。
其中:∙文本区用于保存程序执行的指令和只读数据,这些指令指出程序运行的流程。
∙数据区包括未初始化数据区(BSS)和已初始化数据区,前者用于存储静态分配的变量(static类型),后者用于存储程序的初始化数据。
∙堆栈区用于实现程序流程的改变,包括堆和栈两个部分。
其中,堆用于存储程序运行过程中动态分配的数据块(即调用malloc或calloc函数分配的内存);栈用于存储过程调用和函数调用所传递的参数、返回地址、局部变量等。
图1 程序在内存的基本影像在传统的程序设计中,通常借助过程调用和函数调用,改变程序运行的流程。
每次进行过程和函数调用时,都要先将返回地址信息压入到堆栈中。
过程和函数调用返回时,读取堆栈数据,获取返回地址,将程序的控制权交还给原来的程序,将程序重新定向到原来的流程中。
在堆栈中,使用一种称为―栈帧‖ 的数据结构保存返回地址信息。
栈帧包含下列信息:传递给函数的参数、函数返回后下一条指令的地址、函数中分配的局部变量、恢复前一个栈帧所需的数据(基地址寄存器值)。
函数调用前,将栈帧内容压入栈中;函数调用后,将栈帧内容弹出,获取执行的下一条指令的地址。
函数在栈中的内存影像如图4-2所示。
图4-2 函数在栈中的影像由图4-2可以看出,栈是从内存高地址向低地址增长的。
也就是说,如果将数据压入,栈顶地址将减小;如果将数据弹出,栈顶地址将增加。
在函数的栈帧中,函数局部变量占用的内存空间非常重要,通常,在函数中会使用类似―charbuffer[20]‖之类的C语言语句定义一个缓冲区。
向缓冲区填充数据时,首先填充低地址,然后填充高地址,其增长方向与栈的增长方向相反。
如果向缓冲区填充的数据超过缓冲区的大小,那么它将继续向高地址填充数据,很可能覆盖掉―调用函数后的返回地址‖,使得函数返回时,程序的执行顺序发生变化。
缓冲区溢出攻击,就是通过向缓冲区填充过量的数据,覆盖―调用函数后的返回地址‖,使函数的返回地址变成―攻击程序‖的代码地址。
这样,当函数返回时,程序的控制权将转到―攻击代码‖,实现攻击目的。
二. 缓冲区溢出存在的条件缓冲区溢出的实质是存放在缓冲区中的数据越界,覆盖了函数的返回地址。
但是,为什么会产生这种情况呢?是不是所有的程序都会发生缓冲区溢出呢?缓冲区溢出的发生必须具备若干条件,包括:∙使用非类型安全的语言,如C/C++。
缓冲区溢出主要出现在由C和C++编写的程序中,因为这些语言不执行数组边界检查和类型安全检查。
如果开发人员编写程序时没有检查数组是否越界,就很有可能会发生缓冲区溢出。
此外,C/C++允许开发人员创建非常接近硬件运行的程序,允许直接访问内存和计算机寄存器,从而可以方便地改变程序的流程。
其他语言编写的程序也会发生缓冲区溢出,但相对来讲就比较少了。
一般发生缓冲区溢出,都是由于运行时环境的错误,而不是由开发人员造成的。
∙以不安全的方式访问或复制缓冲区。
编写程序时没有考虑目标缓冲区的大小问题,以至当应用程序从用户(或攻击者)那里读取数据,将数据复制到应用程序所维护的目标缓冲区时超出该缓冲区的大小,造成缓冲区溢出。
∙编译器将缓冲区放在内存中关键数据结构旁边或邻近的位置。
程序编辑完毕,首先要先进行编译,将程序转换成机器可识别的机器指令,然后将程序加载到内存空间中运行。
通常,编译器将缓冲区放在―令人感兴趣的‖数据结构旁边,如C++ V 表、异常处理程序地址、函数指针等。
这样,当缓冲区溢出时,就会改变这些地址信息,继而改变程序的流程。
例如,某个函数的缓冲区紧邻堆栈(堆栈中存放着函数的返回地址,见图2),如果攻击者可以使该缓冲区发生溢出,就可以覆盖函数的返回地址,当函数返回时,程序流程就会转到攻击者定义的地址或者攻击程序的地址。
三.缓冲区溢出的攻击方式缓冲区溢出攻击的目的在于扰乱具有某些特权运行的程序的功能,使得攻击者取得程序的控制权。
如果该程序具有足够的权限,那么整个主机就被控制了。
但是攻击者如何才能让程序运行攻击程序呢?要达到该目的,攻击者必须实现以下两个目标:1.在程序的地址空间里安排适当的代码。
实现该目标的方法有:植入法和利用已经存在的代码。
∙植入法所谓植入法,就是攻击者向被攻击的程序输入一个字符串,该字符串里包含需要运行的指令,程序会将该字符串放到缓冲区中。
按照缓冲区的位置不同,可以将缓冲区溢出攻击分为:栈溢出(Stack Overflow)、堆溢出(Heap Overflow)和BSS(静态数据区)溢出。
∙利用已存在的代码如果攻击者需要执行的代码已经存在于被攻击程序中,则只需对代码传递一些参数,使程序实现所需的目的。
例如,攻击代码要求执行―exec (―/bin/sh‖)‖,而在libc库中的代码执行―exec (arg)‖,其中arg是一个指向一个字符串的指针参数,那么攻击者只要把传入的参数指针改向指向―/bin/sh‖。
2.适当的初始化寄存器和内存,让程序跳转到攻击者安排的地址空间执行。
实现该目标的基本方法是溢出一个没有边界检查或者其它弱点的缓冲区。
通过溢出一个缓冲区,攻击者可以用暴力的方法改写相邻的程序空间而直接跳过系统的检查。
常见的改变程序指针的方法主要有:∙利用活动纪录,即栈帧通过溢出堆栈中的局部变量,使返回地址指向攻击代码,这样,函数调用结束时,程序就跳转到攻击者设定的地址。