计算机网络安全大作业.docx
- 文档编号:5411608
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:10
- 大小:718.91KB
计算机网络安全大作业.docx
《计算机网络安全大作业.docx》由会员分享,可在线阅读,更多相关《计算机网络安全大作业.docx(10页珍藏版)》请在冰豆网上搜索。
计算机网络安全大作业
网络安全技术大作业
专业:
电子信息工程
姓名:
代张龙
学号:
200911513335
IP地址欺骗攻击
一、什么是IP地址欺骗攻击
IP地址欺骗是指行动产生的IP数据包为伪造的源IP地址,以便冒充其他系统或发件人的身分。
这是一种骇客的攻击形式,骇客使用一台计算机上网,而借用另外一台机器的IP地址,从而冒充另外一台机器与服务器打交道。
防火墙可以识别这种IP欺骗。
一般情况下,路由器在转发报文的时候,只根据报文的目的地址查路由表,而不管报文的源地址是什么,因此,这样就可能面临一种危险:
如果一个攻击者向一台目标计算机发出一个报文,而把报文的源地址填写为第三方的一个IP地址,这样这个报文在到达目标计算机后,目标计算机便可能向毫无知觉的第三方计算机回应。
比较著名的SQLServer蠕虫病毒,就是采用了这种原理。
该病毒(可以理解为一个攻击者)向一台运行SQLServer解析服务的服务器发送一个解析服务的UDP报文,该报文的源地址填写为另外一台运行SQLServer解析程序(SQLServer2000以后版本)的服务器,这样由于SQLServer解析服务的一个漏洞,就可能使得该UDP报文在这两台服务器之间往复,最终导致服务器或网络瘫痪。
二、IP地址欺骗攻击原理
所谓IP欺骗,无非就是伪造他人的IP地址,其实质就是让一台计算机来扮演另一台计算机,借以达到蒙混过关的目的。
IP欺骗利用了主机之间正常信任关系来发动的。
所谓信任关系就是网络上的两台计算机X和Y,Y可以利用远程登录工具,无需要口令验证就可以登录到X主机上,而登录的基础是X对Y主机IP的验证。
即X是否对Y的提供服务是基于对主机Y的IP地址的信任。
既然X、Y之间的信任关系是基于IP地址建立起来的,那么假如能够冒充Y的IP地址,就可以使rlogin登录上X,而不需要任何口令的验证。
假设现在有一个合法用户(1.1.1.1)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为1.1.1.1,并向服务器发送一个带有RST位的TCP数据段。
服务器接收到这样的数据后,认为从1.1.1.1发送的连接有错误,就会清空缓冲区中建立好的连接。
这时,如果合法用户1.1.1.1再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。
攻击时,伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务。
三、IP地址欺骗攻击的步骤
由于TCP是面向连接的协议,所以双方在正式传输数据以前,需要用“三次握手”来建立一个稳定的连接。
假设A、B两台主机进行通信,B首先发送带有SYN(是Synchronize,同步序列编号)标志的数据段通知A需要建立TCP连接,TCP的可靠性就是由数据包的多位控制字来提供。
其中最重要的是数据序列SYN和数据确认标志ACK。
B将TCP报头中的SYN设为自己本次连接的初始值(ISN)。
A收到B的SYN包后,会发送给B一个带有SYN+ACK标志的数据段,告知自己的ISN,并确认B发送来的第一个数据段,将ACK设置成为B的SYN+1。
B确认收到A的SYN+ACK数据包,将ACK设置成为A的SYN+1。
A收到B的ACK后,连接成功后,双方就可以正式传输数据了。
因此,IP欺骗攻击的基本步骤为:
(1)首先使被信任的主机的网络暂时瘫痪,以免对攻击造成干扰;
(2)然后连接到目标机的某个端口来猜测ISN基值和增加规律;
(3)接下来把源地址伪装成被信任主机,发送带有SYN标志的数据段请求连接。
(4)然后,黑客等待目标机发送SYN+ACK包给已经瘫痪的被信任主机,因为黑客这时看不到这个包。
(5)最后再次伪装成被信任主机向目标主机发送ACK,此时发送的数据段带有预测的目标主机ISN+1。
(6)连接建立发送命令。
四、影响IP地址欺骗攻击
IP地址欺骗是非常有益的,特别是在案件拒绝服务(DoS)攻击,如大量的信息被发送到目标计算机或系统没有肇事者关心的反应,目标系统。
这种类型的攻击,特别是有效的,因为攻击数据包,似乎即将从不同的来源,因此,肇事者是难以追查。
骇客使用的IP地址欺骗,经常利用随机选择的IP地址从整个频谱的IP地址空间的同时,一些更先进的骇客仅使用未经注册的部分IP地址范围。
IP地址欺骗,但是,是不那么有效,比使用僵尸网络为DoS攻击,因为它可以被监控互联网当局利用散射技术可以判断DoS攻击的基础上,有多少无效的IP地址使用的攻击。
不过,它仍然是一个可行的替代办法,为骇客的攻击。
IP地址欺骗,也是一个非常有用的工具,在网络的渗透和克服网络安全保密措施。
发生这种情况时,IP地址spoofers使用受信任的IP地址,内部网络,从而规避需要提供一个使用者名称或密码登录到该系统。
这类攻击通常是基于一组特定的主机控制(如rhosts)是不安全的配置。
五、IP地址欺骗攻击的防御
侵入过滤或包过滤传入的交通,从体制外的使用技术是一种有效方式,防IP地址欺骗,因为这种技术可以判断如果数据包是来自内部或外部的制度。
因此,出口过滤也可以阻止假冒IP地址的数据包从退出制度和发动攻击,对其他网络。
虽然IP欺骗攻击有着相当难度,但我们应该清醒地意识到,这种攻击非常广泛,入侵往往由这里开始。
预防这种攻击还是比较容易的,比如删除UNIX中所有的/etc/hosts.equiv、$HOME/.rhosts文件,修改/etc/inetd.conf文件,使得RPC机制无法应用。
另外,还可以通过设置防火墙过滤来自外部而信源地址却是内部IP的报文。
上层协议,如TCP连接或传输控制协议,其中序列号码是用来建立了一个安全的连接与其他系统也是一个有效的方法,防IP地址欺骗。
关闭源路由(松散和严格的)对您的网络路由器也可协助防止骇客利用欺骗的许多功能。
源路由是一个技术的广泛使用,在过去,以防止一个单一的网络故障造成的重大网络故障,但目前的路由协议互联网上的今天使得这一切,但不必要的。
基于BMP的信息隐藏技术原理
一、引言
在基于互联网的通信过程中,人们往往最担心的就是通信数据的安全性,在特殊的通信环境,如军事通信、金融通信等等,更是如此。
但是,由于互联网自身的特点,在通信过程中,信息可能会受到各种各样的无法预料的攻击。
这种情况相当危险。
但是,加入采用信息隐藏技术,即将重要信息做为秘密信息嵌入到看起来平常的介质中间如图片等,攻击者无从得知图片中含有秘密信息,因此则大大增强了网络通信的安全性。
近年来随着因特网的迅猛发展,网络成为最主要的信息传递渠道,然而网络传输的不安全性使信息极容易泄漏和被截获,网络传输的安全性日益成为人们关注的焦点,信息隐藏技术的诞生为解决这些问题提供了一个新的方向。
由于它具有良好的隐蔽性,含有重要信息的载体跟它实际的特征看起来没有任何区别,使得非法用户在截获到媒介时根本不怀疑媒介中含有隐藏信息。
信息隐藏技术已被广泛应用于版权保护、隐藏标识和安全不可见通信等领域。
信息隐藏技术主要是利用两个特点:
一是利用数字载体本身存在很大的冗余性将信息嵌入到其中进行秘密传递;二是利用人的视觉和听觉对某些信息实现屏蔽。
本文介绍了一种基于BMP图像隐藏文本文件的算法,将文本文件隐藏在一幅24位的BMP图片之中,嵌入了文本信息的BMP图片和原始图片在外观上没有任何区别,并可以正确的从中提取出所隐藏的文本信息。
二、算法原理
BMP是Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。
一个标准BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。
1、数据结构
①:
BMP文件头
BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置信息。
偏移量(相对本结构)
00H
02H
06H
08H
0AH
大小(byte)
2
4
2
2
4
数据
位图类型
位图大小
保留(0)
保留(0)
位图数据起始位置
②:
位图信息头
BMP位图信息头数据用于说明位图的尺寸等信息。
偏移量(相对本结构)
00H
04H
0CH
0EH
10H
大小(byte)
4
8
2
2
36
数据
本结构大小
位图宽与高
目标设备的级别
每个像素所需位数
其他
③:
颜色表
颜色表用于说明位图中的颜色,它有若干表项(RGBQUAD类型的结构),每个表项的结构如下:
偏移量(相对本结构)
00H
01H
02H
03H
大小(byte)
1
1
1
1
数据
蓝色亮度
绿色亮度
红色亮度
保留(0)
颜色表中RGBQUAD结构的个数由位图信息头中每个像素所需位数(biBitCount)决定:
当biBitCount=1,4,8时,分别有2,16,256个表项;
当biBitCount=24时,没有颜色表项。
④:
图形数据
图形数据记录的是位图的每个像素的值,记录顺序是在扫描行内从左到右,扫描行之间是从下到上。
位图一个像素值所占的字节数:
当位图为双色时,每个像素所需位数=1,8个像素占一个字节;
当位图为16色时,每个像素所需位数=4,2个像素占一个字节;
当位图为256色时,每个像素所需位数=8,1个像素占一个字节;
当位图为64K色时,每个像素所需位数=24,1个像素占三个字节;
Windows规定一个扫描所占的字节数必须是4的倍数(即以long为单位),不足的以0填充。
(2)存储算法
BMP文件通常是不压缩的,所以它们通常比同一幅图像的压缩图像文件格式大很多,例如,一个800×600的24位几乎占据1.4MB空间。
图像所浏览器读取基于字节的ASCII值计算像素的颜色,然后从调色板中读出相应的值。
算法的核心思想是将文本信息以比特流的形式嵌入到原始BMP图像各像素点最不重要的位(LeastSignificantBits,LSB,即最低有效位)上,这可充分保证嵌入的信息字节不可见。
对于由连续像素组成的图像(本文主要针对24位的BMP图片),每个像素由R(红色)、G(绿色)、B(蓝色)三个颜色分量组成,根据亮度公式I=0.3R+0.59G+0.11B可以得知:
人眼对于图像中的绿色分量最为敏感,对蓝色分量最不敏感。
绿色分量每改变一个单位对人眼的刺激效果,与蓝色分量改变5个、红色分量改变2个单位对人眼的刺激效果是等价的。
折算为二进制,对红色分量改变低两位、对绿色分量改变最低位或对蓝色分量改变低三位时,不会在视觉上有明显的差异。
因此可在描述原始图像每个像素的三个字节中获取2+1+3=6个比特的空间,用于存储文本信息的比特流。
按此比率,一幅大小为L的24位BMP图像最大可以得到的文本信息的存储空间为(L-54)×6/(3×8),大约是位图长度的1/4。
根据上面的思路,文本信息的嵌入可以用下列过程所示:
原始图像字节(四个连续像素):
像素1:
R7R6R5R4R3R2R1R0G7G6G5G4G3G2G1G0B7B6B5B4B3B2B1B0
像素2:
R7R6R5R4R3R2R1R0G7G6G5G4G3G2G1G0B7B6B5B4B3B2B1B0
像素3:
R7R6R5R4R3R2R1R0G7G6G5G4G3G2G1G0B7B6B5B4B3B2B1B0
像素4:
R7R6R5R4R3R2R1R0G7G6G5G4G3G2G1G0B7B6B5B4B3B2B1B0
待嵌入的文本信息的三个连续字节:
D7D6D5D4D3D2D1D0E7E6E5E4E3E2E1E0F7F6F5F4F3F2F1F0
将待嵌入的文本比特流嵌入到原始图像每个像素的R、G、B分量的冗余位,即R分量的低两位,G分量的最低位,B分量的低三位,嵌入后的原始图像字节就变成:
像素1:
R7R6R5R4R3R2D7D6G7G6G5G4G3G2G1D5B7B6B5B4B3D4D3D2
像素2:
R7R6R5R4R3R2D1D0G7G6G5G4G3G2G1E7B7B6B5B4B3E6E5E4
像素3:
R7R6R5R4R3R2E3E2G7G6G5G4G3G2G1E1B7B6B5B4B3E0F7F6
像素4:
R7R6R5R4R3R2F5F4G7G6G5G4G3G2G1F3B7B6B5B4B3F2F1F0
由以上可以看出,原始图像的4个完整像素(12个字节)恰好能容纳3个完整的文本信息字节,算法的实质就是把三个字节的文本信息比特流按照2、1、3的顺序替换掉原始图像的每个字节的低2、1、3位。
因此对于位掩模和移位处理等处理,均可以通过预先设定的数组来方便的实现。
三、算法的C++实现
文本信息嵌入的部分代码如下:
//指向DIB的指针
LPBYTElpDIB;
LPBYTElpDIBBits;
//读取DIB图像
m_hDIB=m_clsDIB.ReadDIBFile(bmpfile);
lpDIB=(LPBYTE):
:
GlobalLock((HGLOBAL)m_hDIB);
//找到DIB图像像素起始位置
lpDIBBits=m_clsDIB.FindDIBBits(lpDIB);
//DIB的宽度和高度
LONGlWidth=m_clsDIB.DIBWidth(lpDIB);
LONGlHeight=m_clsDIB.DIBHeight(lpDIB);
//计算图像每行的字节数
LONGlLineBytes=WIDTHBYTES(lWidth*24);
//从待隐藏的文本文件中获取数据信息
CFiletfile;
tfile.Open(txtfile,CFile:
:
modeReadWrite);
intnFileLen=tfile.GetLength();
unsignedchar*lpBuf;
lpBuf=newunsignedchar[nFileLen];
nFileLen=tfile.Read(lpBuf,nFileLen);
m_nFileLen=nFileLen;
tfile.Close();
//填冗余位时的移位序列
intmove1[13]={6,5,2,0,7,4,2,1,-2,6,4,3,0};
//待隐藏文本文件的字节掩码序列
unsignedcharmask1[13]={192,32,28,3,128,112,12,2,1,192,48,8,7};
//位图文件的字节掩码序列
unsignedcharmask2[13]={252,254,248,252,254,248,252,254,251,252,252,254,248};
//为1时pointer1指针加一
intadd1[13]={0,0,0,1,0,0,0,0,1,0,0,0,1};
//为1时pointer2指针加一
intadd2[13]={1,1,1,1,1,1,1,1,0,1,1,1,1};
intpointer1=0;
intpointer2=0;
intpointer3=0;
while(pointer1<=nFileLen)
{
//将文本的比特流嵌入到载体位图
if(move1[pointer3]>0)
*(lpDIBBits+pointer2)=(*(lpDIBBits+pointer2)&
mask2[pointer3])|((lpBuf[pointer1]&mask1[pointer3])>>move1[pointer3]);
else
*(lpDIBBits+pointer2)=(*(lpDIBBits+pointer2)&
mask2[pointer3])|((lpBuf[pointer1]&mask1[pointer3])< if(add1[pointer3]==1) pointer1++; if(add2[pointer3]==1) pointer2++; pointer3++; pointer3%=13; } deletelpBuf; 要从图像中恢复嵌入的文本信息,则是与上述相反的过程,从每个像素的R、G、B分量的分别取出低2位、最低位、低3位,然后重新组成文件即可,实现算法如下: //隐藏的文本信息长度 intnFileLen=m_nFileLen; LPBYTElpDIB; LPBYTElpDIBBits; //读取DIB图像 m_hDIB=m_clsDIB.ReadDIBFile(bmpfile); lpDIB=(LPBYTE): : GlobalLock((HGLOBAL)m_hDIB); //找到DIB图像像素起始位置 lpDIBBits=m_clsDIB.FindDIBBits(lpDIB); //DIB的宽度高度 LONGlWidth=m_clsDIB.DIBWidth(lpDIB); LONGlHeight=m_clsDIB.DIBHeight(lpDIB); //计算图像每行的字节数 LONGlLineBytes=WIDTHBYTES(lWidth*24); unsignedchar*lpBuf1; unsignedchar*lpBuf2; lpBuf1=newunsignedchar[lLineBytes*lHeight]; lpBuf2=newunsignedchar[lLineBytes*lHeight]; memset(lpBuf1,0,lLineBytes*lHeight); memset(lpBuf2,0,lLineBytes*lHeight); //拼合文件信息字节时的移位序列 intmove2[13]={6,5,2,0,7,4,2,1,-2,6,4,3,0}; //位图文件字节的掩码序列 unsignedcharmask2[13]={3,1,7,3,1,7,3,1,4,3,3,1,7}; //为1时pointer1指针加一 intadd1[13]={0,0,0,1,0,0,0,0,1,0,0,0,1}; //为1时pointer2指针加一 intadd2[13]={1,1,1,1,1,1,1,1,0,1,1,1,1}; intpointer1=0; intpointer2=0; intpointer3=0; intpointer4=0; //提取文本信息 while(true) { if(move2[pointer3]>0) lpBuf2[pointer1]|=(*(lpDIBBits+pointer2)&mask2[pointer3])< else lpBuf2[pointer1]|=(*(lpDIBBits+pointer2)&mask2[pointer3])>>(move2[pointer3]*(-1)); if(add1[pointer3]==1) { lpBuf1[pointer4]=lpBuf2[pointer1]; pointer4++; //数据提取完毕,跳出循环 if(pointer4>nFileLen) break; pointer1++; } if(add2[pointer3]==1) pointer2++; pointer3++; pointer3%=13; } tfile.Write(lpBuf1,nFileLen);//将提取出的数据写入文件 : : GlobalUnlock((HGLOBAL)m_hDIB); deletelpBuf1; deletelpBuf2; 四、文本嵌入、检测效果图 图(a)为原始图片,图(b)为嵌入了文本的图片。 人眼几乎分辨不出来两幅图片的差异。 (a)原始图像(b)嵌入了文本信息的图像
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 网络安全 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)