1、计算机网络中的攻击
可分为:
说明:
(1)被动攻击:攻击者从网络上窃听信息,并不对信息改变信息
(2)病毒:会“传染”其他程序,指的是通过修改其他程序将自身或自己的变种复制进去
(3)蠕虫:将自身通过网络,从一个结点发送到另一个结点
(4)特洛伊木马:它执行的恶意功能并非是声称的正常功能,类似说谎或披着羊皮的狼
(5)逻辑炸弹:当运行程序满足某种条件时,会执行一些特殊的功能(删除、修改等)
(6)后门入侵:存在漏洞或者陷门,比如丢了钥匙
(7)流氓软件:比如某60等
(8)拒绝服务:攻击者向某个服务器不停的发送访问,使得该服务器;无法提供正常工作,感觉就是Ddos攻击
(9)主动攻击是可以检测出的,被动攻击通常无法检测出
2、安全的计算机网络
需要满足以下目标:
说明:
(1)保密性,可以用加密保证
(2)端点鉴别,类似于身份鉴别,可以用签名保证;信息的完整性也是用签名保证
3、计算机网络中的密码学
数据加密模型
属于公钥加密模型
说明:
(1)在计算上是安全的:在一定时间内不能被破解
说明:
(1)对称加密:安全性取决密钥的安全性,加解密算法是公开的
(2)公钥加密的出现,一是解决了对称加密中的密钥分配问题,二是数字签名的需求
(3)任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量
(4)目前公钥加密算法的开销较大
数字签名
4、网络中的鉴别
说明:
(1)鉴别是验证通信对方是真的,且所传输的信息的完整的
(2)加密是保证数据的机密性,传输的实际信息别人看不懂
(3)授权是是否被允许
(4)报文鉴别是对每一个收到的报文都要鉴别报文的发送者
(5)实体鉴别是在系统接入的全部时间内对和自己通信的对方实体只需要验证一次
报文鉴别
其实上面的数字签名就能对报文鉴别,但遇到长的报文进行鉴别就会增加计算机负担,这是使用散列函数,也就是哈希函数
常用的哈希函数:MD5和SHA-1,MD5被王小云院士破解后,SHA-1取代了MD5.
将哈希函数用在了报文鉴定码(MAC)中
其中MAC值是 报文的哈希值的加密。
实体鉴别
此时不能抵抗“重放攻击”,和中间人攻击的区别是?
5、密钥分配
下面着重介绍密钥分配,可分为对称密钥分配和公钥密钥分配:
对称密钥分配
存在两个问题:
通常使用KDC,密钥分配中心,一个双方都信任的机构,负责给需要进行秘密通信的用户临时分配一个会话密钥
假设用户A和B都已经在KDC中“登记”过了,即将各自的主密钥KA和KB存在了KDC中,
第一步:A向KDC发送使用明文,表示想与B通信,明文中包括A和B在KDC登记的身份
第二步:KDC产生一个会话密钥Kab,向A发送回答报文,该报文是用KA加密,包含了Kab和A想转给B的一个“票据”,该票据使用KB加密,包含了A和B在KDC中登记的身份和会话密钥Kab。
第三步:B收到A发来的“票据”,使用KB解密,就知道A想要和它通信,并且使用Kab进行这次通信。
说明:
KDC还可在报文中加入时间戳,防止攻击者利用之前记录下的报文进行重放攻击;且用户的主密钥需要定期更换。
目前较为出名的密钥分配协议是Kerberos V5协议,既是鉴别协议,又是KDC
说明:
AS是鉴别服务器、TGS是票据授予服务器
A想向B请求服务,Kerberos需要以下六步鉴别 确实的A向B请求,然后向A和B分配会话密钥
第一步:A向AS发送消息,包括登记身份,来表明自己的身份,AS对A的身份验证,结果正确才允许A和TGS联系
第二步:AS向A发送用A的对称密钥KA加密的报文,包括A和TGS通信的会话密钥KS和AS发送给TGS的票据(用TGS的对称密钥KTG加密),A用密钥KA对报文解密,提取出会话密钥KS和要转发给TGS的票据
第三步:A向TGS发送(转发AS发来的票据)、(B的身份,表明是A向请求B)、(用KS加密的时间戳,防止重返攻击)
第四步:TGS向A发送两个票据:都包含A和B的回话密钥KAB,给A的票据用KA加密、给B的票据用KB加密
第五步:A向B转发TGS发来的票据,同时发送用KAB加密的时间戳
第六步:B把时间戳加1来证实收到了票据,且用KAB加密
这样,A和B就能使用TGS给出的会话密钥来通信。
公钥密钥分配
为了保证用户间通信的安全,需要一个值得信赖的机构(CA)将公钥和用户信息绑定。
每个用户都需要CA发布的证书,里面有公钥和用户的标识信息,证书被CA进行了数字签名,任何用户都可从可信的地方获得证书的公钥,用于验证某个公钥是否为某个用户所有(向CA查询)
CA证书有统一的格式,比如X.509协议标准,具体介绍请参考
6、安全协议
IPsec
不是单一的协议,而是一个协议族(很多协议),没有限定用户必须使用哪种协议、哪种加密、哪种鉴别算法,而是一个框架。
IPsec协议族中的协议包括:
- IP安全数据报格式的两个协议:鉴别首部AH协议和封装安全有效载荷ESP协议
- 有关加密算法的三个协议(后面详细介绍)
- 互联网密钥交换IKE协议
AH和ESP:
IPsec支持IPv4和IPv6,IPv6中,ESP协议包含AH协议的功能。
使用ESP协议和AH协议的IP数据报叫IP安全数据报(IPsec数据报)
说明:
IP安全数据报,就是IP数据报的加密,且能被鉴别的。
IP安全数据包是如何传输的,在哪传输?
安全连接(SA)
IP安全数据报发送前,需要在源实体和目的实体之间创建一条网络层的逻辑连接,即安全关联(SA),是单向连接,能提供安全服务。
下图是公司总部电脑H1和分公司H2的安全通信:
说明:
- SA就是在路由器R1和R2之间建立的
- IP安全数据报在SA上传送的,好像一个”安全的隧道”
- 总公司内部H1和H3通信,不需要建立安全连接,无需加密
图是总公司H1和外地业务员H2之间的通信:
说明:
- 路由器和主机之间建立安全连接
- H1发送的IP数据报,通过路由器R1后,就变成了IP安全数据报
- 在路由器R1和业务员H2的之间构成了一个安全隧道
- 外地业务员事先安全在H2中的IPsec对IP安全数据报进行鉴别和解密,还原H1发来的IP数据报
当路由器R1要通过SA发送IP安全数据报时,就必须读取SA的状态信息:
- 安全参数索引SPI
- SA的源点和终点的IP地址
- 加密类型
- 加密的密钥
- 完整性检查的类型(MD5、SHA-1的MAC值)
- 鉴别使用的密钥
IP安全数据报
下面看一下IP安全数据报的构成:
下面将分两部分介绍:
(1)发送方:
ESP的有效载荷:就是原始的IP数据报,后面加上ESP尾部
ESP尾部:填充内容为0,数据块满足一定的长度才能加密;若是隧道方式,下一个首部就是就是下一个数据报的原始IP首部
加密的部分:按照SA中所指的加密算法和密钥,对ESP的有效载荷和ESP尾部加密,形成加密的部分
ESP首部:里面存放安全参数索引SPI,通过听一个SA的所有IP安全数据报都使用相同的SPI值;序号,鉴别的时候用到,防止重放攻击
报文鉴别码MAC:按照SA指明的算法和密钥,对ESP首部和加密的部分生成报文鉴别码MAC
原始的IP首部:存放是源地址和目的地址
(2)接收方:
路由器R2收到IP安全数据报后,先检查首部中的目的地址,若目的地址是R2,就由R2继续处理
R2找到IP首部的协议字段值,就把IP首部后面的所有字段都用ESP协议处理;
先检查ESP首部中的SPI,确定收到的数据报属于哪一个SA
接着计算MAC,确任是否和报文中的MAC一致
接着再检验ESP首部中的序号,证实有误被入侵重放
接着用SA对应的解密算法和密钥,对加密部分进行解密
再根据ESP尾部中的填充长度,去除填充的0,还原出加密的WSP有效荷载,就是原始的IP数据报
IPsec的其他构件
(1)安全关联数据库,SAD
存放SA,当主机要发送IP安全数据报时,就现在SAD中查找相应的SA
(2)安全策略数据库,SPD
指明什么样的数据报需要进行IPsec加密,取决于源地址、源端口、目的地址、目的端口、协议类型等
(3)互联网密钥交换,IKE
为IP安全数据报自动创建安全关联SA
目前最新的IKE是IKEv2版本,与另外三个协议为基础:
Oakely:密钥生成协议
安全密钥交换机制SKEME,用于密钥交换
互联网安全关联和密钥管理协议ISAKMP:用于实现IKE中的密钥交换,使IKE的家欧安能够以标准化、格式化的报文创建SA
SSL
运输层的安全协议:
SSL,全套接字层
TLS,运输层安全
(1)SSL和TLS的关系?
SSL最先设计出来,后来升级改进为TLS,为所有基于TCP的网络应用提供安全数据传输服务
下面用SSL表示:SSL/TLS
在未使用SSL时,应用层的数据是通过TCP套接字与运输层交互的,比如下图:
在使用了SSL后,SSL套接字的作用是应用程序和SSL子层的应用编程接口API
说明:
SSL可用于任何应用层的协议,比如HTTP、IMAP邮件存储的鉴别和数据加密等
当使用普通不加密的浏览器查看网页时,HTTP就直接使用TCP连接,SSL不起作用
当使用信用卡在线支付时,就需要用到安全的浏览器,HTTP就调用SSL对整个网页加密,HTTP变成了HTTPS。此时在发送方,SSL从SSL套接字接收应用层数据,对数据加密,然后把加密的数据送给TCP套接字;在接收方,SSL从TCP套接字度无数据,解密后,通过SSL套接字把数据交给应用层
(2)SSL可以提供的安全服务:
SSL服务器鉴别,用户可以验证服务器的身份:在客户端验证来自服务器的证书,来鉴别服务器的身份并获取服务器的公钥
SSL客户鉴别:服务器鉴别用户身份
加密的SSL会话,对服务器和用户之间传递的数据加密,并检测报文是否被篡改
(3)下面以用户在线购物的例子介绍SSL的使用
大致过程如下:
具体过程如下:
1、协商加密算法:
(1)A向B发送浏览器的SSL版本号和可选的加密算法
(2)B选择自己所支持的加密算法(如RSA),并告知A
2、服务器鉴别:
(3)B向A发送包含其RSA公钥的数字证书
(4)A使用CA公开的RSA公钥对证书进行验证、
3、回话密钥计算:
A随机产生一个秘密数
(5)用B的RSA公钥加密后发送B
(6)双方根据协商算法产生共享的对称会话密钥
4、安全数据传输:
(7)双方使用会话密钥加密和加密传输的数据并验证其完整性
PGP
应用层协议,用于电子邮件的安全协议,提供电子邮件的安全性、发送方鉴别和报文完整性
包括加密、鉴别、签名和压缩等技术,
下面以一个具体的场景描述
假设A向B发送邮件X,A有(自己的私钥、B的公钥、自己生成的一次性密钥),B有(自己的私钥、A的公钥)
A发送:
(1)对邮件X进行MD5运算,得到MD5报文签名H。用A得私钥对H进行签名,得到报文鉴别吗MAC,拼接到X后面,得到扩展的邮件(X,MAC)
(2)使用A自己生成的一次性密钥加密(X,MAC)
(3)用B的公钥加密A生成的一次性密钥
(4)把加密的一次性密钥和加密的扩展的邮件发送给B
B接收:
(1)把加密的一次性密钥和加密的扩展报文分开
(2)用B的私钥解密出A的一次性密钥
(3)用解密出的一次性密钥对加密的扩展报文解密,然后分离出明文X和MAC
(4)用A的公钥对MAC验签,得到报文摘要H
(5)对分离出的明文X进行MD5报文摘要预算,得到另外一个摘要H(X),对比H和H(X)是否相同,若一样,则对邮件的发送方的鉴别完成,报文的完整性也完成
注:
在这里如何多的对方的公钥,可以通过CA颁发证书实现。
6、系统安全
上面所说的安全技术不能解决所有的安全问题,比如加密技术不能阻止“特洛伊木马”
防火墙
实施访问控制策略
防火墙一般分:
(1)分组过滤路由器
根据过滤规则对进入的内部网络的分组进行转发和丢弃。
通过端口与服务一一对应的关系,来管理
(2)应用网关,代理服务器
当做报文中继的角色
入侵检测
IDS,对进入网络中的分组执行深度分组检查
可以检测多种网络柜攻击:网络映射、端口扫描、Dos攻击、蠕虫和病毒、系统漏洞等
一般可分为:
(1)基于特征的入侵检测
通过维护一个已知攻击标志性特征的数据库,通过判断,对比来决定是否异常
只能检测已知的攻击,不能检测未知的攻击
(2)基于异常的入侵检测
通过观察正常的网络流量,学习正常流量的统计特征和规则,可以检测未知的攻击
说明:
以上的部分信息来源网络,若有异议,请与我联系