网络安全课程笔记一:Introduction

Network Security Lecture 1: INTRODUCTION

1.1 三个主要的密码学函数

  • 私钥
  • 公钥
  • 哈希

1.2 网络安全的四个主要服务

  • 保证信息机密性
  • 保证信息完整性
  • 身份认证(确保系统的所有输入都来自可信的来源)
  • 保证非否认性(对于某个已经发生的行为,提供不可伪造的、确凿的证据,例如数字签名)

1.3 网络中的常见攻击方式

1.3.1 DDoS

Distributed Denial-of-Service,分布式拒绝服务。

1.3.2 Botnets

僵尸网络,一组被黑客攻陷并远程控制的计算机群体,用来发送垃圾邮件,或者发动 DDoS。

僵尸网络的结构:

  1. 最顶层为控制者(比如黑客)
  2. 中间层为发送控制命令的计算机组成的集群(类似将军团),负责 Command & Control(C&C),具有以下特征:
    • 大规模,有协作
    • 秘密的,可控的
    • 静静等待来自控制者的命令
  3. 最底层为大量的僵尸计算机(类似小兵)

1.3.3 XSS Attack

XSS(Cross Site Scripting)Attack,跨站脚本攻击。

  1. 攻击者发现了网站存在可以注入脚本的漏洞
  2. 攻击者将恶意脚本注入网站,可以盗取每个访问用户的 cookie
  3. 每当有用户访问该网站,该脚本就被激活
  4. 用户的 cookie 就被盗取并发送给攻击者

1.3.4 CSRF

Cross Site Request Forgery,跨站请求伪造

1.3.5 SSL MiTM Attack

SSL 中间人攻击常分为两类:

  • Sniff:客户端与中间人建立 HTTPS 连接(中间人伪造 HTTPS 证书),中间人和服务器建立 HTTPS 连接
  • SSLStrip:客户端与中间人建立 HTTP 连接,中间人和服务器建立 HTTPS 连接

1.3.6 APT

Advanced Persistent Threats,高级持久威胁。

1.4 计算机网络

计算机网络是一个由结点(node)、链接(link)组成的互联平台,任意两个结点可以通过一条路径(path)互相通信。路径则是一串结点和链接的序列。

Internet 是一个全球互联的计算机网络,使用 TCP/IP 协议进行通信。我们通常将这样一个计算机网络叫做自治系统(AS)。

Node 主要包括:

  • Host(主机):台式机,笔记本等
  • Intermediary(中间结点):路由器,交换机等

Link 主要包括:

  • 点到点(常用于 WAN):单工,半双工,全双工
  • 广播(常用于 LAN)

Path 的两种实现方式:

  1. 路由(Routed Path)
    • 无状态,无需建立连接
    • 每个数据包都是独立转发的
    • 速度慢一些(每个路由器都需要进行路由表匹配)
  2. 交换(Switched Path):有状态
    • 有状态,需要建立连接
    • 每个中间结点都记忆了所有可能的路径
    • 更为快速

1.4.1 分包和封装

分包(Packetization):将一个信息划分为多个数据包,每个数据包都要加上 Header。

封装(Encapsulation):当数据向下经过协议栈时,每一层的协议都会在数据包的包头添加特定的协议控制信息。

1.4.2 控制平面和数据平面

控制平面维护了一个供数据平面传输数据的平台。

控制平面的主要操作包括:

  • 路由
  • 流量分配和带宽分配
  • 错误汇报(ICMP)
  • 主机配置(DHCP)

数据平面的主要操作包括:

  • 转发(查询路由表、进行转发,最长前缀匹配算法)
  • 分类(根据特定的服务将数据包进行分类,如转发、过滤等)
  • 错误控制(如通过 TCP/IP 协议中的 Checksum)

1.5 TCP/IP 协议

  • 应用层(BGP, DNS, HTTP, DHCP…)
  • 传输层(TCP, UDP, OSPF…)
  • 网络层(ARP, IP, ICMP…)
  • 物理层和数据链路层(PPP, Ethernet, Wireless LAN…)

1.5.1 DNS

Domain Name System(域名系统)是一个在 Internet 上的分布式数据库,用来做域名和其 IP 地址的转换。

DNS 解析步骤:

  1. 用户需要请求某个域名对应的 IP 地址
  2. 本地解析器向这个主机的域名服务器发起一个 DNS 查询
  3. 域名服务器会检查自己是否有权回复这个查询
    • 如果是,他将回复这个查询
    • 否则,他会从根服务器开始,依次查询其他的域名服务器
  4. 当其获得答案,就将其发送给用户的解析器

1.5.2 TCP

Transmission Control Protocol,传输控制协议,面向连接。TCP 协议在一个不可靠的 Internet 上,提供了一个可靠的、端到端的比特流传输方式。

TCP 中,比特流被划分为“块”,也被称为“分段”:

  • 对于每个分段,接收方如果正确收到,都会回复 ACK
  • 对于发送方来说,TCP 设置了计时器,如果某个 ACK 没能及时送达,这个分段将被再次发送

TCP 的错误检测:

  • TCP 有 Checksum 来进行校验
  • 传输的每个字节都有其序列号

1.5.3 HTTP

Hypertext Transfer Protocol,超文本传输协议。用来在 Internet 上进行文件、图片、视频等等的传输。

1.5.4 各层与服务的总结

TCP 向 HTTP 提供的服务是可靠的,基于逻辑上的连接。

IP 向 TCP 提供的服务是不可靠的,基于 IP 网络上的 IP 包的传输。

Ethernet 向 IP 提供的服务是在以太网中传输某一帧。

其他的服务:

  • ARP:在 IP 和 MAC 之间进行转换
  • DNS:在 域名 和 IP 之间进行转换

1.6 安全防范措施

  • 防止:防患于未然
  • 检测:及时发现某个资产被入侵、破坏
  • 反应:事后的恢复措施

1.6.1 保证机密性

机密性:应防止信息的非法泄露,只有被授权者才可以看到信息内容。

制定保证数据机密性的策略,即确定:Who + What + How = Yes/No?(“什么人”通过“什么方式”访问“什么东西”,这种情况是否应该被允许?)

1.6.2 保证完整性

完整性:应防止信息被非法修改,只有被授权者才可以修改信息内容。

1.6.3 保证可用性

可用性:指信息应能够被合法实体按需访问、使用。

定义可用性的标准:

  • 合法实体的请求应该得到及时响应
  • 资源应该公平分配,每个请求者的地位都是平等的
  • 系统能符合预期地提供服务

拒绝服务攻击:阻止合法实体访问信息,或使其请求没能得到及时响应。

1.6.4 保证问责性

系统内部的合法操作也可能威胁整个系统的安全,攻击者也有可能侵入系统、从内部发起攻击。因此系统必须记录并保护所有操作的审计信息,当危害安全的行为发生时,能追究责任。

1.6.5 保证非否认性

非否认性:对于某个已经发生的行为,提供不可伪造的、确凿的证据。

对于一次信息的传输过程,需要保证:

  • 信息来源的非否认性:为信息的发送方提供证据(让发送方签名)
  • 传输过程的非否认性:为信息的传输过程提供证据(让接收方签名)

1.6.6 保证真实性(认证服务)

真实性:验证用户的身份(而不是由他自己说了算),并保证到达系统的信息都来自可信的来源。

1.6.7 保护隐私

隐私包含两个层面的含义:

  • 保护个人信息
  • 防止个人空间被入侵

1.6.8 匿名服务

匿名的实现方式:假名(类似于笔名)

匿名的类型:

  • 发送方匿名:接收方/观察者不能确定发送方
  • 接收方匿名:观察者不能确定接收方
  • 发送、接收均匿名:观察者不能确定发送方和接收方,即不能确定整个连接