计算机网络网络安全

Posted zizi7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络网络安全相关的知识,希望对你有一定的参考价值。

目录


被动攻击 主动攻击
篡改恶意程序拒绝服务Dos
攻击者从网络上截获他人通信内容,不干扰信息流攻击者篡改、彻底中断或完全伪造网络上传送的报文计算机病毒计算机蠕虫特洛伊木马逻辑炸弹后门入侵流氓软件攻击者向某个服务器不停发送大量分组,时该服务器无法提供正常服务。如果从成百上千机器攻击某个服务器,则称为分布式拒绝服务DDos
修改其他程序把自己复制进去的程序将自身从网络一个结点发送到另一个结点并自动启动的程序程序执行的并非其声称的功能,而是某种恶意功能当运行环境满足某种特定条件(如时间)时执行其他特殊功能利用系统中的漏洞通过网络入侵未经用户允许就安装运行并损害用户利益的软件

数据加密

用户A使用加密秘钥K,通过加密算法E,将明文X转为密文Y

B收到后使用解密秘钥K’,通过解密算法D,将秘文Y还原为明文X

对称秘钥密码体制

  • K=K’,即加密秘钥与解密秘钥相同
  • 数据加密标准DES属于对称秘钥密码体制, 秘 钥 长 度 56 = 64 位 秘 钥 + 8 位 奇 偶 校 验 秘钥长度56=64位秘钥+8位奇偶校验 56=64+8
  • 目前56位DES已能在很短时间内暴力破解。三重DES(把明文用秘钥1加密,秘钥2解密,再用秘钥3加密)广泛用于网络、金融等系统

公钥密码体制

  • 又称为公开秘钥密码体制,其加密秘钥与解密秘钥不同
  • 秘钥对产生器对接收者B产生加密秘钥 P K B PK_B PKB和解密秘钥 S K B SK_B SKB,其中加密秘钥 P K B PK_B PKB公开,解密秘钥 S K B SK_B SKB只有B知道
  • 发送者A首先用 P K B PK_B PKB通过算法E对明文X加密,得到密文Y
  • 接收者B用自己的私钥 S K B SK_B SKB通过算法D对Y解密,得到X

公钥密码体制特点:

  1. 从已知的 P K B PK_B PKB无法推导出 S K B SK_B SKB
  2. 公钥 P K B PK_B PKB只能用来加密,无法用来解密
  3. 对X进行D运算和E运算的顺序不影响结果: 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

数字签名

数字签名是为了保证三点功能:

  1. 报文鉴别:接收者能确信报文的确是发送者发送的;
  2. 报文完整性:接收者能确信所收到的数据没有被篡改过;
  3. 不可否认:发送者时候无法抵赖对报文的签名。

考虑上节公钥密码体制的第3个特点

如图,发送者A用其私钥 S K A SK_A SKA对报文X进行D运算,接收者B用A的公钥 P K A PK_A PKA进行E运算,如果能还原出明文,则核实了该签名:
只有A拥有其私钥,因此报文鉴别通过;如果数据被篡改过,那么B还原明文肯定失败,因此报文完整性通过

但上述方式只实现了签名的验证,但报文本身没有保密:因为A的公钥是公开的,任何人都能通过公钥获得明文。
因此可以通过下图的方式实现签名+保密:


鉴别

鉴别是要验证通信的对方的确是自己要通信的对象;并且传送的报文是完整的没被篡改过的

鉴别分为:报文鉴别、实体鉴别

报文鉴别

  • 鉴别收到的报文的确是报文的发送者发送的,每一个报文都需要鉴别
  • 理论上可以用数字签名实现,但对较长的报文D运算和E运算的计算量会很大
  • 因此用密码散列函数(MD5、SHA-1/2/3)实现鉴别

密码散列函数

密码散列函数需要满足以下2个特点:

  1. 输入长度不限,但输出长度固定,并且较短
  2. 输入输出是多对一的关系。不同输出肯定对应不同输入,不同输入可能得到相同输出

密码散列函数的第一个特点使得对其输出的计算量可控;第二个特点则保证了攻击者拿到输出也无法倒推出输入

报文摘要算法MD5是一种密码散列函数,其输出为128位
SHA-1是另一种广泛使用的密码散列函数,安全性比MD5更高,其输出为160位

但MD5和SHA-1都已被证明不满足密码散列函数的第2个特点,即可以通过输出倒推出输入
因此MD5和SHA-1逐渐被更安全的SHA-2和SHA-3替代

基于散列函数的报文鉴别

  • 发送者A首先对明文X通过散列函数得到散列H,然后对散列H用秘钥K加密得到报文鉴别码,将其拼接在X后面发送
  • 接收者B收到报文后首先分离报文鉴别码,然后用秘钥K对其解密得到散列H,最后使用散列函数计算报文X,得到的散列值如果是H,则鉴别成功

以上步骤中报文X本身不加密,仅需要对长度短的多的散列H加解密,计算量可控

考虑到秘钥K分发的风险,也可以用公钥密码体制:

  • 发送者A用其私钥对散列H进行D运算,得出报文鉴别码,然后将其拼接在报文X后面发给B
  • 接收者B对报文鉴别码用A的公钥进行E运算恢复散列H

实体鉴别

  • 在系统接入否认全部持续时间内,对和自己通信的对方实体只验证一次
  • 实体鉴别一旦通过,接下来的通信就不再做任何鉴别。因此这里的风险是,如果入侵者在鉴别过程中被通过,则之后的通信全部泄露

重放攻击

假设A和B约定使用对称秘钥 K A B K_AB KAB:即A向B发送带身份的报文,并用 K A B K_AB KAB加密,B收到后用 K A B K_AB KAB解密,如果成功则鉴别了A的身份

重放攻击:
入侵者C截获A发给B的报文,直接将其发送给B,使B误以为C就是A,接下来B发送的所有报文全泄露

中间人攻击

为了对付重放攻击,可以使用不重数(不重复使用的大随机数):

  1. A首先用明文发送其身份和一个不重数 R A R_A RA给B;
  2. B响应A,用其私钥 S K B SK_B SKB R A R_A RA做D运算,连同 R B R_B RB一起发给A;
  3. A用B的公钥 P K B PK_B PKB核实 R A R_A RA,确定对方是B,同样用其私钥 S K A SK_A SKA对不重数 R B R_B RB做D运算,发给B;
  4. B用A的公钥 P K A PK_A PKA核实 R B R_B RB,确定对方是A
  5. 实体鉴别通过后,接下来的通信会互相用对方的公钥做加密

中间人攻击:

  1. A向B发送身份报文和一个不重数 R A R_A RA,这个报文被中间人C截获,C将其原封不动转给B,同时用其私钥 S K C SK_C SKC R A R_A RA做D运算,发送回A,让A以为C是B;
  2. B用私钥 S K B SK_B SKB R A R_A RA做D运算,发给A,C截获后丢弃,同时转发 R B R_B RB给A;
  3. A向B索取其公钥,被C截获后转发给B,同时将 P K C PK_C PKC发送给A,A做了D运算后确认C就是B;同样用其私钥 S K A SK_A SKA对不重数 R B R_B RB做D运算,发给B;
  4. 接下来的每次数据报,C都截获后用自己的私钥 S K C SK_C SKC解密,复制一份后,再用 P K B PK_B PKB加密发给B

秘钥分配

从以上的攻击方式可以知道秘钥分配的重要性

对称秘钥的分配

目前常用的秘钥分配方式是设立秘钥分配中心KDC

假定用户A和B都是KDC的登记用户,其余KDC通信的主秘钥 K A K_A KA K B K_B KB在登记时已获得

  1. A向KDC发送包含A和B身份的明文,希望与B通信
  2. KDC产生“一次一密”的会话秘钥 K A B K_AB KAB供A与B本次会话,然后用 K A K_A KA加密包含秘钥 K A B K_AB KAB和票据(票据又用 K B K_B KB加密)的回答报文,发给A
  3. A将 K B K_B <

    以上是关于计算机网络网络安全的主要内容,如果未能解决你的问题,请参考以下文章

    信息安全最基础的概念汇总

    51%算力攻击

    网络安全-重放攻击及其防御

    再谈攻击:日蚀攻击和DDoS攻击

    DoS攻击

    重放攻击