网络安全论文

我太难了QAQ,终于结课了
桂林理工大学

《网络安全》

学生姓名 XXX
学 号 XXX
所属学院 信息科学与工程学院
专 业 软件工程
班 级 软件18-2班
教 师 张攀峰

桂林理工大学教务处

《网络安全》课程论文

作者:XXX

摘 要:21世纪是信息时代,信息已成为社会发展的重要战略资源,社会的信息化已成为当今世界发展的潮流和核心。实现信息化就必须依靠完善的网络,因为网络可以非常迅速地传递信息。因此网络现在已经成为信息社会的命脉和发展知识经济的重要基础。网络对社会生活的很多方面以及对社会经济的发展已经产生了不可估量的影响。而信息安全在信息社会中将扮演极为重要的角色,它会直接关系到国家安全、企业经营和人们的日常生活。随着信息安全产业的快速发展,网络安全日益成为人们关注的焦点。本文通过介绍网络安全的基本概念,并且就网络安全的现状和常用技术措施进行探讨,得出几个应对措施,使人们对加密技术、防火墙技术、防病毒技术以及入侵检测系统有一个大致了解。
关键词:信息安全、网络安全、加密、防火墙、防病毒
1.前言
1.1网络安全的含义
网络安全,通常指计算机网络的安全。基本含义:客观上不存在威胁,主观上不存在恐惧。即客体不担心其正常状态受到影响。一个网络系统不受任何威胁与侵害,能正常实现资源共享功能。要使网络能正常地实现资源共享功能,首先要保证网络的硬件、软件能正常运行,然后要保证数据信息交换的安全。由于资源共享的滥用,导致了网络的安全问题。因此网络安全的技术途径就是要实行有限制的共享。
1.2网络安全发展态势
在今天的计算机技术产业中,网络安全是急需解决的最重要的问题之一。
第一,计算机病毒层出不穷,肆虐全球,并且逐渐呈现新的传播态势和特点。其主要表现是传播速度快,与黑客技术结合在一起形成的“混种病毒”和“变异病毒”越来越多。病毒能够自我复制,主动攻击与主动感染能力增强。当前,全球计算机病毒已经达8万多种。每天要产生5~10种新病毒。
第二,黑客对全球网络的恶意攻击势头逐年攀升。近年来,网络攻击还呈现出黑客技术与病毒传播技术相结合的趋势。计算机病毒的大规模传播与破坏都同黑客技术的发展有关,二者的结合使病毒的传染力与破坏性倍增。这意味着网络安全遇到了新的挑战,即集病毒、木马、蠕虫和网络攻击为一体的威胁,可能造成快速、大规模的感染,造成主机或服务器瘫痪,数据信息丢失,损失不可估量。
第三,由于技术和设计上的不完备,导致系统存在缺陷或安全漏洞,这些漏洞或缺陷主要存在与计算机操作系统与网络软件。例如,微软的Windows XP操作系统中含有数项严重的安全漏洞,黑客可以透过此漏洞实施网络窃取、销毁用户资料或擅自安装软件,乃至控制用户的整个计算机系统。正是因为计算机操作系统与网络软件难以完全客服这些漏洞和缺陷,使得病毒和黑客有了可乘之机。由于操作系统和应用软件所采用的的技术越来越先进和复杂,因此带来的安全
问题就越来越多。
第四,世界各国军方都在加紧进行信息战的研究。近年来,黑客技术已经不再局限于修改网页、删除数据等惯用伎俩,而是堂而皇之地登上了信息战的舞台,成为信息作战的一种手段。信息战的威力之大,在某种成都上不亚于核武器。在湾战争、索沃战争及巴以战争中,信息战发挥了巨大的威力。
1.3几种威胁网络安全的入侵方法
由于计算机网络的设计初衷是资源共享、分散控制、分组交换,这决定了互联网具有大跨度、分布式、无边界的特征。这种开放性使黑客可以轻而易举地进入各级网络,并将破坏行为迅速地在网络中传播。这使网络安全问题与传统的各种网络安全问题相比面临着更加严峻的挑战,黑客们也正是利用这样的特征研发出了各种各样的攻击和入侵方法:
(1)通过伪装发动攻击。
(2)利用开放端口漏洞发动攻击。
(3)通过木马程序进行入侵或发动攻击。
(4)嗅探器和扫描攻击。
为了应对不断更新的网络攻击手段,网络安全技术也经历了从被动防护到主动检测的发展过程。主要的网络安全技术包括:防火墙、VPN、防毒墙、入侵检测、入侵防御、漏洞扫描。其中防火墙、VPN、防病毒属于早起的被动防护技术,这些技术领域的研究成果已经成为众多信息安全产品的基础。
1.4网络安全的主要措施
计算机网络安全从技术上来说,主要由加密、防火墙、防病毒、入侵检测等多个安全组件组成。目前广泛运用和比较成熟的网络安全技术主要有:加密技术、防火墙技术、防病毒技术、入侵检测技术等。
1)数据加密与用户授权访问控制技术
与防火墙相比,数据加密与用户授权访问控制技术比较灵活,更加适用于开放的网络。用户授权访问控制主要用于对静态信息的保护,需要系统级别的支持,一般在操作系统中实现。
2)防火墙技术
防火墙是网络安全的屏障,配置防火墙是实现网络安全最基本、最经济、最有效的安全措施之一。防火墙是由软件或和硬件设备组合而成,处于企业或网络群体计算机与外界通道之间,限制外界用户对内部网络访问及管理内部用户访问外界网络的权限。如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并做出日志记录,同时也能提供网络使用情况的统计数据。当发生可疑动作时,防火墙就会进行适当的报警,并提供网络是否受到监测和攻击的详细信息。
3)防病毒技术
在病毒防范中普遍使用的防病毒软件,从功能上可以分为网络防病毒软件和单机防病毒软件两大类。单机防病毒软件一般安装在单台PC上,即对本地和本地工作站连接的远程资源采用分析扫描的方式检测、清除病毒。网络防病毒软件则主要注重网络防预病毒,一旦病毒入侵网络或者从网络向其它资源传染,网络防病毒软件会立刻检测到并加以删除。
4)入侵检测技术
入侵检测系统(Intrusion Detection System简称IDS)是从多种计算机系统及网络系统中收集信息,再通过这此信息分析入侵特征的网络安全系统。IDS被认为是防火墙之后的第二道安全闸门,它能使在入侵攻击对系统发生危害前,检测到入侵攻击,并利用报警与防护系统驱逐入侵攻击。
1.5论文的目的和意义
作为一名软件工程专业的学生,我们不止要懂得如何写一个好的程序代码,更要知道计算机网络如何传递信息。正是出于这样的需求,《网络安全》这门课程诞生了。网络安全技术指致力于解决诸如如何有效进行介入控制,以及何如保证数据传输的安全性的技术手段,主要包括物理安全分析技术,网络结构安全分析技术,系统安全分析技术,管理安全分析技术,及其它的安全服务和安全机制策略。在网络技术高速发展的今天,对网络安全技术的研究意义重大,它关系到小至个人的利益,大至国家的安全。对网络安全技术的研究就是为了尽最大的努力为个人、国家创造一个良好的网络环境,让网络安全技术更好的为广大用户服务。
1.6大论文的目标
本次课程大作业主要是通过对上机软件如下的几点的认真落实:
1)利用sniffer抓包软件,分析IP头的结构。
2)利用sniffer工具,分析TCP头的结构,并分析TCP的三次握手过程。
3)实现加解密程序。(详见《密码学及应用实验部分》,实验一)
4)已知RSA算法中,素数p=5,q=7,模数n=35,公钥e=5,明文为bed,对明文进行加解密,使用手工完成RSA公开秘钥密码体制算法加密运算。
5)安装一款杀毒软件,分析该软件从哪些方面对计算机进行防护,这些功能与HIDS系统的功能有哪些异同?
2. 论文任务
2.1 利用sniffer工具,分析IP头的结构。
根据IP数据报 来分析IP
网络安全论文_第1张图片
网络安全论文_第2张图片
网络安全论文_第3张图片

“45”,其中“4”是IP协议的版本(Version),说明是IP4。“5”是IHL位,表示IP头部的长度,是一个4bit字段,最大就是1111了,值为15(表示有15行,一行有32bit),IP头部的最大长度就是60字节。而这里为“5”,说明是20字节,这是标准的IP头部长度,头部报文中没有发送可选部分数据。
“00”,为服务类型(Type of Service)。这个8bit字段由3bit的优先权子字段
“00 3C”,为IP数据报文总长,包含头部以及数据,这里表示60字节。这60字节由20字节的IP头部以及40字节的TCP头构成(最后的一个字节为数据)。因此目前最大的IP数据包长度是65535字节。
“01 29” 两个字节为数据包封装标识信息,与后面的偏移量一起用,这个是让目的主机来判断新来的分段属于哪个分组。
“00 00”其中前三位表示标志位,后面13位表示片段偏移地址。其中第一位是IP协议目前没有用上的,为0。接着的是两个标志DF和MF。DF为1表示不要分段,MF为1表示还有进一步的分段(本例为0)。然后的“0 0000”是分段便移(Fragment Offset)。
“80” 这个字节就是TTL(Time To Live)了,表示一个IP数据流的生命周期,用Ping显示的结果,能得到TTL的值50(将十六进制的80转化为十进制得48)。
“01” 这个字节表示传输层的协议类型(Protocol)。在RFC790中有定义,1表示传输层是ICMP协议
“7d 44” 这个16bit是头校验和(Header Checksum)。
“c0 a8 9d 80”表示源地址,也就是PC的IP地址,转换为十进制的IP地址就是:192.168.157.128。
“c0 a8 9d 82”表示目标IP地址,转换为十进制的IP地址就是:192.168.1.130
2.2利用sniffer工具,分析TCP头的结构,并分析TCP的三次握手过程。
网络安全论文_第4张图片

抓包结束后 可以获得TCP头
网络安全论文_第5张图片

根据TCP头结构对获得的TCP头进行分析
网络安全论文_第6张图片

TCP包头占有20个字节,后00 00 6e 6f 6f 70 0d 0a部分是可选项和数据部分。
“00 15”表示目的端口号为:21,可知用了FTP文件文件传输。
“68 47 e2 37”表示数据包顺序号(Sequence Number)。
“d7 44 7c a2”表示(Acknowledgment Number),简写为ACKNUM。在此不全
为0,表示连接成功,有确认。
“50 18”两字节中,前4位为头部长度,用十进制表示为7,转化为字节,总共有7×4=28字节;中间六位为保留,都为0,在TCP协议没有用上;后面6位为000010,是重要的6个标志位,此时SYN=1,ACK=0,连接响应时,表示连接向应超时。
“f9 78”两个字节表示窗口大小为63864。
“6c 67”这个16bit是头校验和(Header Checksum)。
“00 00”为紧急指针,此时表示没有,当且仅当URG同时置1才有效。
TCP的三次握手过程
在这里插入图片描述

第一次握手:192.168.157.128发送位码syn=1,随机产生SEQ number =1384476279的数据包到192.168.157.130 ,192.168.157.130由SYN=1知道192.168.157.128要求建立联机;
网络安全论文_第7张图片

第二次握手:192.168.157.130收到请求后要确认联机信息,向192.168.157.128发送ACK number =1384476280,SYN=1,ACK=1,随机产生SEQ number =337715159741的包;
网络安全论文_第8张图片

第三次握手:192.168.157.128收到后检查ACK是否正确,即第一次发送的SEQ number + 1,以及位码ACK是否为1,若正确,192.168.157.128会再发送ACK number =3377159742,ACK=1,192.168.157.130收到后确认SEQ = SEQ + 1,ACK=1则连接建立成功。
网络安全论文_第9张图片

2.3 实现一个或几个加解密程序。
1)替代算法

#include<stdio.h>
#define MAX 1024
//加密
void encrypt(char m[MAX],int n)  
{
	int loc[MAX];
	char c[MAX];
	for(int i=0;m[i]!='\0';i++) {
		if(m[i]>='a' && m[i]<='z') {
			loc[i]=m[i]-'a'; //位置从0开始
			c[i]=(loc[i]+n)%26+'a';   //密文
		}
		if(m[i]>='A' && m[i]<='Z') {
			loc[i]=m[i]-'A'; //位置从0开始
		    c[i]=(loc[i]+n)%26+'A';   //密文
		}
		printf("%c",c[i]);
	}
	printf("\n");
}
//解密
void decode(char m[MAX],int n)   
{ 
	int loc[MAX];
	char c[MAX];
	for(int i=0;m[i]!='\0';i++) {
		if(m[i]>='a' && m[i]<='z') {
			loc[i]=m[i]-'a'; //位置从0开始
			c[i]=(loc[i]-n)%26+'a';   //明文
		}
		if(m[i]>='A' && m[i]<='Z') {
			loc[i]=m[i]-'A'; //位置0个开始
		    c[i]=(loc[i]-n)%26+'A';   //明文
		}
		printf("%c",c[i]);
	}
	printf("\n");
}
int main()
{
	char m[MAX];
	int n;
	printf("请选择:\n1.加密 2.解密 \n");
	int x;
	scanf("%d",&x);
	switch(x) {
		case 1:
			{
				printf("请输入明文:\n");
				scanf("%s",m);
				printf("请输入加密密钥:\n");
				scanf("%d",&n);
				printf("加密后的密文:\n");
				encrypt(m,n);
			}
			break;
		case 2:
			{
				printf("请输入密文:\n");
				scanf("%s",m);
				printf("请输入解密密钥:\n");
				scanf("%d",&n);
				printf("解密后的明文:\n");
				decode(m,n);
			}
			break;
		default: break;
	}
	return 0;
}

结果:
网络安全论文_第10张图片
网络安全论文_第11张图片

2)置换算法

package 网络安全;
import java.util.Scanner;
public class 置换算法 {
	    public static void main(String[] args) {
	        final char[] CHARS = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
	                'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0'
	                , '1', '2', '3', '4', '5', '6', '7', '8', '9'};
	        int leng = 0;
	        final int N = 7;//分组长度
	        char[] transChars = new char[N];
	        final int[] encryptionWay = {5, 3, 2, 0, 6, 4, 1};//规定置换顺序
	        final int[] decryptionWay = {3, 6, 2, 1, 5, 0, 4};
	        Scanner scanner = new Scanner(System.in);
	        System.out.println("输入你要加密的字符:");
	        String m = scanner.nextLine();
	        StringBuffer m1 = new StringBuffer(m);//14
	        int add = 0;//补位添加的0的个数
	        if (m1.length() % N != 0) {
	            leng = m1.length() / N + 1;
	            //System.out.println(leng);
	            add = N - m1.length() % N;
	            for (int i = 0; i < add; i++) {
	                m1.append(0);
	                //补足7的整数倍
	            }
	        } else {
	            leng = m1.length() / N;
	        }

	        //将输入的字符串,分组存到二维数组中
	        char[][] arr = new char[leng][N];//{{},{}}
	        for (int i = 0; i < leng; i++) {
	            for (int j = i * N, z = 0; j < N * (i + 1) && z < N; j++, z++) {
	                arr[i][z] = m1.charAt(j);
	            }
	        }
	        //加解密就置换数组内容不一样,其他都一样就抽方法了
	        //加密
	        System.out.println("加密后:");
	        encryptionAndDecryption(leng, N, transChars, encryptionWay, arr);
	        print(leng, arr);
	        //解密
	        System.out.println("解密后:");
	        encryptionAndDecryption(leng, N, transChars, decryptionWay, arr);
	        char[] charsRemove = new char[N-add];
	        for (int i = 0; i < N-add; i++) {
	            charsRemove[i]=arr[arr.length-1][i];//去除末尾添加的0
	        }
	        arr[arr.length-1]=charsRemove;
	        print(leng, arr);
	    }
	    static void print(int leng, char[][] arr) {
	        for (int i = 0; i < leng; i++) {
	            for (int j = 0; j < arr[i].length; j++) {
	                System.out.print(arr[i][j]);//遍历全部置换后的加密结果
	            }
	        }
	        System.out.println();
	    }
	    static void encryptionAndDecryption(int leng, int n, char[] transChars, int[] encryptionWay, char[][] arr) {
	        for (int i = 0; i < leng; i++) {
	            for (int j = 0; j < arr[i].length; j++) {
	                transChars[j] = arr[i][encryptionWay[j]];//遍历每个二维数组进行置换
	            }
	            for (int k = 0; k < n; k++) {
	                arr[i][k] = transChars[k];//将每一维的置换结果又存回去
	            }
	        }
	    }
	}

结果:
网络安全论文_第12张图片

2.4 已知RSA算法中,素数p=5,q=7,模数n=35,公钥e=5,明文为bed,对明文进行加解密,使用手工完成RSA公开秘钥密码体制算法加密运算。字母数字映射表如下:
网络安全论文_第13张图片

1)设计公私密钥(e,n)和(d,n)
n=pq=57=35,由欧拉函数得r=(p-1)(q-1)=46=24,题中e=5,满足ed≡1 mod r,即5d≡1 mod 24,算出只有当d=5时满足,故d=5,继而可得公钥为(e,n)=(5,35),私钥为(d,n)=(5,35)。
2)英文数字化
将明文信息数字化,并将每块两个数字分组。假定明文英文字母编码表为按字母顺序排列数值,则得到分组后的bed的明文信息为:02,05,04。
3)明文加密
用户加密密钥(5,35),将数字化明文分组信息加密成密文。由M=c^e mod n,得
M1=02^5 mod 35=32,
M2=05^5 mod 35=10,
M3=04^5 mod 35=9。
4)密文解密
用户B收到密文,若将其解密,则由m=M^d mod n得,
m1=32*5 mod 35=02,
m2=10^5 mod 35=05,
m3=9^5 mod 35=04。
用户得到明文信息为:02,05,04。根据上面的编码表将其转换为英文,我们又得到了恢复后的原文“bed”。
2.5 安装一款杀毒软件,分析该软件从哪些方面对计算机进行防护,这些功能与HIDS系统的功能有哪些异同?
瑞星杀毒软件V17,采用瑞星最先进的四核杀毒引擎,性能强劲,能针对网络中流行的病毒、木马进行全面查杀。同时加入内核加固、应用入口防护、下载保护、聊天防护、视频防护、注册表监控等功能,帮助用户实现多层次全方位的信息安全立体保护。
HIDS全称是Host-based Intrusion Detection System,即基于主机型入侵检测系统。作为计算机系统的监视器和分析器,它并不作用于外部接口,而是专注于系统内部,监视系统全部或部分的动态的行为以及整个计算机系统的状态。由于HIDS动态地检查网络数据包这一特性,它可以检测到哪一个程序访问了什么资源以及确保文字处理器(Word-Processor)不会突然的、无缘无故的启动并修改系统密码数据库。同样的,不管是往内存、文件系统、日志文件还是其它地方存储信息,HIDS会一直监控系统状态,并且核对他们是否还预期相同。HIDS运行依赖与这样一个原理:一个成功的入侵者一般而言都会留下他们入侵的痕迹。这样,计算机管理员就可以察觉到一些系统的修改,HIDS亦能检测并报告出检测结果。
一般而言,HIDS使用一个它们所监视的目标系统以及文件系统(非必需)的数据库,HIDS也可以核对内存中未被非法修改的区域。对于每一个正被处理的目标文件来说,HIDS会记录下他们的属性(如权限、大小、修改时间等)然后,如果该文件有其文件内容的话,HIDS将会创建一个校验码(如SHAI,MD5或类似)。这个校验码信息将储存在一个安全的数据库中,即校验码数据库,以便将来的核对。
2.6
(1)结合一到两个最有体会或印象深刻的知识点(可以任选章节或具体算法协议等)谈谈自己对网络安全的学习心得;
通过学习《网络安全》这门课,使我更加深刻的理解网络信息安全的重要性。我们知道,计算机安全本身就是一个难题,要保证互联网计算机的安全性就更加困难,故而防火墙技术与是必须的。防火墙一个技术之一是包过滤技术,能监视并过滤网络上流入流出的包,拒绝发送那些可疑的包,但是这种技术是无法有效区分同意IP抵制的不同用户,这个技术安全性相对比较低。另外一个是代理服务技术,主要是在应用网关上运行应用代理程序,一方面可疑代替原来的客户建立连接,另一方面代替原来的客户程序与服务器建立连接,是的用户可通过应用网关安全地使用网络服务,而对于菲菲用户的请求则不予理睬。另外一种多级过了技术,分组,应用网关,电路网关3级过滤措施,分组过滤掉假冒IP原地址,应用网关控制监测通用服务。电路网关实现内部主机与外部站点的透明连接,并对服务执行严格控制。
(2)从网络安全的整体视角谈谈自己对网络安全的的理解和认识。
在人们的日常生活以及赖以生存的这个世界中,信息、信息资产及信息产品已经变得至关重要。加强网络安全的必要性可以从具体发生的时间中得到证明。以前没接触过网络安全,对这方面的知识知之甚少,但是,学过了之后,你会发现,网络安全的具体含义会随着“角度”的变化而变化。比如说:从用户的角度来说,我们希望设计个人隐私或商业利益的信息在网络上传输时收到机密性、完整性、和真实性的保护;而从企业的角度来说,最重要的就是内部信息上的安全加密以及保护。不论是用户还是企业,最重要的就是网络信息的保护,故而网络安全在现代计算机技术产业的暴露的问题越来越多,窃取信息的手段越来越高明。因此,每个人都应该拥有良好的网络安全意识和网络素质,共同创造一个健康的网络环境。
3.总结
《网络安全》这门课程结束了,在学习这门课的过程中,我不仅有很多次上机的机会,而且
1)在Sniffer Pro网络分析器应用实验中,学习了Sniffer工具的安装和使用方法,通过使用Sniffer工具理解TCP/IP协议栈中IP,TCP,UDP等协议的数据结构,并且掌握了ICMP协议的类型和代码。
2)在扫描器X-SCANNER应用实验中,基本上了解了X-scan扫描器的使用方法,对计算机的潜在的安全性问题有了进一步的理解,提高了我对计算机的安全意识,还对扫描器扫描原理的理解和掌握。
3)在使用PGP实现电子邮件安全实验中,了解了PGP软件的使用,进一步加深对非对称密码算法RSA的认识和掌握,熟悉软件的操作及主要功能,使用它加密邮件,普通文件。为了用户邮件内容保密,以防止非法授权者阅读。从而我们使用了PGP。本次实验我通过PGP的安装,创建密钥。了解了如何使用PGP输出和签名公共密钥。
4)在防火墙技术的具体应用实验中,了解了防火墙的工作原理和规则设置方法,了解天网防火墙的有点及缺点: 灵活的安全级别设置、实用的应用程序规则设置、详细的访问记录、严密的应用程序网络状态监控功能、多样的缺省IP规则、可以自定义IP规则以及具有修补系统漏洞功能。
参考文献:
[1]刘建伟 王育民 网络安全—技术与实践(第三版) 清华大学出版社 2017版

你可能感兴趣的