计算机网络安全

安全攻击有哪些

网络安全攻击主要分为被动攻击和主动攻击两种。

  • 被动攻击:攻击者窃听和监听数据传输,从而获取到传输的数据信息,被动攻击主要有两种形式:消息内容泄漏攻击和流量分析攻击。由于攻击者并没有修改数据,使得这种攻击类型是很难被检测到的。
  • 主动攻击:攻击者修改传输的数据流或者故意添加错误的数据流,例如假冒用户身份从而得到一些权限,进行权限攻击。
    • 篡改:攻击者故意篡改网络上传送的报文。这里也包括彻底中断传送的报文,甚至是把完全伪造的报文传送给接收方。
    • 恶意程序:计算机病毒,计算机蠕虫,特洛伊木马,逻辑炸弹,流氓软件。
    • 拒绝服务DoS:指攻击者向互联网上的某个服务器不停地发送大量的分组,使该服务器无法提供正常服务,甚至完全瘫痪。

ARP攻击

在ARP的解析过程中,局域网上的任何一台主机如果接收到一个ARP应答报文,并不会去检测这个报文的真实性,而是直接记入自己的ARP缓存表中。并且这个ARP表是可以被更改的,当表中的某一列长时间不使用,就会被删除。ARP攻击就是利用了这一点,攻击者疯狂发送ARP报文,其源MAC地址为攻击者的MAC地址,而源IP地址为被攻击者的IP地址。通过不断发送这些伪造的ARP报文,让网络内部的所有主机和网关的ARP表中被攻击者的IP地址所对应的MAC地址为攻击者的MAC地址。这样所有发送给被攻击者的信息都会发送到攻击者的主机上,从而产生ARP欺骗。通常可以把ARP欺骗分为以下几种。

  • 洪泛攻击
    • 攻击者恶意向局域网中的网关,路由器和交换机等发送大量ARP报文,设备的CPU忙于处理ARP协议,而导致难以相应正常的服务请求。其表现通常为:网络中断或网速很慢。
  • 欺骗主机
    • 这种攻击方式也叫仿冒网关攻击。攻击者通过ARP欺骗使得网络内部被攻击主机发送给网关的信息实际上都发送给了攻击者,主机更新的ARP表中对应的MAC地址为攻击者的MAC。当用户主机向网关发送重要信息时,该攻击方式使得用户的数据存在被窃取的风险。
  • 欺骗网关
    • 该攻击方式和欺骗主机的攻击方式类似,不过这种攻击的欺骗对象是局域网的网关,当局域网中的主机向网关发送数据时,网关会把数据发送给攻击者,这样攻击者就会源源不断地获得局域网中用户的信息。该攻击方式同样会造成用户数据外泄。
  • 中间人攻击
    • 攻击者同时欺骗网关和主机,局域网的网关和主机发送的数据最后都会到达攻击者这边。这样,网关和用户的数据就会泄漏。
  • IP地址冲突
    • 攻击者对局域网中的主机进行扫描,然后根据物理主机的MAC地址进行攻击,导致局域网内的主机产生IP冲突,使得用户的网络无法正常使用。

对称密钥密码体制

对称密钥密码体制,即加密密钥与解密密钥使用相同的密码体制

数据加密标准DES属于对称密钥密钥体制。

DES是一种分组密码,在加密前,先对整个的明文进行分组。每一组为64位长的二进制数据,然后对每一个64位的二进制数据进行加密处理,产生一组64位密文数据。最后将各组密文串接起来,即得出整个的密文。使用的密钥占有64位。

DES的保密性取决于对密钥的保密,而算法是公开的

公钥密码体制

公钥密码体制使用不同的加密密钥与解密密钥。

公钥密码体制的产生主要有两个方面的原因,一是由于对称密钥密码体制的密钥分配问题,而是由于对数字签名的需求

在对称密钥密码体制中,加解密的双方使用的是相同的密钥。但怎么样才能做到这一点呢?一种是事先约定,另一种是用信使来传送。在高度自动化的大型计算机网络中,用信使来传送密钥显然不合适。如果事先约定密钥,就会给密钥的管理和更换带来极大的不便。若使用高度安全的密钥分配中心KDC(Key Distribution Center),也会使得网络成本增加。

对数字的强烈需要也是产生公钥密码体制的一个原因。在许多应用中,人们需要对纯数字的电子信息进行签名,表明该信息确实是某个特定的人产生的。

在公钥密码体制中,加密密钥PK(public Key,即公钥)是向大众公开的,而解密密钥SK(secret key,即密钥)则是需要保密的。加密算法E和解密算法也都是公开的

公钥密码体制的加密和解密过程有如下特点:

  1. 密钥对产生器产生出接收者B的一对密钥:加密密钥 P K B PK_B PKB和解密密钥 S K B SK_B SKB。发送者A所用的加密密钥 P K B PK_B PKB就是接收者B的公钥,它向公众公开。而B所用的解密密钥 S K B SK_B SKB就是接收者B的私钥,对其他人都保密。

  2. 发送者A用B的公钥 P K B PK_B PKB通过E运算对明文X加密,得出密文Y,发送给B。
    Y = E P K B ( X ) Y = E_{PK_B}(X) Y=EPKB(X)
    B用自己的私钥 S K B SK_B SKB通过D运算进行解密,恢复出明文,即
    D S K B ( Y ) = D S K B ( E P K B ( X ) ) = X D_{SK_B}(Y)=D_{SK_B}(E_{PK_B}(X)) = X DSKB(Y)=DSKB(EPKB(X))=X

  3. 虽然在计算机上可以容易的产生成对的 P K B PK_B PKB S K B SK_B SKB,但从已知的 P K B PK_B PKB实际上不可能推导出 S K B SK_B SKB,即从 P K B PK_B PKB S K B SK_B SKB是计算上不可能的。

  4. 虽然公钥可用来加密,但却不能用来解密,即
    D P K B ( E P K b ( X ) ) ≠ X D_{PK_B}(E_{PK_b}(X))\neq X DPKB(EPKb(X))=X

  5. 先后对X进行D运算和E运算或进行E运算和D运算,结果都是一样的:
    E P K B ( D S K B ( X ) ) = D S K B ( E P K B ( X ) ) = X E_{PK_B}(D_{SK_B}(X))=D_{SK_B}(E_{PK_B}(X)) = X EPKB(DSKB(X))=DSKB(EPKB(X))=X

请注意,通常都是先加密然后再解密。但仅从运算的角度来看,D运算和E运算的先后顺序可以是任意的。对某个报文进行D运算,并不表明是要对其解密

在这里插入图片描述

公开密钥与对称密钥在使用通信信道方面有很大的不同。在使用对称密钥时,由于双方使用同样的密钥,因此在通信信道上可以进行一对一的双向保密通信,每一方既可以用此密钥加密明文,并发送给对方,也可接收密文,用同一密钥对密文解密。这种保密通信仅限于持有此密钥的双方(如再有第三方就不保密了)。但在使用公开密钥时,再通信信道上可以是多对一的单向保密通信。例如在图7-3中,可以有很多人同时持有B的公钥,并各自用此公钥对自己的报文加密后发送给B。只有B才能够用其私钥对收到的多个密文一一进行解密。但使用这对密钥进行反方向的保密通信则是不行的。

任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量,而不是简单的取决于加密的体制

数字签名

数字签名必须保证能够实现以下三点功能:

  1. 接收者能够核实发送者对报文的签名,也就是说,接收者能够确信该报文的确是发送者发送的。其他人无法伪造对报文的签名,这叫做报文鉴别
  2. 接收者确信收到的数据和发送者发送的完全一样而没有被篡改过。这叫做报文的完整性
  3. 发送者不能抵赖对报文的签名。这叫做不可否认性

为了进行签名,A用其私钥 S K A SK_A SKA对报文X进行D运算。D运算本来叫做解密运算。可是,还没有加密怎么就进行解密呢?因为D运算只是得到了某种不可读的密文。A把经过D运算得到的密文传送给B。B为了核实签名,用A的公钥进行E运算,还原出明文X。请注意,任何人用A的公钥 P K A PK_A PKA进行E运算都可以得出A发送的明文。可见图7-4所示的通信方式并非为了保密,而是为了进行签名和核实签名,即确认此明文的确是A发送的。

在这里插入图片描述

数字签名为什么具有上述的三点功能。

因为除A外没有别人持有A的私钥 S K A SK_A SKA,所以除A外没有别人能产生密文 D S K A ( X ) D_{SK_A}(X) DSKA(X)。这样,B就相信报文X是A签名发送的,这是报文鉴别的功能。同理,其他人如果篡改过报文,但由于无法得到A的私钥 S K A SK_A SKA来对X进行加密,那么B对篡改过的报文进行解密后,将会得出不可读的报文,就知道收到的报文被篡改过。这样就可以保证报文的完整性。若A要抵赖曾发送报文B,B可以把 X X X D S K A ( X ) D_{SK_A}(X) DSKA(X)出示给进行公证的第三者。第三者很容易用 P K A PK_A PKA去证实A确实发送 X X X给B。这就是不可否认的功能。

但上述过程仅对报文进行了签名,对报文X本身却未保密。因为截获到密文 D S K A ( X ) D_{SK_A}(X) DSKA(X)并直到发送者身份的任何人,通过查阅手册即可获得发送者的公钥 P K A PK_A PKA,因而能直到报文的内容。若采用图7-5的方法,则可同时实现秘密通信和数字签名。图中 S K A SK_A SKA S K B SK_B SKB分别为A和B的私钥,而 P K A PK_A PKA P K B PK_B PKB分别为A和B的公钥。

在这里插入图片描述

在这里插入图片描述
数字签名的制作过程:

  • CA机构拥有非对称加密的私钥和公钥
  • CA机构对证书明文数据T进行HASH
  • 对HASH后的值用私钥加密,得到数字签名S
    明文和数字签名共同组成了数字证书,这样一份数字整数就可以颁发给网站了。

浏览器验证过程:

  • 拿到证书,得到明文T,签名S
  • 用CA机构的公钥对S解密,得到S‘
  • 用证书里指明的HASH算法对明文T进行HASH得到T’
  • 通过以上步骤,T‘应该等于S’,除非明文或签名被篡改,否则表明证书可信。

对称加密和非对称加密的区别,非对称加密有哪些

  • 加密和解密的过程不同:对称加密和解密过程使用同一个密钥;非对称加密中加密和解密采用公钥和私钥两个密钥,一般使用公钥进行加密,使用私钥进行解密。
  • 加密和解密的速度不同:对称加密和解密速度较快,当数据量比较大时适合使用;非对称加密和解密时间较长,速度相对较慢,适合少量数据传输的场景。
  • 传输的安全性不同:采用对称加密方式进行通信时,收发双方在数据传送前需要协商好密钥,而这个密钥还有可能被第三方窃听到,一旦密钥泄漏,之后的通信就完全暴露给攻击者了;非对称加密采用公钥加密和私钥解密的方式,其中私钥是基于不同算法生成的随机数,公钥可以通过私钥通过一定算法推导得出,并且私钥到公钥的推导过程是不可逆的,也就是说公钥无法反推导出私钥,即使攻击者窃听到传输的公钥,也无法正确接触数据,所以安全性较高。

常见的非对称加密算法主要有:RSA,背包算法,D-H算法。

鉴别

鉴别和加密是不相同的概念。鉴别是要验证通信的对方的确是自己所要通信的对象,而不是其他的冒充者,并且所传送的报文是完整的,没有被他人篡改过的

鉴别可细分为两种

  • 报文鉴别:即鉴别所收到的报文的确是报文的发送者所发送的,而不是其他人伪造的或篡改的。
  • 实体鉴别:即鉴别发送报文的实体。实体可以是一个人,也可以是一个进程。

在报文鉴别中,常用的密码散列函数有MD5和SHA-1

RSA和AES算法有什么区别?

  • RSA
    • 采用非对称加密的方式,采用公钥进行加密,私钥进行解密的方式。运算较慢,不适合大量数据文件加密。
  • AES
    • 采用对称加密的方式,其密钥长度最长只有256个比特,加密和解密速度较快,易于硬件实现。由于是对称加密,通信双方在进行数据传输前需要获知加密密钥。

DDoS有哪些,如何防范

DDoS是分布式拒绝服务攻击,是指处于不同位置的多个攻击者同时向一个或数个目标发动袭击,或者一个攻击者控制了不同位置上的多台机器并利用这些机器对受害者同时实施攻击。和单一的DoS攻击相比,DDoS是借助数百台或者数千台已被入侵并添加了攻击进程的主机一起发起网络攻击。

DDoS攻击主要有两种形式:流量攻击和资源耗尽攻击。前者主要针对网络带宽,攻击者和已受害主机同时发起大量攻击导致网络带宽被阻塞,从而淹没合法的网络数据包;后者主要针对服务器进行攻击,大量的攻击包会使得服务器资源耗尽或者CPU被内核应用程序占满从而无法提供网络服务。

常见的DDoS攻击主要有:TCP洪水攻击,放射性攻击,CC攻击等。

针对DDoS中的流量攻击,最直接的方法是增加带宽,理论上只要带宽大于攻击流量就可以,但是这种方法成本非常高。在有充足网络带宽的前提下,我们应该尽量提升路由器,网卡,交换机等硬件设施的配置。

针对资源耗尽攻击,我们可以升级主机服务器硬件,在网络带宽得到保证的前提下,使得服务器能有效对抗海量的SYN攻击包。也可以安装专业的抗DDoS防火墙,从而对抗SYN Flood等流量型攻击。

公钥的分配

在公钥密码体制中,如果每个用户都具有其他用户的公钥,就可以实现安全通信。看起来好像可以随意公布用户的公钥,其实不然。设想用户A要欺骗用户B,A可以向B发送一份伪造是C发送的报文,A用自己的私钥进行数字签名,并附上A自己的公钥,谎称这个这个公钥是C的。B如何知道这个公钥不是C的呢?显然,这需要有一个值得信赖的机构来将公钥与其对应的实体(人或机器)进行绑定。这样的机构就叫做认证中心CA,它一般由政府出资建立。每个实体都有CA发来的证书,里面有公钥及其拥有者的标识信息(人名或IP地址)。此地址被CA进行了数字签名,任何用户都可从可信的地方获得认证中心CA的公钥,此公钥用来验证某个公钥是否为某个实体所拥有

数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场上。首先,服务器的运营人员向数字证书认证机构提出公开密钥的申请,数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。

服务器会将这份由数字证书认证机构办法的公钥证书发送给客户端,以进行公开密钥加密方式通信。公钥证书也可叫做数字证书或直接称为证书。

接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,客户端便可明确两件事:认证服务器的公开密钥的是真实有效的数字证书认证机构,服务器的公开密钥是值得信赖的。
在这里插入图片描述

为什么不一直使用HTTPS

既然HTTPS那么安全可靠,那为何所有的WEB网站不一直使用HTTPS?

其中一个原因是,因为与纯文本通信相比,加密通信会消耗更多的CPU及内存资源。如果每次通信都加密,会消耗相当多的资源,平摊到一台计算机上时,能够处理的请求数量比定也会随之减少。

因此,如果是非敏感信息则使用HTTP通信,只有在包含个人信息等敏感数据时,才利用HTTPS加密通信。

特别是每当哪些访问量较多的WEB网站在进行加密处理时,它们所承担着的负载不容小觑。在进行加密处理时,并非对所有内容都进行加密处理,而是仅在那些需要信息隐藏时才会加密,以节约资源。

除此之外,想要节约购买证书的开销也是原因之一。

要进行HTTPS通信,证书是必不可少的。而使用的证书必须向认证机构CA购买。

SSL和TLS

SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证,使用数字签名确保完整性,使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。

TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性,该协议由两层组成:TLS记录协议和TLS握手协议。

SSL是Netscape开发的专门用于保护WEB通讯的,目前版本为3.0。最新版本的TLS1.0是工程任务组指定的一种新的协议,它建立在SSL3.0协议规范之上,是SSL3.0的后续版本。两者差别极小,可以理解为SSL3.1

TLS和SSL的差异

  • 版本号:TLS记录格式与SSL记录格式相同,但版本号的值不同,TLS的版本1.0使用的版本号为SSL3.1。
  • 报文鉴别码:SSL和TLS的MAC算法及MAC计算的范围不同。
  • 伪随机函数:TLS使用了成为PRF的为随机函数来将密钥扩展成数据块,是更安全的方式。
  • 报警代码:TLS补充了很多报警代码。
  • 加密计算:TLS和SSL在计算主密值时采用的方式不同。
  • 填充:用户数据加密之前需要增加的填充字节,在SSL中,填充后的数据长度要达到密文块长度的最小整数倍。而在TLS中,填充后的数据长度可以是密文块的任意整数倍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值