计算机网络网络安全
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
公钥密码体制特点:
- 从已知的 P K B PK_B PKB无法推导出 S K B SK_B SKB
- 公钥 P K B PK_B PKB只能用来加密,无法用来解密
- 对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
数字签名
数字签名是为了保证三点功能:
- 报文鉴别:接收者能确信报文的确是发送者发送的;
- 报文完整性:接收者能确信所收到的数据没有被篡改过;
- 不可否认:发送者时候无法抵赖对报文的签名。
考虑上节公钥密码体制的第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个特点:
- 输入长度不限,但输出长度固定,并且较短
- 输入输出是多对一的关系。不同输出肯定对应不同输入,不同输入可能得到相同输出
密码散列函数的第一个特点使得对其输出的计算量可控;第二个特点则保证了攻击者拿到输出也无法倒推出输入
报文摘要算法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发送的所有报文全泄露
中间人攻击
为了对付重放攻击,可以使用不重数(不重复使用的大随机数):
- A首先用明文发送其身份和一个不重数 R A R_A RA给B;
- B响应A,用其私钥 S K B SK_B SKB对 R A R_A RA做D运算,连同 R B R_B RB一起发给A;
- 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;
- B用A的公钥 P K A PK_A PKA核实 R B R_B RB,确定对方是A
- 实体鉴别通过后,接下来的通信会互相用对方的公钥做加密
中间人攻击:
- 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;
- B用私钥 S K B SK_B SKB对 R A R_A RA做D运算,发给A,C截获后丢弃,同时转发 R B R_B RB给A;
- 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;
- 接下来的每次数据报,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在登记时已获得
- A向KDC发送包含A和B身份的明文,希望与B通信
- 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
- A将
K
B
K_B
<
以上是关于计算机网络网络安全的主要内容,如果未能解决你的问题,请参考以下文章