网络安全--计算机网络自顶向下笔记(九)

安全通信

  • 机密性(confidentially)。通过加密,使报文无法被截获者理解。
  • 报文完整性(message integrity)。报文在传输过程中未被篡改或意外改动
  • 端点鉴别(end-point authentication)。确信通信的另一方具有所声称的身份
  • 运行安全性(operational security)。通过防火墙等反制对网络的攻击。

机密性

  • 加密算法:明文+密钥A–>密文。
  • 解密算法:密文+密钥B–>明文。
  • 对称密钥系统中,两个秘钥是相同且秘密的。
  • 公开密钥系统中,一个密钥公开,另一个密钥只有本人知道

对称秘钥

  • 凯撒密码。每个字母用字母表后的k个字母替换。
  • 单码代替密码。使用字母表中的一个字母代替另一个字母。
  • 多码代替密码。交替使用不同规则的单码代替密码。
  • 块密码。要加密的额报文被处理为k比特的块,根据k比特和密钥映射到加密的k比特块。
    • DES(Data Encryption Standard, 数据加密标准)。使用64比特块,56比特密钥。
    • AES(Advanced Encryption Standard, 高级加密标准)。使用128比特块,128、192、256比特密钥。
      blockCiphers.png
  • 密码块链接(Cipher Block Chaining, CBC)仅第一个报文发送一个随机值,随后使用计算的编码块代替后继随机数,避免相同的代码块产生相同的密文,从而防止猜测明文。
    1. 发送方生成随机的k比特串,即初始向量(Initialization Vector, IV)c(0),通过明文发送给接收方。
    2. 对于第一个块,计算明文m(1)和IV的异或,然后通过加密算法得到密文块c(1)。
    3. 对于第i个块,CBC.png

公开密钥

  • A先取得B的公钥(public key),用它和加密算法加密报文发送给B。B通过自己的私钥(private key)和解密算法,得到初始报文。
    publicKey.png
  • 任何一个人都可以使用公钥向B发送报文,需要使用数字签名绑定发送方和报文。

RSA算法

  • 利用暂未找到因式分解一个数的快速算法的事实。
  • 指数运算耗时,可以使用RSA加密对称密钥(会话密钥),然后利用该对称密钥加密报文。
  • 生成公钥私钥:
    1. 选择两个**大素数**p、q,乘积为1024比特量级。
    2. 计算 n=pq,z=(p-1)(q-1)
    3. 选择e用于加密,e

报文完整性

密码散列函数

  • MD5,生成128比特的散列。
  • SHA-1,生成160比特的散列。

报文鉴别码

  • 使用鉴别密钥(authentication key)和散列算法保证报文完整性。
  • 步骤:
    1. A生成报文m,和鉴别密钥级联为m+s,计算散列H(m+s),即报文鉴别码(Message Authentication Code, MAC)。
    2. A将MAC附加到m上,生成扩展报文(m,H(m+s)),发送给B。
    3. B收到扩展报文(m,h),由s计算H(m+s),若等于h,则正常。
      MAC.png
  • MAC**不涉及加密算法**。
  • 鉴别密钥可以物理上直接配置,或者使用设备的公钥分发。

数字签名

  • 数字签名(digital signature)证明发送方认可一个文件,并且提供报文完整性
  • 发送数字签名
    1. 由初始报文得到散列
    2. 使用私钥加密散列,进行签名。
    3. 将初始报文和签名后的摘要一起发送。
      signature.png
  • 验证数字签名
    1. 用发送方的公钥解密散列。
    2. 使用相同的散列函数散列明文报文得到散列。
    3. 两个散列匹配,则确保完整性和发送方。
      signature2.png

公钥认证

  • 公钥认证(public key certification),证实一个公钥属于某个特定实体。否则,可能公钥会和实体不匹配。
  • 通常需要通过认证中心(Certification Authority, CA)完成公钥和特定实体的绑定
  • CA验证实体身份之后,会生成一个证书,包含公钥全局唯一的身份识别信息,然后对证书数字签名。实体发送自身公钥时,需要带上该证书,证明公钥的合法性
    CA.png

端点鉴别

IP

  • 验证IP数据报源地址
  • 缺点:可以伪造源地址。

加密口令

  • 使用口令鉴别,并对口令使用对称密钥加密。
  • 缺点:回放攻击,发送口令的加密版本,伪装发送者。

不重数和对称密钥

  • R为不重数(nonce),K为A和B共享的对称密钥。如果B解密得到的不重数与B发送的不重数相等,则可鉴别A,并确定A是活跃的
    ap4.png

安全电子邮件

  • 机密性。使用对称会话密钥,解决公开密钥效率低下的问题。使用公开密钥加密分发会话密钥
    1. A选择随机的会话密钥Ks,加密报文m。
    2. 用B的公钥Kb+加密对称密钥。
    3. 级联加密报文和加密对称密钥,发送给B。
    4. B使用私钥Kb-解密得到Ks,用Ks解密得到m。
  • 发送方鉴别和报文完整性。使用报文摘要数字签名
    1. A对报文散列,得到摘要,随后用A的私钥加密摘要,得到数字签名。
    2. 级联报文和数字签名发送给B。
    3. B用A的公钥解密签名得到摘要,和对报文散列的摘要对比。
      email2.png
  • 公钥的发放需要CA的证书验证。
  • PGP(Pretty Good Privacy)是一个电子邮件加密方案。
    • 报文摘要,MD5或SHA。
    • 对称密钥加密,CAST、三重DES、IEDA。
    • 公开密钥加密,RSA。

SSL

  • 安全套接字层(Secure Socket Layer, SSL),提供套接字接口,技术上位于应用层,但是是一个提供TCP的运输层协议。
    ssl.png

握手

  • B与A握手分为3个阶段。
    1. 创建TCP连接。
    2. A发送包括A公钥的证书,验证A是真实的A。
    3. 发送给A一个加密的主密钥(MS)。
      sslHand.png
  • 二三步协商算法、彼此发送不重数用于会话密钥的生成,实际步骤如下:
    1. 客户发送支持的密码算法列表,和客户不重数
    2. 服务器从列表中选择一种对称算法、一种公钥算法、一种MAC算法,连通证书服务器不重数发送给客户。
    3. 客户验证证书,提取服务器公钥,生成前主密钥(Pre-Master Secret, PMS)。用服务器公钥加密PMS,发送给服务器。
    4. 使用相同密钥导出函数,客户服务器分别从PMS和不重数中计算主密钥(Master Secret, MS)。
    5. 客户发送所有握手报文的MAC。
    6. 服务器发送所有握手报文的MAC。
  • 最后两步使得报文免受篡改
  • 每次会话的不重数不一样,可以防止连接重放攻击。如,第二天发送前一天的相同序列的报文,通过完整性检验。

密钥导出

  • MS需要生成4个会话密钥
    • Ea,A到B的会话加密密钥。
    • Eb,B到A的会话加密密钥。
    • Ma,A到B的会话MAC密钥。
    • Mb,B到A的会话MAC密钥。
  • 如果对称密钥用CBC(密码块链接),则两个初始向量IV也从MS导出。

数据传输

  • SSL将数据流分为记录,MAC是数据、MAC密钥、当前序号的散列。
    sslRecord.png
    • 每发送一个SSL记录,序号+1。阻止一个会话中重放或者重排分组。

连接关闭

  • 发送SSL记录,在类型中指出该记录用于终止SSL会话。
  • 如果直接终止底层TCP连接,可能被截断攻击

IPsec和VPN

  • IP安全(IP Security)协议被称为IPsec,为网络层提供安IPsec可以创建运行在公共网络之上的虚拟专用网(virtual private network, VPN)。
  • IPsec提供机密性、源鉴别、数据完整性、重放攻击防护。

协议

  • 鉴别首部协议(Authentication Header, AH)和封装安全性载荷(Encapsulation Security Payload, ESP)。
  • AH提供源鉴、数据完整性服务。ESP多提供机密性服务,所以ESP运用广泛。

安全关联

  • IPsec数据报在源和目的实体之间创建网络层的逻辑关联,称为安全关联(Security Association, SA)。
  • SA是一个单工逻辑连接。两个实体互发安全连接需要2个SA。
  • IPsec实体需要维护许多SA的信息(例如,一个有n台主机和2个物理网络的VPN中,网关路由器需要维护2n+2个SA信息)。这些SA信息存储在它的安全关联数据库(Security Association Database, SAD),包括:
    • SA的32比特标识符,安全参数索引(Security Parameter Index, SPI)。
    • SA的初始接口和目的接口。
    • 使用的加密类型(例如,有CBC的3DES)和加密密钥。
    • 完整性检查类型(例如,有MD5的HMAC)和鉴别密钥。

IPsec数据报

  • IPsec有两种不同的分组模式,隧道模式(tunnel mode),运输模式(transport mode),隧道数据报分组格式如下
    IPsec.png
  • 发送步骤:
    1. 在初始IPv4数据报后附加ESP尾部。下一个首部表示载荷类型,如UDP。
    2. 使用SA的算法和密钥加密初始数据报+ESP尾部。
    3. 在加密量之前附加ESP首部,得到enchilada。ESP首部中的序号可以防御重放攻击
    4. 使用SA算法和密钥生成整个enchilada的鉴别MAC
    5. 生成新的IPv4首部附加到载荷之前。IP地址为两个端点的路由器接口地址。
  • 接收步骤。目的IP是自身协议字段为50,需要IPsec ESP处理:
    1. 针对enchilada中的SPI,确定数据报属于哪个SA。
    2. 计算enchilada的MAC并确定与ESP MAC一致。
    3. 检查序号字段,确定数据报时新的
    4. 使用SA关联的解密算法和密钥解密被加密的单元。
    5. 删除ESP尾部,抽取初始IPv4数据报。
  • IPsec实体维护安全策略库(Security Policy Database, SPD),指示
    • 哪些类型的数据报(源、目的IP地址,协议类型)需要IPsec处理。
    • 处理之后使用哪个SA。

IKE

  • 因特网密钥交换(Internet Key Exchange, IKE)协议,自动在两个IPsec实体间交换证书,协商算法、密钥、SPI,之后在SAD中键入SA信息。类似SSL握手。

运行时安全

防火墙

  • 防火墙的目标:
    1. 从内部到外部和从外部到内部的所有流量都通过防火墙。
    2. 被授权的流量允许通过。
    3. 防火墙自身免于渗透。否则可能提供安全的假象。
  • 传统分组过滤器。检验每个数据报,根据IP地址、TCP端口号、TCP标志比特等决定通过还是丢弃。
    firewall.png
    • 每个TCP连接第一个报文段ACK比特为0,其他所有报文段为1。过滤进入的所有SYN分组,即ACK为0的分组,可以阻止外部发起TCP连接,但是允许内部发起TCP连接。
    • 路由器使用访问控制列表实现防火墙规则。
  • 状态分组过滤器。跟踪TCP连接,通过FIN分组或者一段时间没有活动判断连接关闭,拒绝属于关闭连接的分组。
  • 应用程序网关。可以处理应用层数据,如用户身份等。起到中继代理的作用。
    applicationGateway.png
    • 仅对一种应用程序进行深度分组检查(deep packet inspection),深入查看分组携带的实际数据。

入侵检测系统

  • 不仅可以检查分组首部,还能够对不同应用程序进行深度分组检查。
    • 入侵检测系统(Intrusion Detection System, IDS)能够对潜在的恶意流量告警
    • 入侵防止系统(Intrusion Prevention System, IPS)可以消除可疑流量。
  • 基于特征(signature-based)的IDS维护攻击特征库,匹配攻击。但是无法判断新的攻击,也有可能产生虚假警告。
  • 基于异常(anomaly-based)的IDS观察流量,生成流量概况,寻找统计上不寻常的分组,如ping分组比例不寻常等。如何区分和统计流量难。
  • 大多数IDS都是基于特征的,有些包含基于异常的特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值