《网络安全》课程论文

《网络安全》课程论文

作者:小涵涵森

摘 要:随着信息科技的不断发展,几乎所有的计算机均与Internet相连,网络安全会直接导致计算机主机的安全,而人们的日常工作生活越来越依赖计算机,使得网络安全成为人们急需解决的最重要的问题之一。网络安全涉及的内容很多,本文主要通过使用Sniffer工具对ftp、http数据包进行捕捉和对IP、TCP头结构、TCP三次握手过程的分析,来了解ftp、http数据包的数据结构和连接过程和FTP、HTTP协议明文传输的特性,以了解嗅探器和扫描攻击的入侵方法和建立安全意识。通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入 学习密码学奠定基础。通过完成RSA公开秘钥密码体制算法加密运算,掌握 RSA 加密算法的加解密过程。通过对金山毒霸这款杀毒软件进行分析,了解其对计算机的防护,增强网络安全意识。
关键词:网络安全,入侵检测,FTP,HTTP,古典密码体制,RSA加密算法。

  1. 前 言
    网络安全包括组成网络系统的硬件、软件及其在网络上传输信息的安全性,使其不因偶然的或者恶意的攻击遭到破坏,网络安全既有技术方面的问题,也有管理方面的问题,两方面互相补充,缺一不可。计算机网络具有资源共享、分散控制、分组交换的特性,这使得黑客们无孔不入,利用这些特征研发出了各种各样的攻击和入侵的方法,为了应对不断更新和日渐精进的网络攻击手段,网络安全技术经历了从被动防护到主动检测的发展过程。主要的网络安全技术有:防火墙技术、入侵检测技术、VPN技术、身份认证技术。
    1.1论文的目的和意义
    我是软件专业的本科生,《网络安全》是我们重要的一门必修课程。当代社会需要大学培养出理论扎实,动手实践能力强的大学生。所以,本次课程大作业的目的就在于通过一次实践性的活动加深对这门课程的理解,使我们在感性的认识上进一步升华为理性的认识。为后继相关课程的学习打下坚实的实践和理论的基础。
    1.2大论文的目标
    本次课程大作业主要是通过对以下几点的认真落实:
    (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头结构。
    在这里插入图片描述
    在这里插入图片描述
    由抓包结果可知IP包(上图中圈出的部分中的灰色部分)中,“45”,其中“4”是IP协议的版本号,“5”是IHL位,表示IP头部的长度,是一个4bit字段,当首部长度为最大值1111时(即十进制数的15),就表明首部长度达到最大值15个32位字长,即60字节。而这里为“5”,说明为20字节,是标准的IP头部长度,头部报文中没有发送可选部分数据。
    “00”,为服务类型。
    “00 31”,为IP数据报文总长,包含头部以及数据。目前IP数据报的最大长度为216-1=65535字节。
    “00 b3”两个字节为数据包封装标识信息,与后面的偏移量一起使用,这个是用来让目的主机判断新来的分段属于哪个分组的。
    “40 00”其中前三位表示标志位,后面13位表示片段偏移地址。前三位中,目前只有两位有意义,标志字段中的最低位记为MF,MF=0表示这已是若干数据报片中的最后一个。标志字段中间的一位记为DF,DF=1表示“不要分片”。
    “80”这个字节是TTL(Time To Live),表示一个IP数据流的生命周期。
    “06”这个字节表示协议类型。在RFC790中有定义,6表示是TCP协议。
    “fb af”表示首部检验和,占16位。
    “c0 a8 be 88”表示源地址,也就是PC的IP地址,转换为十进制的IP地址是:192.168.190.136。
    “c0 a8 be 8 a”表示目的IP地址,转为十进制的IP地址是:192.168.190.138。
    2.2 利用Sniffer工具,分析TCP头的结构,并分析TCP的三次握手过程
    在这里插入图片描述
    抓包结束后,可以获得TCP头,根据TCP头结构对获得的TCP头进行分析
    在这里插入图片描述
     TCP包头占有20个字节,后55 53 45 52 20 61 61 0d 0a部分是可选项和数据部分。
    “00 15”表示目的端口号为21,可知用了FTP文件传输。
    “67 58 13 fd”表示数据包顺序号。
    “1f 21 fc 07”表示确认号。在此为不全是0,表示连接成功,有确认。
    “50 18”两字节中,前4位为头部长度,总共有28字节;中间六位为保留,都为0表示在TCP协议中没有用上;后面6位为000010,是重要的6个标志位,此时SYN=1,ACK=0,连接响应超时。
    “fa c8”表示窗口大小。
    “f5 dc”表示头效验和,占16字节。
    “00 00”表示紧急指针,此时没有,当且仅当URG同时被置为1才有效。
    TCP的三次握手过程
    在这里插入图片描述
    第一次握手:
    192.168.190.136发送位码SYN=1,随机产生SEQ number=1733825532的数据包到192.168.190.138,192.168.190.138由SYN=1知道192.168.190.136要求建立联机。
    在这里插入图片描述
    第二次握手:
    192.168.190.138收到请求后要确认联机信息,向192.168.190.136发送ACK number=1733825533,SYN=1,ACK=1,随机产生SEQ number=522320862的包。
    在这里插入图片描述
    第三次握手:
    192.168.190.136收到后检查ACK是否正确,即第一次发送的SEQ number+1,以及位码ACK是否为1,若正确,192.168.190.136会再发送ACK number=522320863,ACK=1,192.168.190.138收到后确认SEQ=SEQ+1,ACK=1则连接建立成功。
    在这里插入图片描述
    2.3 实现一个或几个加解密程序
代换密码:
package test;
import java.util.Scanner;

//加密
class Encryption{
   
public void Encryption() {
   
    char m;
    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;
            m = (char)(n + 97);
            System.out.print(m);
        	}}}}
//解密
class Decrypt{
   
public void Decrypt() {
   
    char m;
    System.out.println("请输入需要解密的密文:");
    Scanner input = new Scanner(System.in);
    String str2 = input.nextLine();
    System.out.println("请输入解密的密钥:");
    int k = input.nextInt();
    System
  • 1
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值