【IT168 技术】网络已经遍及到我们的身边每一寸土地上,我们在充分使用网络带给我们便利的同时。安全问题也日趋突出。不知道大家以前是怎么加强系统的安全性的。那我想无非也就是安装一些杀毒防毒软件,或者是一些简易防火墙等。但这些东西并不能足以保证网络的安全性。因为网络太脆弱,太危险了!我们都知道现在的网络使用的都是TCP/IP,而TCP/IP诞生于二三十年前,也就是上个世纪未,在那个时候,人们在发明TCP/IP的时候,在发明internet的时候,只是单纯的考虑了网络的连接性,怎么便于连接,也就是咱们现在所说的网络互连性。并没有考虑安全性,因为当前人们并没有想到当时的internet能够在2-30年以后的今天能够如此普及,所以从网络本身来说,从硬件到软件都是不安全的,因为本身设计的时候,就没有把安全性考虑进去,而且随便网络的发展,网络上的闲人也是越来越多,病毒,蠕虫泛滥,据测试现在一个病毒从发明出来到遍步全球的任意一个脚落只需要30秒的时间。而且攻击事件越来越多,攻击方法越来越多,有可能几年前黑客入侵的方法就那么几种,现在随着网络功能的增加,随着网络的普及,攻击的方法也是越来越多。而且现在有的黑客网站也会提供一些简单的攻击方法。那么许多人对于黑客入侵也比较感兴趣。能攻击一下别人很有意思,能被别人攻击更有意思!
▲ 我是黑客!
黑客常用的攻击手段:
黑客常用的攻击手段可以分为网络监听、数据篡改、欺骗、中间人攻击、密码破解和缓冲区溢出。我们从一些黑客网站看到的一些软件或是资料中所介绍的攻击方法也无非就这么多,下面我们来分别介绍一下:
网络监听:我们知道数据在网线上进行传输的时候,传输的应该是01的组合,也就是01的字符。特别是在以太网中,也就是在我们现在所说的局域网中,在这种网络中如果A计算机想给B计算机发一个消息,发一个数据,虽然从感觉上看,这个数据包是从A机传到B上,是一个点到点的数据传输,但实际上,这个数据包从A机发出以后。流到网线之后,这个数据实际上并不是点到点的直接到达B机,它很有可能是同时到达了网络中的所有计算机,这个网络中指的是局域网。然而为什么只有B机能收到,是因为数据包中有相应的目的地址,每一个机器收到相应的数据包后都会做一个判断,如果是自己的就收下,如果不是自己的就丢弃,但我们说这是理想状态,不是自己的就丢弃,那如果对方就不丢弃怎么办?我就安装一个网络监听软件如 eth sniffer 网络监视器等等,又称为网络嗅探器,这种软件可以抓到所有流到我这个网卡上的所有数据包。不管是不是真正发给我的,只要流经我这个网卡,我就可以把它抓出来,并加以分析,就可以得到一些相关的数据。那如果这两台计算机之间发送数据包的时候没有加密,那么就是相当危险的。这就是咱们所说的网络监听。
数据篡改,这个数据篡改应该在网络监听的基础之上来实现的。所谓数据篡改是指先监听网络上的数据,然后把网络上的数据抓下来之后,改成其他的数据。这种攻击方式就其发送方和接收方来说可能根本就不知道发生了篡改,以为你发给我,我也收到了。以为就OK了,以为就是他们原始发送的数据包。这就是所谓的数据篡改,如果数据篡改在某些情况下进行极端的应用,那么会有很可怕的后果。
欺骗: 那么欺骗是什么意思?欺骗其实是在做攻击的时候一种附属的手段。比如说我现在发送一个恶意数据包给一台机器,大家知道TCP/IP在封装数据包的时候会把每一个数据包的包头部分都会封装上一个目标地址和源地址。那么当我发一个攻击数据包的时候我发给了攻击计算机,那如果目标计算机接收到这个攻击数据包之后,通过分析数据包可以知道这个数据包是谁发的。依此可以知道是谁在攻击它,那么现在我们如果在发送攻击数据包的时候,我们把源地址改为别人的地址,那么对方再收到这个数据包就认为是别人在攻击它,而不是我们。当然也可以改成一个根本就不存在的地址。那么即时接收方有能力,也可以分析出数据包,但仍然不知道是谁在攻击它。分析的结果也是错的。当然欺骗也有很多种,如IP地址欺骗,ARP欺骗,DNS欺骗,但是大致原理都类似。
中间人攻击:是利用网络监听和数据篡改结合使用的一种攻击方法,这种攻击方法是在源和目标机器之间再放入一台机器,也就是黑客所使用的计算机,这台计算机能够监视源和目标机器之间所发送和接收的数据。不但能够监听,还能进行篡改。在非对称加密时会使用的一种攻击方法。
密码破解:这应该是黑客最愿意用的一种方法。我们知道现在的服务器操作系统,如果我们不知道对方的密码,肯定是无法进行操作的,如果我们知道某个用户的密码,就可以进行的操作,但我们最愿意知道的肯定还是管理员密码。一旦我们知道了管理员蜜码,我们就想怎么操作,就怎么操作了,比如,给他关机,放一个木马文件,删除文件,格式化磁盘等等。所以做为黑客肯定是最想知道对方的管理员密码,而破解密码我们都知道,现在的密码一般都满足复杂性要求,强密码,所以现在黑客也知道这一点,他们会采用变通的方法,如进行监听http密码FTP密码 SMTP密码等等,默认情况下这些密码都是不加密的,不管你的密码多复杂,我都能轻易的监听到。那么只要监听到这些密码就可以进行相应的操作。
缓冲区溢出:这种攻击方法和结合程序或是软件的漏洞来进行,我们知道每一个软件在设计的时候都会在缓冲区中存放相应的数据,在调用时直接从缓冲区中调用即可,我们知道缓冲区是内存中的区域,比硬盘的读取速度要快,所在程序设计时会把一些数据放在缓冲区中。每一个程序都会定义缓冲区的大小,但是一些程序在定义缓冲区大小的时候,因为考虑不周到,由于疏忽,由于大意,在定义缓冲区的时候没有做过很严格的限制,这样黑客会把他们的代码放到缓冲区中,并且代码的长度会大于缓冲区的容量,一个大的东西放到一个小空间里面,那么就会溢出,所谓就是不够地了,就会溢出到相邻的缓冲区中,那么这代码是经过精心设计的话,那么黑客就能完全控制对方的计算机。这个问题不是由于网络导致的,也不是由于协议的问题,而是由于程序的问题,软件设计的问题。
这六种手段应该是黑客最常用的攻击手段。前五种是都能利用我们今天所讲的IPSEC来解决。
下面我们就来看一下如何通过IPSEC来避免这五种攻击。但我们还需要先介绍攻击方法再来看看怎么对付这几种攻击,就像有人说如果想学会打架,必须先学会挨打一样。
网络安全中的四个安全标准:
在网络安全领域存在以下几个通用的标准:数据保密性、数据完整性、认证以及不可否定性。
这四点大家听起来有点抽象,我们来一一讲解,只要大家能保证你的网络能做到这四个那么你的网络就是安全的,你的系统也是安全的。
我们首先来看第一点:
数据保密性:也就是咱们所说的数据加密,这一点大家比较熟悉,就是保证网络上传输的数据是加密以后的密文。加密方式也分为对称加密、非对称加密等,只是加密不是咱们本文介绍的重点,在此不做详细介绍,以后有机会我们再单独讨论。
数据完整性:保证数据的一致性,发送端发送的数据和接收端所接收的数据是一致的。如何保证数据的完整性,在OS中一般使用的是HASH算法,很有意思的一种算法,可以保证任意一个字符通过这个算法运算之后得到一个固定长度的字符串,一般是128,也就是说不管你的字符串有多长或有多短,只要经过HASH一运算那么就会得到一个128位长度的一个字符串,并且这个算法是单向的,只能把原始数据通过HASH算成128位的一个字符串,反过来,不可能将这个128位的字符串再反算成原始字符,这是达不到的。相当于,我通过运算知道咱们的总年龄400岁,让你反推出每一个人。不可能的。这是算法所决定的。它就能保证数据的完整性。如果A机给B机发一个数据包,我不怕别人看到,我就怕别人给改了,那么我就可以使用HASH算法,因为你只要一改这个值就不一样了。我首先通过HASH算一下,连同文件一起发给对方,对方收到一下也HASH一下,如果一样就说明没有被篡改。如下图所示:
▲ HASH值
上图就是刚刚推出的Win8预览版各种语言的IOS所对应的hash值。如果你下载的文件hash值与此不同,则说明,此文件是不安全的,被篡改过。
认证:对于对方的身份进行审核。如过年回家的时候,火车站经常有警察来抽查身份证,看你是不是中国的良民。出示一下良民证。我们在使用某个计算机的时候也是如此,计算机怎么知道你是不是一个合法用户,一般是通过输入用户名,密码,如果你输入一个有效的用户名,密码,计算机就认为你是一个合法用户。否则就不让你用。回家开门,也是如此。。。。现在很多了,声音身份验证,指纹身份验证,视网膜验证等等。。。。。不同的验证方式用于不同的场合。门禁系统可以使用指纹,密码等。也可以应用于计算机登录系统,远程访问系统等等。但不见得任何场合都行,如DNA验证,只适合于亲子验证,不能使用于开机登录,不然我每次登录,还得把手划个口,滴一口血进去!然后验证没问题了,再可以登录。
不可否定性:说明我干了某件事,我想否定这件事不是我干的,这是不行的。这就叫不可否写性,如干了一件坏事,想否认,不可能的。比如银行系统,你取了一万块钱,取出来之后你说你没取,钱没了,这是不行的。因为后台数据库已经发生了更改。
这是我们在网络安全中所涉及到的四大标准,如果保证了这四大标准应该说你的系统就是安全的。没有问题的,关键是怎么保证你的系统能做到这四点。这就要用到咱们所讨论的正题IPSEC。