计算机网络安全与管理实验(2)

2019-02-17 18:06

};

return(sock); }

int Set_Promisc(char *interface, int sock ) { struct ifreq ifr;

//把我们网络设备的名字填充到ifr结构中 strncpy(ifr.ifr_name, interface,strnlen(interface)+1);

//获取借口标志

if((ioctl(sock, SIOCGIFFLAGS, &ifr) == -1)) {

perror(\ exit(0); }

printf(\

perror(\ //在我们成功的获取接口标志后把他设置成混杂模式 ifr.ifr_flags |= IFF_PROMISC;

if (ioctl (sock, SIOCSIFFLAGS, &ifr) == -1 ) {

perror(\ exit(0); }

printf(\ return(0); }

/*************************headers.h**************************/ /*structure of an ip header*/ struct ip {

unsigned int ip_length:4; /*little-endian*/ unsigned int ip_version:4; unsigned char ip_tos;

unsigned short ip_total_length; unsigned short ip_id; unsigned short ip_flags; unsigned char ip_ttl;

unsigned char ip_protocol; unsigned short ip_cksum;

unsigned int ip_source; unsigned int ip_dest; };

6

/* Structure of a TCP header */ struct tcp {

unsigned short tcp_source_port; unsigned short tcp_dest_port; unsigned int tcp_seqno; unsigned int tcp_ackno;

unsigned int tcp_res1:4, /*little-endian*/ tcp_hlen:4, tcp_fin:1, tcp_syn:1, tcp_rst:1, tcp_psh:1, tcp_ack:1, tcp_urg:1, tcp_res2:2;

unsigned short tcp_winsize; unsigned short tcp_cksum; unsigned short tcp_urgent; };

/*********************EOF***********************************/ #include〈stdio.h〉

#include〈sys/socket.h〉 #include〈netinet/in.h〉 #include〈arpa/inet.h〉 struct IP{

unsigned int ip_length:4;

unsigned int ip_version:4; unsigned char ip_tos; unsigned short

ip_total_length; unsigned short ip_id;

unsigned short ip_flags; unsigned char ip_ttl;

unsigned char ip_protocol; unsigned short ip_cksum; unsigned int ip_source ; unsigned int ip_source; }; struct tcp{

unsigned short tcp_source_port; unsigned short tcp_dest_port; unsigned short tcp_seqno;

7

unsigned int tcp_ackno; unsigned int tcp_res1:4; tcp_hlen:4 tcp_fin:1, tcp_syn:1, tcp_rst:1, tcp_psh:1, tcp_ack:1, tcp_urg:1, tcp_res2:2;

unsignd short tcp_winsize; unsigned short tcp_cksum; unsigned short tcp_urgent; };

int main() {

int sock,bytes_recieved,fromlen; char buffer[65535]; struct sockaddr_in from; struct ip ip; struct tcp *tcp;

sock=socket(AF_INET,SOCK_RAW,IPPROTO_TCP);

while(1) {

fromlen=sizeof from;

bytes_recieved=recvfrom(sock,buffer,sizeofbuffer,0,(struct sockaddr *)&from,&fromlen);

print(\

printf(\ ip=(struct ip *)buffer;

printf(\ print(\

tcp=(struct tcp *)(buffer + (4*ip->ip_iplength));

printf(\port ::: %d\\n\ printf(\prot ::: %d\\n\

如何防止SNIFF

防止sniff最有效的手段就是进行合理的网络分段,并在网络中使用交换机和网桥,在理想的情况下使每一台机器都拥有自己的网络段,当然这会使你的网络建设费用增加很多,所以你可以尽量使相互信任的机器属于同一个网段,使他们互相之间不必担心sniff的存在。并在网段于网段间进行硬件屏障。你也可以使用加密技术对你在网络中传送的敏感数据如户ID或口令,你的银行帐号,商业机密等进行加密,你可以选用SSH等加密手段。为了防止ARP欺骗,你可以使用永久的ARP缓存条目,反正上面的攻击手段和原理你也看了,你就反过来想想该

8

怎么办好了。不过有盾必有矛,平时的安全意识才是最重要的。

实验2 实现加解密程序

一、实验要求与目的

1.熟悉加密、解密的算法;懂得加密在通信中的重要作用; 2.熟悉密码工作模式;

3.使用高级语言实现一个加密、解密程序。 二、实验内容

1.详细描述加密、解密算法。可选算法包括DES、RSA等。 2.使用密码工作模式ECB、CBC、CFB、OFB、CTR。 3.调试并通过该程序。 三、加密解密程序流程图 64bit密钥 输入 64bit明文 压缩型换位PC-1 初始换位 16轮迭代运算: 密钥等分,密钥移 48bitKi 位,密钥选取三步nn-1L = R; 循环执行。 子密钥换位表PC-2 nn-1 n-1n R = L⊙f(R,K) 经以上16次迭代分 加密变换 别得到16个子密钥 逆初始换位 64bit密文 输出

9

实验2、古典密码学实验

1. 实验目的

(1) 通过本实验简要了解密码学的基本知识。 (2) 了解古典密码学的加密方法。 (3) 具体掌握一种古典加密方法。

2. 实验原理

2.1 密码学简介

密码学(cryptology)是研究密码系统或通信安全的一门科学。它主要包括两个分支,即密

码编码学(cryptography)和密码分析学(crypt analytics)。密码编码学的主要目的是寻求保证消息保密性或认证性的方法,密码分析学的主要目的是研究加密消息的破译或消息的伪 造。采用密码技术可以隐蔽和保护需要保密的消息,使未授权者不能提取信息。被隐蔽的消 息称作明文(plaintext),隐蔽后的消息称作密文(ciphertext)或密报(cryptogram)。将明文变换成密文的过程称作加密(encryption),其逆过程,即由密文恢复出原明文的过程称作解密(decryption)。根据密钥的特点,密码体制分为对称和非对称密码体制(symmetric 和

asymmetriccryptosystem)两种。对称密码体制又称单钥(one-key)或私钥(private key)或传统(classical)密码体制,非对称密码体制又称双钥(two-key)或公钥(public key)密码体制。在私钥密码体制中,加密密钥和解密密钥是一样的或彼此之间容易相互确定。按加密方式又会将私钥密码体制分为流密码(stream cipher)和分组密码(block cipher)两种。在流密码中,将明文消息按字符逐位地加密。在分组密码中,将明文消息分组(每组含有多个字符),逐组地进行加密。在公钥密码体制中,加密密钥和解密密钥不同,从一个难于推出另外一个,可将加密和解密能力分开。

2、古典密码学

本节主要介绍几种古典密码体制,虽然这些密码大都比较简单而且容易破译,但研究这 些密码的设计原理和分析方法对于理解、设计和分析现代密码是十分有益的。 代换密码和置换密码

令A 表示含N 个“字母”或“字符”的明文字母表,例如,可以是普通的英文字母A~Z,Y 也可以是数字、空格、标点符号或任何可以表示明文消息的符号。因此可以将A 抽象地表 示为一个整数集ZN={0,1,...,N-1}。在加密时通常将明文消息划分成长为L 的消息单元, 称为明文组,以m 表示,如m=(m0,m1,…,mL-1),ml∈ZN,0≤l≤L-1。M 也称作L-报文,它是 定义在ZN

L 上的随机变量,ZN

L=ZN*ZN*…*ZN(L 个)={m=(m0,m1,…,mL-1)|ml∈ZN,0≤l≤L-1}。

L=1 为单字母报(1-gram),L=2 为双字母报(bigrams),L=3 为三字母报(trigrams)。明 文空间P=ZN L.

10


计算机网络安全与管理实验(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:其年级上册第四单元教案 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: