2020-12-19

网络安全期末论文

论文要求:
撰写一篇论文,结合网络安全课程学习的内容完成以下内容:
1、利用sniffer工具,分析IP头的结构。(请附上截图)
2、利用sniffer工具,分析TCP头的结构,并分析TCP的三次握手过程。(请附上截图)
3、实现一个或几个加解密程序。(详见《密码学及应用实验部分》,实验一)(附截图)
4、已知RSA算法中,素数p=5,q=7,模数n=35,公钥e=5,明文为bed,对明文进行加解密,使用手工完成RSA公开秘钥密码体制算法加密运算。字母数字映射表如下:

可以参考, https://www.cnblogs.com/jiftle/p/7903762.html
但并不保证网页内容完全正确,请自行判断

5、安装一款杀毒软件,分析该软件从哪些方面对计算机进行防护,这些功能与HIDS系统的功能有哪些异同?
6、(1)结合一到两个最有体会或印象深刻的知识点(可以任选章节或具体算法协议等)谈谈自己对网络安全的学习心得;
(2)从网络安全的整体视角谈谈自己对网络安全的的理解和认识。

网络安全期末论文

摘要:在人们日常生活及赖以生存的世界中,信息、信息资产及信息产品与我们密不可分,因此了解网络安全的相关知识及增强加强网络安全的意识极其重要。在这个信息网络时代,网络安全是急需解决的最重要的问题之一。了解网络安全,熟悉并掌握网络安全的相关知识和技术,是软件工程学生应该具备的能力。本文通过对网络安全的学习,利用sniffer工具分析IP和TCP的头结构并分析TCP的三次握手;了解密码学并实现加密解密程序;学习RSA算法并使用手工完成RSA公开秘钥密码体制算法加密运算;分析杀毒软件从哪些方面对计算机进行防护,并了解这些功能与HIDS系统功能有何异同等几个方面对网络安全进行一个大致的讲解。随着网络技术的发展,人们的生活与网络息息相关,网络安全的问题显得尤为突出和重要。在这个信息网络时代,网络安全是急需解决的最重要的问题之一。了解网络安全,熟悉并掌握网络安全的相关知识和技术,是软件工程学生应该具备的能力。
关键词:网络安全,密码学,RSA算法

1.前言
在计算机发明之前,人们主要靠物理手段和行政手段来保证重要信息的安全。计算机网络及分布式系统的出现给信息安全带来了第二次变革。网络的出现给人们的生活带来了极大的便利,但同时也带来了极大的信息安全风险。在信息传输和交换时,需要对通信信道上的传输的机密数据进行加密;在数据存储和共享时,需要对数据库进行安全的访问控制和对访问者授权;在进行多方计算时,需要保证各方机密信息不被泄露。这些均属于网络安全的范畴。简单来说,网络安全就是保证有关网络信息的安全的学科。
1.1论文的目的和意义
我们身为软件工程的本科生,在我们的生活和工作中,网络与我们密不可分,网络安全与我们息息相关。本次课程的目的就是要我们意识到网络安全的必要性,了解网络通的如何进行加密保护,了解相关的Internet协议及其安全性,密码学及相关的网络安全技术等。使我们能够掌握网络安全技术的应用,提高我们的实践能力和独立分析问题,解决问题的能力。
1.2大论文的目标
本次课程至少要掌握以下几个基本知识:
(1)清楚IP及TCP头的结构,并了解TCP的三次握手过程
(2)了解加密解密的方法,并能实现加解密程序
(3)掌握RSA算法
(4)了解杀毒软件从哪些方面对计算机进行防护
通过以上几个知识点,理解网络安全的理论与技术,并能将理论与技术相结合投入实践中。提高对网络安全的认识,加强对网络安全的应用与实践。

2.论文任务
2.1利用sniffer工具分析IP头的结构
(1)分别查看两台主机的IP地址

主机1:

在这里插入图片描述

                      图2.2.2.1 主机1的IP地址

主机2:
在这里插入图片描述

                      图2.2.1.2 主机2的IP地址

(2)打开sniffer软件,设置过滤器,进行抓包,查看抓包的情况
在这里插入图片描述

                        图2.2.1.3 抓包情况

(3)分析IP头的结构
首先看一下IPv4的头部结构
在这里插入图片描述

                   图2.2.1.4 IPv4的头部结构

对比图2.2.1.3,以第一次向服务请求时的IP头部为例分析:
Version(版本号) = 4 :即使用的IP协议为IPv4。
header length(头部长度) = 20 bytes :即头部长度占20个字节。
Type of service(区分服务) :只有在使用区分服务时,这个字段才起作用,这里没有使用到这个字段。
Total length(总长度) = 40 bytes :即首部和数据之和的长度为40个字节。
Identification(标识):IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。
Flags(标志):为分片存在。标志字段中最低位=1,表示后面“还有分片”的数据报,最低位=0,表示这是最后一个;标志字段中间的一位=0,表示允许分片,否则表示不能分片。
Fragment offset(片偏移) = 0 bytes :较长的分组在分片后,某片在原分组中的相对位置。这里为0 bytes,表示还没有偏移。
Time to live(生存时间):表示数据报在网络中的寿命。现在通常表示“跳数限制”,数据报到达目的地之前允许经过的路由跳跳数。跳一下减1,得0丢弃。
Protocol(协议) =6 :表示使用的时TCP协议,不同取值表示不同的协议。
Header checksum(首部检验和):这个字段只检验数据报的首部,但不包括数据部分。这里括号中有显示correct,表示检验正确。
Source address(源地址) = [192.168.43.96]:表示请求发送方,这里为192.168.43.96,即主机1。
Destination address(目的地址) = [192.168.43.61]:表示请求的接收方,这里为192.168.43.61,即主机2.
Options(可选字段):这里为No options,表示可选字段没有内容。
2.2利用sniffer工具分析TCP头的结构并分析TCP的三次握手
2.2.1分析TCP头的结构
(1)重新设置过滤器,再进行抓包
抓包情况如下图:
在这里插入图片描述

                        图2.2.2.1.1 抓包情况

(2)分析TCP的头结构
首先看一下TCP报文段的首部格式:
在这里插入图片描述

                   图2.2.2.1.2TCP报文段的首部格式

对比图2.2.2.1.1,分析TCP的头部结构
Source port(源端口) = 1050:表示源端口号。
Destination port(目的端口号) = 21:表示目的端口号,这里主机2 的服务器开放的端口为21,所以目的端口号为21,提供FTP服务。
Initial sequence number(序号) = 2239741562:序号的范围为[0,2^32-1],在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。
Next expected Seq number(确认号) =2239741563:表示期望收到对方下一个报文段的第一个数据字节的字号。
Date offset(数据偏移) =28 bytes:表示TCP报文段的数据起始处距离TCP报文段的起始处有多远。
Reserved Bits(保留):保留为今后使用。
URG(urgent 紧急):0。当URG=1时,表明紧急指针有效,告诉系统此报文段中有紧急数据,应尽快传送,而不要按原来的排队顺序来传送。
ACK(acknowledgment 确认):0。仅当ACK=1时确认号字段才有效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置1。
PSH(push 推送):0。当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应,这种情况下,TCP就可以使用推送(push)操作。
RST(reset复位):0。当RST=1时,表明TCP连接中出现严重错误,必须释放连接,然后再重新建立运输连接。
SYN(SYN同步):1。在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个请求报文字段。
FIN(FIN 终止):0。用来释放一个连接,当FIN=1时,表明此报文段的发送方的数据已发送完毕,并要求释放运输连接。
Window (窗口) = 64240:指的是发送本报文段的一方的接受窗口(而不是自己的发送窗口)。窗口值告诉对方:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量。
Checksum(检验和) = 6816:检验和字段检验的范围包括首部和数据这两部分。括号中显示correct表示检验正确。
Urgent pointer(紧急指针) = 0:紧急指针仅在URG=1时才有意义,它指出本报文段中的紧急数据的字节数。
Options follow(选项):长度可变。follow表示选项中有内容。
Maximum segment size(最大报文长度) = 1460:是每一个TCP报文段中的数据字段的最大长度。
2.2.2分析TCP的三次握手过程
(1)在抓取的数据报中找到TCP的三次握手过程
在这里插入图片描述

                         图2.2.2.2.1

图中红框圈起部分即为三次握手过程
(2)分析
第一次握手:主机1首先向主机2的服务器发送连接请求,携带同步序号SYN=1和初始序号SEQ=2239741562。
第二次握手:服务器同意建立连接,向主机1发送确认,携带同步序号SYN=1和确认号ACK=2239741563以及一个初始序号SEQ=1007097621。
第三次握手:然后主机1再向主机2的服务器发送确认收到,携带确认号ACK=1007097622和序号SEQ=2239741563。
TCP连接已建立,主机1和主机2均进入已建立连接状态。
建立连接的3个数据包的TCP包头结构:

第一个:
在这里插入图片描述

                 图2.2.2.2.2 第一个数据包的TCP包头结构

第二个:
在这里插入图片描述

               图2.2.2.2.3 第二个数据包的TCP包头结构

第三个:
在这里插入图片描述

                  图2.2.2.2.4 第三个数据包的TCP包头结构

2.3实现一个加解密程序
代替算法(Java实现)
Encryption.java
import java.util.Scanner;

public class Substitution {
public static void main(String[] args) {

       while(true) {
 
           System.out.println("\n选择功能");
 
           System.out.println("1. 加密功能");
 
           System.out.println("2. 解密功能");
 
        
		Scanner input = new Scanner(System.in);
 
           int c = input.nextInt();
 
           switch(c) {
 
              case 1 :{
 
                  Encryption encryption  = new Encryption();
 
                  encryption.Encryption();
 
                  break;
 
              }

              case 2 : {
 
                  Decrypt decrypt = new Decrypt();
 
                  decrypt.Decrypt();
 
                  break;
 
              }
     
           }
 
       }
 
    }

}

Substitution.java
import java.util.Scanner;

public class Substitution {
public static void main(String[] args) {

       while(true) {
 
           System.out.println("\n选择功能");
 
           System.out.println("1. 加密功能");
 
           System.out.println("2. 解密功能");
 
        
		Scanner input = new Scanner(System.in);
 
           int c = input.nextInt();
 
           switch(c) {
 
          
 
              case 1 :{
 
                  Encryption encryption  = new Encryption();
 
                  encryption.Encryption();
 
                  break;
 
              }
 
             
 
              case 2 : {
 
                  Decrypt decrypt = new Decrypt();
 
                  decrypt.Decrypt();
 
                  break;
 
              }
 
                 
 
           }
 
       }
 
    }

}

运行截图:
在这里插入图片描述

图2.3.1
2.4 RSA算法实例
2.4.1算法描述
算法描述:
(1)选择一对不同的、足够大的素数p,q。
(2)计算n=pq。
(3)计算f(n)=(p-1)(q-1),同时对p, q严加保密,不让任何人知道。
(4)找一个与f(n)互质的数e,且1<e<f(n)。
(5)计算d,使得de≡1 mod f(n)。这个公式也可以表达为d ≡e-1 mod f(n)
这里要解释一下,≡是数论中表示同余的符号。公式中,≡符号的左边必须和符号右边同余,也就是两边模运算结果相同。显而易见,不管f(n)取什么值,符号右边1 mod f(n)的结果都等于1;符号的左边d与e的乘积做模运算后的结果也必须等于1。这就需要计算出d的值,让这个同余等式能够成立。
(6)公钥KU=(e,n),私钥KR=(d,n)。
(7)加密时,先将明文变换成0至n-1的一个整数M。若明文较长,可先分割成适当的组,然后再进行交换。设密文为C,则加密过程为:。
(8)解密过程为:。
2.4.2实例描述
已知RSA算法中,素数p=5,q=7,模数n=35,公钥e=5,明文为bed,对明文进行加解密,使用手工完成RSA公开秘钥密码体制算法加密运算。字母数字映射表如下:
在这里插入图片描述

图2.4.2.1

(1)设计公私密钥(e,n)和(d,n)
p=5,q=7,得出n=p×q=35; f(n)=(p-1)(q-1)=4×6=24;(24与5互质)则
e×d≡1 mod f(n),即5×d≡1 mod 24。
d的取值可以用试算的办法来寻找。试算结果见下表:
d e×d=5×d (e×d)mod(p-1)(q-1)=(5×d)mod24
1 6 6
2 10 10
3 15 15
4 20 20
5 25 1
6 30 6
通过试算我们找到,当d=5时,e×d≡1 mod f(n)同余等式成立。因此,可令d=5。从而我们可以设计出一对公私密钥:
加密密钥(公钥)为 KU =(e,n)=(5,35);
解密密钥(私钥)为 KR =(d,n)=(5,35)。

(2)英文数字化
将明文信息数字化,并将每块两个数字分组。明文英文字母编码表为按字母顺序排列数值,如图2.4.2.1,则的到分组后的bed的明文信息为:02,05,04。
(3)明文加密
用户加密密匙(5,35)将数字化明文分组信息加密成秘闻。
由得:
C1(密文)≡M1(明文)^e(mod n)== 32≡2^5 mod 35 ;
C2(密文)≡M2(明文)^e (mod n) == 10≡5^5 mod 35;
C3(密文)≡M3(明文)^e (mod n) ==9≡4^5 mod 35;
因此得到的相应的密文信息为:32, 10, 9。
(4)密文解密
用户B收到密文,若将其解密,只需要计算,即:
M1(明文)≡C1(密文)^d (mod n) == 2≡32^5mod 35;
M2(明文)≡C2(密文)^d (mod n) == 5≡10^5 mod 35;
M3(明文)≡C3(密文)^d (mod n) == 4≡9^5 mod 35;
转为明文得到:2,5,4。
2.5分析360安全卫士
2.5.1 360安全卫士如何对计算机进行防护
360安全卫士主要从一下几个方面对计算机进行防护:
(1)电脑体检
360可以对电脑进行详细的检查,以发现电脑潜藏的漏洞或者隐藏的病毒等。通过对电脑的详细检查,360安全卫士可以找到电脑的存在安全隐患,再针对这些安全隐患进行修复。
(2)查杀修复
360安全卫士使用360云引擎、360启发式引擎、小红伞本地引擎、QVM四引擎并联合360安全大脑对电脑进行杀毒。目前360的查杀修复已与漏洞修复,常规修复合并。
(3)电脑清理
我们使用的电脑总会产生一些垃圾,有一些多余的插件,使用电脑,浏览网页等都会存留一些痕迹。这会占用电脑的空间,使得电脑的运行速度下降,工作效率降低。360的电脑清理功能可以清理插件,垃圾和痕迹并清理注册表。
(4)优化加速
优化加速功能可以加快开机的速度,大大节省了开机的时间。深度优化还可以整理磁盘碎片。
(5)木马防火墙
此功能拦截利用热键与系统消息攻击的木马,加强自我保护功能,全面拦截圆孔、下载者和恶意推广的木马。它具有两层系统防御,进一步加固安全防护,新增网络安全防护。在电脑与外界接触的最外层,网络层上建立防御,严防死守,掐断木马病毒和恶意软件的传播渠道。从根本上再次压缩木马、后门、病毒的生存空间。
(6)360云恢复
在使用电脑的过程中,随时可能会出现死机、硬件损坏、系统崩溃等需要重装的意外故障。这些意外会导致上网账号,系统设置,软件等 重要资料的丢失。轻则需要花大量时间进行重装,重则丢失上网账号,重要的学习或工作文件等。云恢复支持一键备份和恢复系统核心文件,Host设置,应用软件等重要数据。即使电脑遇到故障,也能快速恢复资料,避免损失。
2.5.2 360安全卫士的功能与HIDS系统的功能有那些异同
HIDS全称是Host-based Intrusion Detection System,即基于主机型入侵检测系统。HIDS并不作用于外部接口,而是专注于系统内部,监视系统全部或部分的动态的行为以及整个计算机系统的状态。HIDS动态地检查网络数据包,它可以检测到哪一个程序访问了什么资源以及确保文字处理器不会突然地,无缘无故的启地启动并修改系统密码数据库。
360安全卫士的功能与HIDS系统的功能的相同点与不同点:相同点在于他们都可以监视系统全部或部分的动态行为及整个计算机的状态。都可以发觉网络或系统中是否有违反安全策略的行为和遭到袭击的迹象并对此作出适当反应;不同点在于360安全卫士作用于电脑与外界接触的最外层,在网络层上建立防御,严防死守,而HID专注于系统内部,不作用于外部接口。此外,360安全卫士的功能比HIDS系统的功能更加全面细致。
2.6网络安全学习心得
2.6.1对网络安全的心得
学习了网络安全这门课程,我印象最为深刻的是RSA密码体制。RSA密码体制既可以用于加密又可以用于数字签名,且通俗易懂易于实现。RSA加密算法是最常用的非对称加密算法,它的安全基于大数分解的难度,其公钥和私钥是一对大素数的函数。从一个公钥和密文恢复出铭文的难度相当于分解两个大素数之积。了解RSA算法,就要知道它的计算原理。首先要选择两个大的参数,计算出模数 N = p * q。计算欧拉函数 φ = (p-1) * (q-1),然后选择一个e(1<e<φ),并且e和φ互质(互质:公约数只有1的两个整数)。然后取e的模反数d,计算方法为:e * d ≡ 1 (mod φ) (模反元素:如果两个正整数e和n互质,那么一定可以找到整数d,使得 e * d - 1 被n整除,或者说e * d被n除的余数是1。这时,d就叫做e的“模反元素”。欧拉定理可以用来证明模反元素必然存在。两个整数a,b,它们除以整数M所得的余数相等:a ≡ b(mod m)。要理解原理,就得了解一些线管的数学知识,如素数是什么,什么是互质数,什么是模指数运算。而后在用简单的实例手工计算RSA公开秘钥密码体制算法加密运算,就可以很好地理解RSA密码体制了。网络安全的其他内容的学习均可按照如此方法学习。
2.6.2对网络安全的理解和认识
网络安全是指通过各种技术和管理措施,使用网络系统正常运行的,从而确保网络数据的可用性、完整性和保密性。从用户角度来说,用户希望涉及个人隐私或商业利益的信息在网络上传输时受到机密性,完整性,真实性的保护。随着计算机技术的飞速发展,信息网络已经成为人们生活中密不可分的一部分,人们的学习,工作,生活都离不开信息网络。随着网络基础设施的建设和Internet用户的激增,网络与信息安全的问题越来越严重。

3.总结
通过这门课程的学习与实践,我意识到了网络安全的重要性与必要性。了解了网络安全的基本概念、计算机网络的基础知识及TCP/IP协议族的安全性。同时还学习并了解密码学中的各种密码算法和协议。在上机实践中,我也掌握一定的网络安全技术和应用。我懂得如何利用sniffer工具分析TCP和IP的头结构,掌握了扫描器X-SCANNER的原理,对计算机的潜在安全性有了进一步的了解。此外,通过PGP实现电子邮件安全试验,进一步加深了对RSA密码体制的掌握等。这门课程理论与实践相结合,使我能够深入而全面的了解网络安全技术的应用。

参考文献:
[1] 刘建伟 王育民 网络安全—技术与实践(第三版) 清华大学出版社 2017版

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值