网络信息安全综合实验
任 务 书
一、 目的与要求
根据实验内容的要求和实验安排,要求学生在掌握网络信息安全基本知识的基础上,能够设计出相应的软件,并且熟练地运用各种网络信息安全技术和手段,发现并解决各类安全问题,维护网络及操作系统的安全。
二、 主要内容
实验一 加密认证通信系统实现
设计实现一个通信系统,双方可以通过消息和文件通信,用户可选择一种加密算法和认证算法,对消息和文件进行加密通信和完整性验证。(要实现认证和加密,工具和语言不限,可以直接调用现有模块,认证和加密不限)
、
实验二 综合扫描及安全评估
利用常见的一些扫描工具可以检测本系统及其它系统是否存在漏洞等安全隐患,给出全面而完善的评估报告,帮助管理员发现存在的问题,进而采取有力措施予以弥补,从而提高系统的安全性能。
实验三 网络攻防技术
矛与盾的关系告诉我们,在研究网络安全技术时,只着眼于安全防范技术是远远不够的,知己知彼方能百战不殆,因此,很有必要同时研究攻击与防范技术,才能更有效地解决各种威胁。
实验四 Windows系统安全配置方案
作为网络节点,操作系统安全成为网络信息安全首先应予考虑的事务,然而人们往往忽视了OS的安全性。其实,OS的安全不只体现在密码口令上,这仅仅是最基本的一个方面。除此之外,服务、端口、共享资源以及各种应用都很有可能存在着安全隐患,因此,应采取相应措施设置完善的本地安全策略,并使用防病毒软件、防火墙软件甚至入侵检测软件来加强系统的安全。
其中实验一要求编程实现,可直接调用相关功能函数完成。实验二至实验四可在机房的网络信息安全综合实验系统上完成。
,
三、 进度计划
序号 设计(实验)内容 ,完成时间 备注 1 接受任务,查阅文献,开始实现密码第一天 算法和认证算法 2 :完成加密认证通信系统 上午完成综合扫描及安全评估实验,下午进行网络攻防实验 上午完成网络攻防实验,下午进行系统安全配置实验 第二至七天 第八天 3 4 * 第九天 5 撰写实验报告并验收 第十天
四、 实验成果要求
1. 、
2.
要求程序能正常运行,并实现任务书要求功能。
3. 完成实验报告,要求格式规范,内容具体而翔实,应体现自身所作的工作,注重对设计思
路的归纳和对问题解决过程的总结。
五、 考核方式
平时成绩+程序验收+实验报告。
》
学生姓名:
指导教师:
2016 年 6 月 13 日
<
|
;
>
实验报告
题 目: 网络信息安全综合实验 院 系: 计算机系 班 级:
学 号: 学生姓名:
@
指导教师:
成 绩:实验日期: 2016 年 6 月
一、 目的与要求
根据实验内容的要求和实验安排,要求学生在掌握网络信息安全基本知识的基础上,能够设计出相应的软件,并且熟练地运用各种网络信息安全技术和手段,发现并解决各类安全问题,维护网络及操作系统的安全。
二、 实验内容
设计实现一个通信系统,双方可以通过消息和文件通信,用户可选择一种加密算法和认证算法,对消息和文件进行加密通信和完整性验证。(要实现认证和加密,工具和语言不限,可以直接调用现有模块,认证和加密不限)
三、实验结果
实验一:本通信系统为用C#语言编写的P2P方式通信的系统,其具体功能如下: 1、识别本机IP地址并赋值到文本框中,产生一个随机数作为端口号,端口号范围限制在1000到65535之间。
2、通过运用网络编程的知识尝试用产生的IP与端口号进行监听。
图1 发送方界面
图2 接收方界面
3、设置刷新区域,定时刷新好友在线,可以设置刷新间隔,启动和停止刷新。这里可以通过拖拽VS里自带的控件“timersecond”,实现计时。
4、发送消息。消息的传送是具有加密与认证的。
加密:考虑到DES的安全性问题,加密消息是采用AES方式加密的,本系统采用的是C#封装好的AES程序,调用接口,实现对明文的加密。解密同理。 认证:认证是将明文哈希散列后采用RSA算法对其进行签名,再用公钥加密进行认证的,其中哈希散列采用的是SHA1方式。下图为加密与认证的具体流程。
假设A传递信息B[1].AES产生密钥K[2].加密:EkpuB(K)||EAES(K,M)(M表示明文,kpuB表示B的公钥)[3].认证:EkpuB[SigkprA(HashSHA1(M))](kprA表示A的私钥,Sig表示用RSA算法签名)[4].将加密与认证信息连接发送图3 加密与认证流程
图4 发送方可显示明文与密文 图5接收方解密出明文
5、可以发送文件。通过获取文本框中的文件地址,建立文件流,向接收端发送文件。 接收端进行文件监听,接收文件,与发送文件编写过程相似,只是把“写”换成了“读”文件。VS里自带的控件“saveFileDialog”可以帮助用户提示选择保存文件的位置。
图6 输入文件位置
图7 询问是否接受文件
图8 接收与发送文件成功
实验二:认识性实验
本实验为认识练习信息安全实验平台的部分实验。 SuperScan端口扫描实验
扫描结果如下图:
图9:扫描结果
Xscan信息探测实验
图10:漏洞扫描普通信息与漏洞信息
四、实验感悟
通过做本次网络安全实验,使我对数据传送的加密与认证流程有了更加深刻的理解,同时知道了数据或者文件在网络中传输是通过byte流的方式传输的,因此程序里多次涉及到了string与byte[]之间的转换;认证与加密部分连接起来发送给接收方的时候,会用到字符串分割的问题,本程序采用split ( ) 函数,识别空格,完成数据收发;更加安全的认证方式还有加上发送方的ID以及加上时间戳等,以防止重放攻击,本程序只是简单的实现了认证,还有待完善。
相对来说,本实验还是有一定难度的,两周的时间查阅了很多资料,阅读了很多相关书籍,对我的编程能力以及对网络安全的认识都有了很大的提高。最后感谢老师的悉心指导,令我受益匪浅。
五、部分代码
switch (messageTypeString) {
case \"connect\":
if (myfriendIndex == -1) {
ListViewItem myFriendItem = new ListViewItem( new string[] { ipString, portString, \"是\" }); } \"消息\
\"[{0}:{1}]说:{2}\
ipString, portString, cmd)); break; case \"check\":
if (myfriendIndex == -1) {
ListViewItem myFriendItem = new ListViewItem( new string[] { ipString, portString, \"是\" }); } break; case \"message\":
\"[{0}:{1}]说:{2}\ break; case \"file\":
= \"所有格式|*.*\";
DialogResult dResult = (\"您是否要接受\" + textBoxLocalIp + \"发送给您文件:\\r\\n\ if (dResult == if () == {
m_strFileSavePath = ;
SendMessage(ipString, portString, \"ok\同意接受文件\"); threadFileListen = new Thread(new ThreadStart(FileListen)); (); = true; } else return; else return; break; case \"ok\":
threadSendFile = new Thread(new ThreadStart(SendFile)); (); = true;
private void SendFile() {
TcpClient TCPSend = new TcpClient(); //建立TCP客户端 try {
(IP, 2626); //指定IP 端口进行连接 NetworkStream stream = (); //获取流
byte[] byteBuffer = new byte[1024]; //定义缓冲区 }
,
//循环读文件 int nRemain;
while ((nRemain = (byteBuffer, 0, 1024)) != 0) {
//向接受端发送文件流 (byteBuffer, 0, nRemain); //刷新流 (); }
(); //关闭流 (); ();
(\"文件发送完毕!\消息\ (); }
catch (Exception ex) {
+ \"SendFile\"); return; }
因篇幅问题不能全部显示,请点此查看更多更全内容