文章目录
第八章 网络安全
8.1 什么是网路安全?
场景:Alice和Bob要进行通信;Trudy想要截获
Trudy可以做什么?
窃听:截获报文
插入:在连接上插入报文
伪装:在分组的源地址上写上伪装的地址
劫持:将发送方或接收方提出,接管连接
拒绝服务:阻止服务被其他正常用户使用
如何保证传输过程中的信息安全?
机密性:使用加密机制,只有发送方和接收方可以理解传输的报文内容
认证:发送方和接收方要确认对方的身份
报文完整性:发送方和接收方要确认报文在传输过程中或者传输后有没有被改变
访问控制和服务可用性:保证服务可以接入、服务对用户而言是可用的
8.2 加密原理
对称密钥加密学
发送方和接收方密钥相同
- 替换密码:如a使用m替换,b使用n替换
- 对称密钥加密学:DES
使用56bit密钥
进行16轮一样的函数应用,每一轮使用不同的48bit密钥
- AES:用于替换DES
使用128bit密钥
如果输入的块重复,会得到相同的密文块
公开密钥加密学RSA
发送方使用接收方的公钥进行加密
接收方使用自己的私钥进行解密
密钥公之于众,私钥只有自己知道
8.3 认证
背景:Alice和Bob是一对情侣,要进行网络通信,Trudy是网络黑客
Protocol ap1.0
Alice向Bob发送消息:I am Alice
Trudy也可以向Bob发送消息:I am Alice (在网络上Bob并不能看到Alice,所以区分不出来)
Protocol ap2.0
Alice向Bob发送消息:I am Alice,并在IP数据包中包括了Alice的IP地址
Trudy也可以向Bob发送消息:I am Alice ,并且伪造出Alice的IP地址
Protocol ap3.0
Alice向Bob发送消息:I am Alice,并且传送Alice的密码来证明身份
Trudy可以截获Alice的消息,并且事后不断重复发送该消息(重放攻击)
Protocol ap3.1
Alice向Bob发送消息:I am Alice,并且传送Alice加密之后的密码来证明身份
Trudy依然可以进行重放攻击
Protocol ap4.0
目标:避免重放攻击
Nonce:一生只使用一次的整数
双方需要共享一个对称式的密钥
Alice向Bob发送消息:I am Alice
Bob向Alice发送一个整数Nonce(我喊你一声,你敢答应吗?)
Alice对这个整数Nonce进行加密,发送给Bob
Bob解密成功(此时Bob才信任这个人是Alice)
Protocol ap5.0
依旧使用Nonce
加解密使用公开密钥加密技术
8.4 报文完整性
数字签名是什么?
数字前面类比于手写签名;
数字签名需要具备的特性:可验证性、不可为造性、不可抵赖性
- Bob使用自己的私钥A对m进行了签署,创建数字签名
- Alice收到报文m,以及数字签名。
- Alice使用Bob的公钥B对数字签名进行解密,若解密成功,那么这个加密的人一定拥有Bob的私钥
报文摘要
若报文很长,对报文加密生成数字签名需要耗费大量的时间。
对报文使用散列函数,获得固定长度的报文摘要;
再对报文摘要进行加密,得到数字签名
Intenet校验和:弱散列函数
Intenet校验和拥有一些散列函数的特性
但是:不同的报文可能拥有相同的校验和
散列函数算法
- MD5散列函数:4个步骤计算出128bit的报文摘要
- SHA-1:160bit的报文摘要
8.5 密钥分发和证书
Key Distribution Center(KDC)
对称密钥加密中,用来解决对称式密钥分享的问题
为服务器和每一个注册用户都分享一个对称式的密钥
Certification authority(CA)
公共密钥加密中,用来解决公共密钥分享的问题
将每一个注册实体E和她的公钥捆绑
CA证书整个流程:
- E提供给CA自己的身份信息
- CA创建了一个证书,捆绑了实体信息和他的公钥
- 证书包括了E的公钥,而且这个公钥是被CA签署的(被CA用自己的私钥加密了)
- 当另一个服务器E2想拿到E的公钥时
- E将证书传给E2,E2使用CA的公钥来解密,得到E的信息,以此来确认身份
证书组成
串号(证书发行者唯一)
证书拥有者信息,包括算法和密钥值本身(不显示)
证书发行者信息
有效日期
颁发者签名
8.6 访问控制:防火墙
防火墙:将组织内部网络和互联网隔离开,按照规则允许某些分组通过,或者阻塞掉某些分组
防火墙的作用:
- 组织拒绝服务攻击:攻击者伪造很多TCP连接,将服务器所有资源都占用,普通用户就无法再建立连接了
- 阻止非法的修改/对非授权内容的访问:如攻击者替换掉公司主页
- 只允许认证的用户访问内部网络资源:经过认证的用户/主机的集合
防火墙分类:
- 网络级别:分组过滤器
- 应用级别:应用程序网关
分组过滤-无状态:
- 路由去对分组逐个过滤,根据以下规则来决定转发还是丢弃:
- 源IP地址、目标IP地址
- TCP/UDP源和目标端口
- TCMP报文类别
- TCP SYN/ACK
分组过滤-有状态:在无状态分组过滤的基础上,新增判断连接的功能,只有建立连接成功,且满足其他条件的才允许通过。
应用程序网关:
- 根据应用程序的内容来过滤进出的数据报,就像根据IP/TCP/UDP字段来过滤一样。(检查级别:应用层数据)
- 如:允许内部用户登录到外部服务器,但不是直接登录
IDS:入侵检测系统
- 分组过滤只检查TCP/IP的头部。不检查具体内容
- IDS检查分组的内容(识别分组中的特征串,判断是否是一直病毒和攻击串)
- 检查分组相关性,判断是否是有害的分组(如是否进行端口扫描、DOS攻击)
- IDS在不同的地点进行不同类型的检查
8.7 攻击和对策
映射
什么是映射?
在攻击之前要进行踩点,发现网络上实现了哪些服务
使用ping来判断哪些主机在网络上有地址
端口扫描:试图顺序的在每一个端口上建立TCP连接
对策:
记录进入到网络中的通信流量
发现可疑的行为(范围查找IP地址、端口被依次扫描等)
分组嗅探
什么是分组嗅探?
广播式介质
混杂模式的NIC获取所有信道的分组
可获取所有未加密的数据
对策:
机构中的所有主机都运行监测软件,周期性检查是否有网卡处于混杂模式
每个主机一个独立的网段(交换使用以太网而不是集线器)
IP Spoofing欺骗
IP Spoofing是什么?
可以改变分组的源地址字段,随意使用任何IP地址进行替换
接收端无法判断源地址是不是具有欺骗性
对策:
路由器对那些具有非法源地址的分组不进行转发(如:IP源地址不是路由器所在的网络地址)
入口过滤不能在全网范围内安装
DOS
DOS攻击是什么?
产生大量的分组淹没了接收端,占用服务器所有资源。
DDOS:多个相互合作的源站 一起对服务器端发动DOS攻击。
对策:
在到达主机之前过滤掉这些泛洪的分组
回溯到源主机