网络安全论文

摘 要:
随着计算机的普及,互联网早已不是遥不可及,无论是谁都可以轻松的接入互联网,因此计算机技术和网络技术得以高速发展。但技术的高速发展也带来了许多网络安全问题,如今网络安全问题也是网络世界里为人们所热议的问题。危害网络安全的因素很多, 例如:恶意软件,垃圾网站,黑客攻击和电子商务攻击等。其中木马,病毒和钓鱼网站等是大多数网民所熟悉的。既然有这些危害因素,那么自然就有相应的防御措施来提高网络的安全性。文章将分析几种常见的网络入侵方法以及在此基础上探讨网络安全的几点策略。
关键词:网络安全 计算机网络 入侵检测

  1. 前 言
    一、 计算机网络安全的基本概念
    计算机网络安全是指“为数据处理系统建立和采取的技术和管理的安全保护,保护计算机硬件,软件数据不因偶然和恶意的原因而遭到破坏,更改和泄露”。计算机安全的定义包括物理安全和逻辑安全两方面的内容,其逻辑安全的内容可理解为我们常说的信息安全,是指对信息的保密性,完整性和可用性的保护,而网络安全性的含义是信息安全的引申,即网络安全是对网络信息保密性,完整性和可用性的保护。
    计算机网络安全的具体含义会随着使用者的变化而变化,使用者不同,对网络安全的认识和要求也就不同。例如从普通使用者的角度来说,可能仅仅希望个人隐私或机密信息在网络上传输时受到保护, 避免被窃听、篡改和伪造; 而网络提供商除了关心这些网络信息安全外,还要考虑如何应付突发的自然灾害、 军事打击等对网络硬件的破坏,以及在网络出现异常时如何恢复网络通信, 保持网络通信的连续性。从本质上来讲,网络安全包括组成网络系统的硬件、软件及其在网络上传输信息的安全性,使其不致因偶然的或者恶意的攻击遭到破坏,网络安全既有技术方面的问题,也有管理方面的问题,两方面相互补充,缺一不可。
    二.导致入侵的原因即常见入侵方法
    由于计算机网络的设计初衷是资源共享、分散控制、分组交换,这决定了互联网具有大跨度、分布式、无边界的特征。这种开放性使黑客可以轻而易举地进入各级网络,并将破坏行为迅速地在网络中传播。同时,隐蔽性也是计算机网络的一大特点,网络用户可以轻易的隐藏真实身份,使其他网民无法有效识别。互联网上的信息以二进制形式存在,已数据流的形式传播,所以攻击者能轻易的截获,篡改其中的信息。同时,计算机网络的传输协议及操作系统本身也存在设计上的缺陷和漏洞,这些缺陷和漏洞便是计算机网络中的潜在危险,攻击者们可以充分的利用这些潜藏的漏洞进行攻击。正是因为计算机网络不仅存在自身拥有的缺陷,而且外部因素(例如操作规范等)也影响巨大。所以使网络安全问题面临着严峻的挑战,攻击者们也正是利用这些因素摸索出多种多样的攻击和入侵方法:
    1.网络欺骗
    2.系统漏洞,应用程序漏洞,协议漏洞
    3.特洛伊木马
    4.嗅探器和扫描攻击
    为了应对不断更新的网络攻击手段,网络安全技术也经历了从被动防护到主动检测的发展过程。主要的网络安全技术包括:病毒防护技术,入侵检测技术,安全扫描技术,认证和数字签名技术,应用系统的安全技术,VPN技术,防火墙等。

1.1论文的目的和意义

作为一个软件工程专业的学生,<<网络安全>>是我们必须学习的一门课程。无论是现在还是以后,在与网络打交道的时候免不了会涉及到网络安全方面的知识。社会对人才的要求已经不满足于单功能的专一型人才,而转向于要求更高的全面的综合型人才。而本课程的意义也在于此,使我们更加了解所使用的网络,了解它的缺点,了解它可能带来的危害,告诉我们如何去防范潜藏的危险,如何防御外来的攻击。都说实践是检验理论的道路,在一个学期的学习之后,我们理论知识掌握的怎么样呢?这次大作业正好是一次检验。通过大作业,我们可以将理论知识用于实际,在实践中进一步理解网络安全,促进理论知识的掌握,这也是这次大作业的意义。

1.2大论文的目标

本次课程大作业主要是通过对上机软件如下的几点的认真落实:
1、 利用sniffer抓包软件,分析IP头的结构
在这里插入图片描述
“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、 利用sniffer工具,分析TCP头的结构,并分析TCP的三次握手过程。
在这里插入图片描述
TCP包头占有20个字节,后00 00 02 04 05 b4 01 01部分是可选项和数据部分。
“00 15”表示目的端口号为:21,可知用了FTP文件文件传输。

“2f 26 12 11”表示数据包顺序号(Sequence Number)。

“00 00 00 00”表示(Acknowledgment Number),简写为ACKNUM。在此为不全0,表示连接成功,有确认。

“70 02”两字节中,前4位为头部长度,用十进制表示为7,转化为字节,总共有7×4=28字节;中间六位为保留,都为0,在TCP协议没有用上;后面6位为000010,是重要的6个标志位,此时SYN=1,ACK=0,连接响应时,表示连接向应超时。

“fa f0”两个字节表示窗口大小为63864。

“f7 ae”这个16bit是头校验和(Header Checksum)。

“00 00”为紧急指针,此时表示没有,当且仅当URG同时置1才有效。
三次握手:
第一次握手:169.254.12.54发送位码syn=1,随机产生SEQ = 560840150的数据包到到169.254.234.23 ,169.254.234.23由SYN=1知道169.254.12.54要求建立联机;
在这里插入图片描述
在这里插入图片描述
第二次握手:169.254.12.54收到请求后要确认联机信息,向169.254.234.23发送ACK=560840151,SYN=1,ACK=1,随机产生SEQ =22725528610的包;
在这里插入图片描述
第三次握手:169.254.12.54收到后检查ACK是否正确,即第一次发送的SEQ number + 1,以及位码ACK是否为1,若正确,169.254.234.23会再发送ACK number =22725528611,ACK=1,169.254.234.23收到后确认SEQ = SEQ + 1,ACK=1则连接建立成功。
在这里插入图片描述
在这里插入图片描述
3、 实现加解密程序。(详见《密码学及应用实验部分》,实验一)
代换密码:

package aa;

import java.util.Scanner;
 
class Encryption{
public void Encryption() {
    char l;
    System.out.println("请输入要加密的明文");
    Scanner input = new Scanner(System.in);
    String str1 = input.nextLine();
    System.out.println("请输入要加密的密钥");
    int k = input.nextInt();
    System.out.println("加密后的明文为: ");
    for(int i = 0 ; i < str1.length() ; i ++) {
        int n = (int)(str1.charAt(i));
        if(n > 96 && n < 123) {
            n = (n - 97 + k) % 26;
            l = (char)(n + 97);
            System.out.print(l);
        	}
    	}
	}
}

class Decrypt{
public void Decrypt() {
    char l = 0;
    System.out.println("请输入需要解密的密文");
    Scanner input = new Scanner(System.in);
    String str3 = input.nextLine();
    System.out.println("请输入解密的密钥");
    int k = input.nextInt();
    System.out.println("解密的明文是: ");
    for(int i = 0 ; i < str3.length() ; i ++) {
        int n = (int)(str3.charAt(i));
        if(n > 96 && n < 123) {
            n = (n - 97 - k) % 26;
        if(n == -1)
            n = 25;
      l = (char)(n + 97);
      System.out.print(l);
        	}
    	}
    
	}
}
public class Substitution {
	public static void main(String[] args) {
		while(true) {
			System.out.println("\n选择功能");
			System.out.println("1.加密功能");
			System.out.println("2.解密功能");
			Scanner in = new Scanner(System.in);
			int c = in.nextInt();
			switch(c) {
			case 1:{
				Encryption encryption = new Encryption();
				encryption.Encryption();
				break;
				}
			case 2:{
				Decrypt decrypt = new Decrypt();
				decrypt.Decrypt();
				break;
				}
			}
			
		}
	}
}

在这里插入图片描述
置换密码:

#include <stdio.h>
#include <string.h>
#include<stdlib.h>
#include <math.h> 
#define N 100
int main() {
	int i, j, lenK, lenM, m, n, temp;
	int T[N];
	char K[N], M[N], C[N], Temp1[N], Temp2[N], Temp3[N];
	printf("请输入明文M:\n");
	gets(M);
	printf("请输入明文N:\n");
	gets(K);
	lenK = strlen(K);
	lenM = strlen(M);
	m = lenM / lenK;
	n = lenK;
	for (i = 0; i < lenK; i++) {
		temp = 0;
		for (j = 0; j < lenK; j++) {
			if ((int)K[i] < (int)K[j]) {
				temp += 1;
			}
		}
		T[i] = lenK - temp;
	}
	for (i = 0; i < m; i++) {
		for (j = 0; j < n; j++) {
			Temp1[i*lenK + j] = M[i*lenK + j];
		}
	}
	Temp1[lenM] = '\0';
	for (i = 0; i < lenK; i++) {
		for (j = 0; j < m; j++) {
			Temp2[j*lenK + i] = Temp1[j*lenK + T[i] - 1];
		}
	}
	Temp2[lenM] = '\0';
	for (i = 0; i < lenK; i++) {
		for (j = 0; j < m; j++) {
			Temp3[j*lenK + i] = Temp2[j*lenK + T[i] - 1];
		}
	}
	Temp3[lenM] = '\0';
	printf("密文是:\n");
	for (j = 0; j < lenK; j++) {
		for (i = 0; i < m; i++) {
			printf("%c", Temp3[i*lenK + j]);
		}
	}
	system("PAUSE");
	return 0;
}

在这里插入图片描述
4、 已知RSA算法中,素数p=5,q=7,模数n=35,公钥e=5,明文为bed,对明文进行加解密,使用手工完成RSA公开秘钥密码体制算法加密运算。
(1)设计公私密钥(e,n)和(d,n)。
令p=5,q=7,得出n=p×q=5×7=35;f(n)=(p-1)(q-1)=4×6=24;公钥e=5,(5与24互质)则e×d≡1 mod f(n),即5×d≡1 mod 24。
在这里插入图片描述
通过试算我们找到,当d=5时,e×d≡1 mod f(n)同余等式成立。因此,可令d=5。从而我们可以设计出一对公私密钥,加密密钥(公钥)为:KU =(e,n)=(5,35),解密密钥(私钥)为:KR =(d,n)=(5,35)。
(2)英文数字化。
  将明文信息数字化,并将每块两个数字分组。假定明文英文字母编码表为按字母顺序排列数值,即:
在这里插入图片描述
adc的对应的值为:01,04,03
(3)明文加密
  用户加密密钥(5,35) 将数字化明文分组信息加密成密文。由C≡Me(mod n)得:
M1 = {c1} e{mod n} = 015 {mod 35} = 10
M2 = {c1} e{mod n} = 045 {mod 35} = 9
M3 = {c1} e{mod n} = 035 {mod 35} = 0
(4)密文解密。
  用户B收到密文,若将其解密,只需要计算M≡Cd(mod n),即:
M1 = {c1} d {mod n} = 325 {mod 35} = 01
M2 = {c1} d {mod n} = 105 {mod 35} = 04
M3 = {c1} d {mod n} = 95 {mod 35} =03
用户得到明文信息为:01,04,03。根据上面的编码表将其转换为英文,我们又得到了恢复后的原文“adc”。
5、 安装一款杀毒软件,分析该软件从哪些方面对计算机进行防护,这些功能与HIDS系统的功能有哪些异同?
2.5.这里使用的是瑞星杀毒软件
功能:
嵌入式查杀:可以保护MSN等即时通讯软件,并在MSN传输文件时进行传输文件的扫描。
木马入侵拦截:保护用户访问网页时的安全,阻止绝大部分挂马网页对用户的侵害。
木马行为防御:基于病毒行为的防护,可以阻止未知病毒的破坏。
文件监控:提供高效的实时文件监控系统。
邮件监控:提供支持多种邮件客户端的邮件病毒防护体系。
密码保护:防止用户的安全配置被恶意修改。
自我保护:防止病毒对瑞星杀毒软件进行破坏。
网络攻击拦截:阻止黑客攻击系统对用户造成的危险。
出站攻击防御:解决“肉鸡”和“网络僵尸”对网络造成的安全威胁。
恶意网址拦截:保护用户在访问网页时,不被病毒及钓鱼网页侵害。

瑞星杀毒软件采用获得欧盟及中国专利的六项核心技术,是目前国内外同类产品中最具实用价值和安全保障的杀毒软件产品之一。它有很强的木马拦截功能,和可以对系统和应用进行加固,防止被最新漏洞攻击。同时对于电脑中的病毒进行彻底杀灭,未知病毒也将一并杀灭。瞬时分析处理拦截的病毒样本,以提供更好的保护。同时具有超强的自我保护功能。

HIDS:基于主机型入侵检测系统。作为计算机系统的监视器和分析器,它并不作用于外部接口,而是专注于系统内部,监视系统全部或部分的动态的行为以及整个计算机系统的状态。

HIDS运行依赖于这样一个原理:一个成功的入侵者一般而言都会留下他们入侵的痕迹。这样,计算机管理员就可以察觉到一些系统的修改,HIDS亦能检测并报告出检测结果。
一般而言,HIDS使用一个它们所监视的目标系统以及文件系统(非必需)的数据库,HIDS也可以核对内存中未被非法修改的区域。对于每一个正被处理的目标文件来说,HIDS会记录下他们的属性(如权限、大小、修改时间等)然后,如果该文件有其文件内容的话,HIDS将会创建一个校验码(如SHA1,MD5或类似)。这个校验码信息将储存在一个安全的数据库中,即校验码数据库,以便将来的核对。

3.总结
通过一个学期的网络安全课程的学习,使我更加了解计算机网络,更加了解了网络安全。
课程之前,对于网络攻击,黑客,网络防御等等感到很遥远,但现在对于这些更近一步。这学期理论课方面,老师讲的很详细,上课跟着老师的节奏,按照老师的思路来学,基本上没有遇到太大的知识难点。但实验课确实是一大考验,尤其是在刚开始的时候,对于软件的操作,操作的用途,操作结果的分析等感到陌生,甚至无法下手。后来在大量的查阅资料,及与同学们讨论交流之后,才慢慢的清晰起来。

  • 4
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值