苏州科技学院
计算机科学与技术
实验报告
(实验)课程名称计算机网络安全技术
苏州科技学院
实验报告
学生姓名:杨刘涛学号:1220126117 指导教师:陶滔实验地点:计算机学院大楼东309 实验时间:2015-03-12
一、实验室名称:软件实验室
二、实验项目名称:注册表安全机制实验
三、实验学时:4学时
目录
一.实验目的 (1)
二.实验设备 (1)
三.相关数据整理 .......................................... 错误!未定义书签。四.实验过程 (3)
五.运行结果 (7)
六.其他代码块 (8)
实验一注册表安全实验
一.实验目的
1.了解注册表在系统安全中的地位和作用
2.了解几个与系统安全密切相关的重要注册表键值
3.掌握使用Windows API访问注册表的编程方法。
二.实验设备
1.硬件:PC机
2.操作系统: windows 8.1平台
3.开发环境: jdk1.7
4.开发工具: MyEclipse
三.相关数据收集
1、实验必备知识
防止注册表攻击的方法有许多,其中一种就是禁止用户运行系统提供的两个注册表工具Regedt32.exe和Regedit.exe。
2、注册表
1
注册表既是Windows的重要组成部分,它存放了Windows中所有应用程序和系统配置信息。在Windows功能和应用软件被执行前,首先从注册表中取出参数,根据这些参数决定操作运行。
黑客通过对被攻击方注册表的的访问可以获取大量被攻击方系统信息,甚至直接击毁系统。
Windows 2000注册表包括五个键值,分别是:
● HETY_LOCAL_MACHINE
●HKEY_CLASSES_ROOT
●HKEY_CURRENT_CONFIG
●HKEY_USERS
●HKEY_CURRENT_USER
●HETY_LOCAL_MACHINE根键中存放控制系统和软件设置的信息。
●HKEY_CLASSES_ROOT根键中记录Windows操作系统中所有数据文
件的信息。
●HKEY_CURRENT_CONFIG根键中存放当前配置文件的所有信息。●HKEY_USERS根键存放的上默认用户(.DEFAULT)、当前登录用户
与软件的信息。
●HKEY_CURRENT_USER根键中存放的是与
HKEY_USERS\..DEFAULT分支中相同的信息。
3、注册表的访问方法
(1)通过在命令行状态下运行regedit.exe可以手工修改Windows注册表的键值。
(2)通过Windows API编程访问注册表。
2
4、注册表中常用的Windows API 函数
Windows API 函数提供了访问Windows 底层、控制Windows功能的操作。Windows中提供了数十个有关注册表的API函数,其中最常
用的就是创建、打开、查询和删除。使用Windows注册表函数,需要
括 winreg.h头文件。
四.实验方法步骤
1.Java操作注册表的方法
(1)使用JDK提供的Preferences类
如果不关心存储库的细节,只是要找一个存放数据的地方,那么Preferences API很合适
(2)用JRegistry来操作注册表
在工程中添加JRegistryKey.jar包,在JDK中添加JRegistry.dll文件。该包中有两个类:RegistryKey和RegistryValue。其中RegistryKey是注册表键的java表示,它提供了create()和delete()方法创建和删除key,枚举子键和值,set和get键的值等
本次实验选用的是方法(2),可在自定义的位置添加注册表项
2.具体的方法
(1)regCreateKeyEx()方法向注册表中添加注册表项,添加的项名称和值分
3
别为
“MyChangePassword”"1220126117"
“ChangePassword”“03”。数据的类型都是REG_SZ
REG_SZ,是一种字符串类型。REG_SZ型注册表值项的名称是长度固定的文本字符串,最大长度不能超过255个字符,它的数据不限长度。通过Registry workshop可以将字符串值的名称更改为大于255个字符的长度,但该值将在RegEdit中不可见。
public void regCreateKeyEx(){
try {
RegistryKey rk = Registry.HKEY_CURRENT_USER
.openSubKey("Software\\Microsoft");
RegistryKey create = rk.createSubKey("Leason","");
create.setValue(new
RegStringValue(create,"MyPasswordChange","1220126117));
create.setValue(new
RegStringValue(create,"PasswordChange","03"));
} catch (Exception e) {
e.printStackTrace();
}
}
4
(2)regFlushKey()方法修改“PasswordChange”的值,调用RegDWordValue 类创建数据类型为“REG_DWORD”的项覆盖已写的“PasswordChange”
public void regFlushKey(int i){
try {
RegistryKey rk = Registry.HKEY_CURRENT_USER
.openSubKey("Software\\Microsoft");
RegistryKey flush = rk.createSubKey("Leason","");
flush.setValue(new
RegDWordValue(flush,"PasswordChange",RegistryValue.REG_DWORD,i ));
flush.closeKey();
} catch (RegistryException e) {
e.printStackTrace();}
}
(3)使用wsprint()方法获取未修改时两个项的值,将value的类型强转为RegStringValue,再调用getData()方法获取数据。
使用Wsprint1()方法获取修改后的项的值
5
public void wsprint(){
try{
RegistryKey rk = Registry.HKEY_CURRENT_USER
.openSubKey("Software\\Microsoft");
RegistryKey outprint = rk.openSubKey("Leason");
value1=(((RegStringValue)outprint.getValue("MyPasswordChang e")).getData());
value2=(((RegStringValue)outprint.getValue("PasswordChange"
)).getData());
}catch(Exception e){
e.toString();
}
}
public void wsprint1(){
try{
RegistryKey rk = Registry.HKEY_CURRENT_USER
.openSubKey("Software\\Microsoft");
RegistryKey outprint = rk.openSubKey("System");
value1=(((RegStringValue)outprint.getValue("MyPasswordChang e")).getData());
value3=(((RegDWordValue)outprint.getValue("PasswordChange") ).getData());
}catch(Exception e){
e.toString();
6
}
}
五.运行界面
修改前的注册表
7
修改后的注册表
六.其余代码
import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
8
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTable;
public class Exp_Frame extends JFrame implements ActionListener{ JTable table;
Object table[][];
Object lie[]={"名称","类型","值"};
JPanel pCenter;
Exp1 exp;
int i;
public Exp_Frame(){
setBounds(60, 120, 432,196);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pCenter=new JPanel();
setContentPane(pCenter);
setJMenuBar(createBar());
setVisible(true);
table=new Object[2][3];
exp=new Exp1();
}
private JPanel createPane(){
9
JPanel panel=new JPanel();
table=new JTable(table,lie);
panel.add(table);
setVisible(true);
return panel;
}
private JMenuBar createBar(){
JMenuBar bar=new JMenuBar();
JButton confirm=new JButton("确认添加");
confirm.addActionListener(this);
JButton print=new JButton("显示");
print.addActionListener(this);
JButton change=new JButton("修改值");
change.addActionListener(this);
bar.add(confirm);
bar.add(print);
bar.add(change);
return bar;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Exp_Frame();
10
}
private void setTable(){
table[0][0]="DisableChangePassword";
table[1][0]="dword";
exp.wsprint();
table[0][2]=exp.value1;
if(i==1){
table[1][2]=exp.value2;
}
if(i==2){
exp.wsprint1();
table[1][2]=exp.value3;
}
}
}
@Override
public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub
if(e.getActionCommand()=="确认添加"){
i=1;
exp.regCreateKeyEx();
11
JOptionPane.showMessageDialog(null, "添加成功!");
}
if(e.getActionCommand()=="显示"){
if(i==0){
JOptionPane.showMessageDialog(null,"未输入");
}
else {
setTable();
pCenter.add(createPane());
pCenter.validate();
}
}
if(e.getActionCommand()=="改值"){
i=2;
exp.regFlushKey(1);
pCenter.removeAll();
JOptionPane.showMessageDialog(null, "修改成功!");
}
}
12
信息安全概论课程报告 一、课程内容简介 1.“国内外信息安全研究现状与发展趋势” (1)“信息安全”的定义 “信息安全”在当前可被理解为在既定的安全要求的条件下,信息系统抵御意外事件或恶意行为的能力。而信息安全事件则会危及信息系统提供的服务的机密性、完整性、可用性、非否认性和可控性。 (2)“信息安全”发展的四个阶段 信息安全的发展在历史发展的进程中可被分为四个阶段: 首先,是通信安全发展时期(从有人类以来~60年代中期)。在这个时期,人们主要关注的是“机密性”问题,而密码学(密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。)是解决“机密性”的核心技术,因此在这个时期,密码学得到了非常好的发展。而由于Shannon在1949年发表的论文中为对称密码学建立了理论基础,使得密码学从非科学发展成了一门科学。 然后,是计算机安全发展时期(60年代中期~80年代中期)。在1965年,美国率先提出了计算机安全(compusec)这一概念,目前国际标准化委员会的定义是“为数据处理系统和采取的技术的和管理的安全保护,保护计算机硬件、软件、数据不因偶然的或恶意的原因而遭到破坏、更改、显露。”美国国防部国家计算机安全中心的定义是“要讨论计算机安全首先必须讨论对安全需求的陈述。” 在这一时期主要关注的是“机密性、访问控制、认证”方面的问题。同时,密码学得到了快速发展:Diffiee和Hellman在1976年发表的论文《密码编码学新方向》导致了一场密码学革命,再加上1977年美国制定数据加密标准DES,标志着现代密码学的诞生。 另外,80年代的两个标志性特征分别为:计算机安全的标准化工作,计算机在商业环境中得到了应用。 随后,到了信息安全发展时期(80年代中期~90年代中期)。此时的关注点则变成了“机密性、完整性、可用性、可控性、非否认性”。在此阶段,密码学得到空前发展,社会上也涌现出大量的适用安全协议,如互联网密钥交换协议、SET协议等,而安全协议的三大理论(安全多方计算、形式化分析和可证明安全性)取得了突破性的进展。 最后,是信息安全保障发展时期(90年代中期~ )。在这一时期主要关注“预警、保护、检测、响应、恢复、反击”整个过程。目前,人们正从组织管理体系(做顶层设计)、技术与产品体系、标准体系、法规体系、人才培养培训与服务咨询体系和应急处理体系这几个方面致力于建立信息安全保障体系。 (3)危害国家安危的信息安全问题 1.网络及信息系统出现大面积瘫痪。我们都知道,目前我们国家的网民数量非常之多,并且国家的电力系统也由网络控制,一旦网络出现大面积瘫痪,不仅无数人的个人利益受到侵害,国家的安全问题也处于水火之中。 2.网上内容与舆论失控。由目前的情况来看,由于微博等新媒体的出现,网络言论的传播速度与以往不可同日而语,一旦恶意诋毁国家领导人形象、诋毁国家组织形象的言论大肆传播,将对国人价值取向的产生十分恶劣的影响,进而威胁到国家安全。 3.网上信息引发社会危机。 4.有组织的网络犯罪。网络犯罪有隐蔽性强、难追踪这一显着特点,一旦发生有组织的网络犯罪,将会对国民的财产、信息安全和国家的信息安全造成严重威胁。
西安邮电大学 通信与信息工程学院 信息安全基础实验报告 专业班级: 安全1301班 学生姓名: 王方 学号(班内序号): 03133023(23号) 2014 年 6 月 11 日 —————————————————————————— 装 订 线 ———————————————————————————————— 报告份数:
撰写内容提纲: 一、引言 本次实验主要练习了word排版以及visio制图和excel制表,在word排版中主要学习了页眉页脚设置和分栏,visio制图中主要学会了使用不同的形状与图形,excel中则主要练习了图表的绘制以及熟练了其中的一些基本操作。 二、实验内容 1、Excel实验 1、(1)Excle题目 (1)1、在“张名”前插入一个新行“张三 55 70 89 45 ” 2、用公式求出每个学生的“总分”。 (2)1、将“美亚华电器集团”标题所在的那一行(A1:E1)合并为一个单元格。 2、将“年月”这一列的日期格式设为“1997年3月”格式.
(3)1、设置表格的文字格式为水平居中和垂直居中。 2、将标题“推销人员奖金计算表”设置为“黑体、16号字”,并于数据区上方单元格合并居中 3、各职工的奖金数据设置为饼图
(4)1.在数据末列后增加“工龄”字段,计算工龄(工龄计算至2000年。) 2.以“工龄”为主关键字按升序,“姓名”为次关键字按降序进行排序。 3.使用格式刷把表格的记录内容设为灰白相间的显示格式 4.设置表格数据字体颜色为蓝色加粗 5.设置表格数据区外框为红色双十线 (5)1、将“基本工资、聘用补贴、保险基金、年收入等的数据格式设为加“¥”货币格式。 2、计算聘用补贴、保险基金、年收入。 聘用补贴为基本工资*δ,δ值:工人80%、助工80%、工程师150%、高工 250%;保险基金为基本工资的5%(月扣减);年工资中加多一个月的工资。 3、计算基本工资、聘用补贴、保险基金、年收入总和。 4、加标题行“基本年收入情况”,要求黑体、三号,并横贯个数据列“跨列居中”
信息与科学技术学院学生上机实验报告 课程名称:计算机网络安全 开课学期:2015——2016学年 开课班级:2013级网络工程(2)班 教师姓名:孙老师 学生姓名:罗志祥 学生学号:37 实验一、信息收集及扫描工具的使用 【实验目的】 1、掌握利用注册信息和基本命令实现信息收集 2、掌握结构探测的基本方法 3、掌握X-SCAN的使用方法 【实验步骤】 一、获取以及的基本信息 1.利用ping 和nslookup获取IP地址(得到服务器的名称及地址) 2.利用来获取信息 二、使用工具获取到达的结构信息 三、获取局域网内主机IP的资源信息 -a IP 获得主机名;
-a IP 获得所在域以及其他信息; view IP 获得共享资源; a IP 获得所在域以及其他信息; 四、使用X-SCAN扫描局域网内主机IP; 1.设置扫描参数的地址范围; 2.在扫描模块中设置要扫描的项目; 3.设置并发扫描参数; 4.扫描跳过没有响应的主机; 5.设置要扫描的端口级检测端口; 6.开始扫描并查看扫描报告; 实验二、IPC$入侵的防护 【实验目的】 ?掌握IPC$连接的防护手段 ?了解利用IPC$连接进行远程文件操作的方法 ?了解利用IPC$连接入侵主机的方法 【实验步骤】 一:IPC$ 连接的建立与断开 通过IPC$ 连接远程主机的条件是已获得目标主机管理员的账号和密码。 1.单击“开始”-----“运行”,在“运行”对话框中输入“cmd”
1.建立IPC$连接,键入命令 net use 123 / user:administrator 2.映射网络驱动器,使用命令: net use y: 1.映射成功后,打开“我的电脑”,会发现多了一个y盘,该磁盘即为目标主机的C盘 1.在该磁盘中的操作就像对本地磁盘操作一 1.断开连接,键入 net use * /del 命令,断开所有的连接 1.通过命令 net use 可以删除指定目标IP 的IPC$ 连接。 ?建立后门账号 1.编写BAT文件,内容与文件名如下,格式改为:.bat 1.与目标主机建立IPC$连接 2.复制文件到目标主机。(或映射驱动器后直接将放入目标主机的C 盘中) 1.通过计划任务使远程主机执行文件,键入命令:net time ,查看目标主机的时间。 1.如图,目标主机的系统时间为13:4513:52 c:\ ,然后断开IPC$连接。 1.验证账号是否成功建立。等一段时间后,估计远程主机已经执行了文件,通过建立IPC$连接来验证是否成功建立“sysback”账号:建立IPC$连接,键入命令 net use 123 /user:sysback 1.若连接成功,说明管理员账号“sysback”已经成功建立连接。
实验成绩 《信息安全概论》实验报告 实验二PKI实验 专业班级:学号:姓名:完成时间_2016/5/18 一、实验目的 加深对CA认证原理及其结构的理解;掌握在Windows 2003 Server环境下独立根CA 的安装和使用;掌握证书服务的管理;掌握基于Web的SSL连接设置,加深对SSL的理解。 二、实验内容 客户端通过Web页面申请证书,服务器端颁发证书,客户端证书的下载与安装;停止/启动证书服务,CA备份/还原,证书废除,证书吊销列表的创建与查看;为Web服务器申请证书并安装,在Web服务器端配置SSL连接,客户端通过SSL与服务器端建立连接。 三、实验环境和开发工具 1.Windows 2003 操作系统 2.VMware Workstation 四、实验步骤和结果 CA分为两大类,企业CA和独立CA; 企业CA的主要特征如下: 1.企业CA安装时需要AD(活动目录服务支持),即计算机在活动目录中才可以。 2.当安装企业根时,对于域中的所用计算机,它都将会自动添加到受信任的根证书颁 发机构的证书存储区域; 3.必须是域管理员或对AD有写权限的管理员,才能安装企业根CA; 独立CA主要以下特征:
1.CA安装时不需要AD(活动目录服务)。 2.任何情况下,发送到独立CA的所有证书申请都被设置为挂起状态,需要管理员受 到颁发。这完全出于安全性的考虑,因为证书申请者的凭证还没有被独立CA验证; AD(活动目录)环境下安装证书服务(企业根CA)的具体步骤如下: 首先要安装IIS ,这样才可以提供证书在线申请。 1)从“控制面板”,双击“添加/删除程序”,单击“添加/删除Windows组件”,选中“证 书服务”,单击“下一步”。如图4-1所示。 图4-1添加证书服务 弹出警告信息“计算机名和域成员身份都不能更改”,选择“是” 2)选中“企业根CA”,并选中“用户自定义设置生成密钥对和CA证书”,单击“下 一步”。如图4-2所示。
第二章: 密码系统 一个密码系统可以用以下数学符号描述: S = {P,C,K,E,D} P = 明文空间C = 密文空间K = 密钥空间E = 加密算法 D = 解密算法 ?当给定密钥k∈K时,加解密算法分别记作Ek、Dk,密码系统表示为 Sk = {P,C,k,Ek ,Dk} C = Ek (P) P = Dk (C)= Dk (Ek (P)) 第三章:信息认证技术及应用 三、数字签名技术 数字签名概念 在计算机网络应用过程中,有时不要求电子文档的保密性,但必须要求电子文档来源的真实性。数字签名(digital signature)是指利用数学方法及密码算法对电子文档进行防伪造或防篡改处理的技术。就象日常工作中在纸介质的文件上进行签名或按手印一样,它证明了纸介质上的内容是签名人认可过的,可以防伪造或篡改。随着计算机网络的迅速发展,特别是电子商务、电子政务、电子邮件的兴起,网络上各种电子文档交换的数量越来越多,电子文档的真实性显得非常重要。数字签名技术能有效地解决这一问题。 数字签名的功能:可以解决否认、伪造、篡改及冒充等问题 发送者事后不能否认发送的报文签名 接收者能够核实发送者发送的报文签名、接收者不能伪造发送者的报文签名、接收者不能对发送者的报文进行部分篡改 网络中的某一用户不能冒充另一用户作为发送 者或接收者。 RSA签名: 用RSA实现数字签名的方法 要签名的报文输入散列函数,输出一个定长的安全散列码,再用签名者的私有密钥对这个散列码进行加密就形成签名,然后将签名附在报文后。 验证者根据报文产生一个散列码,同时使用签名者的公开密钥对签名进行解密。如果计算得 出的散列码与解密后的签名匹配那么签名就是有效的。因为只有签名者知道私有密钥,因此只有签名者才能产生有效的签名。