Author: RyanXing

注:本文的图片都没有上传到博客园,因此无法显示。含图像的PDF版本参见GitHub

1. 引言

  1. 信息系统中常见的威胁有哪些?

    1. 信息泄露:信息被泄漏给非授权人(实体)。如窃听。
    2. 完整性破坏:由于非授权的删改,数据的一致性受损。
    3. 拒绝服务:对信息或资源的访问被无条件阻止。如超负荷访问。
    4. 非法使用:资源被非授权人或以非授权方式使用。如攻击者利用侵入系统作为侵入其他系统的桥头堡。
  2. 掌握信息安全的4个目标。

    1. 保密性(confidentiality)
    2. 完整性(integrity)
    3. 可用性(availability)
    4. 合法使用(legitimate use)
  3. 安全策略策略是:某个安全域内,施加给所有与安全相关活动的一套规则

    (安全域:属于某个组织机构的一系列处理进程和通信资源)

  4. 安全攻击分为几大类?(要会分类)

    1. 被动攻击:窃听和监测。如信息泄露,流量分析。
    2. 主动攻击:恶意篡改数据或伪造数据流。如拒绝服务,消息篡改。
  5. 熟记X.800标准中的5类安全服务和8种特定安全机制,并简述它们之间的关系。(考试要画表)

  6. 能够画出网络安全参考模型和网络访问参考模型。

2. 计算机网络基础

基础知识

  1. OSI/ISO七层参考模型

    1. 物理层
    2. 数据链路层
    3. 网络层
    4. 传输层
    5. 会话层
    6. 表示层
    7. 应用层

    (五层模型:后三者都统称为应用层)

  2. TCP/IP四层体系结构

    1. 网络接口层:仅使用物理地址。只关注了网络层与通信网的接口,因此在TCP协议族中,底层物理网络的差异被屏蔽。
    2. 网际层:仅使用IP地址。
    3. 传输层:操作系统内核软件。
    4. 应用层(:操作系统外部软件。
  3. IP地址基本知识

    一个IP地址由两段固定长度的字段组成。

    1. 网络标识(net-id):标志某台主机(或路由器)连接的网络。
    2. 主机标识(host-id):标志这台主机(host)或路由器(router)。

    Internet上的主机至少有一个IP地址。一台主机可以有多个IP地址。每台主机的IP地址互不相同。

    IP地址与硬件没有任何关系,因此又称为逻辑地址。

  4. MAC(Media Access Control)/以太网(Ethernet)/局域网(LAN)/物理(Physical)地址(课本没有)的概念

    在OSI模型中,网络层负责IP地址,而数据链路层就负责MAC地址,用来标识网络中的设备。每台设备都有一个唯一的MAC地址。

    MAC地址是48位,通常表示为12个16进制数(即4位表示1个16进制数)。

  5. IPv4地址中有一些有特殊功能。

    1. 主机号全零,例如10.0.0.0,用来指明单个网络的地址。不作为目的地址。
    2. 网络号不为0、主机号全1,例如201.114.64.255,用来指明网络201.114.64中的所有主机,称为该网络的广播地址。
    3. 127开头的IP主要用于本机测试,不属于A类。(百度)

    因此,我们可以回顾一下五个分类:

    对于A类地址,网络数后7位自由(\(2^7\)),但要去掉后7位全0和全1共2个。主机数24位自由(\(2^{24}\)),但要去掉全1和全0共2个。

    对于B类地址,网络数后\(6+8=14\)位自由(\(2^{14}\)),主机数16位自由(\(2^{16}\)),但要去掉全1和全0共2个。

    对于C类地址,网络数后\(5+8+8=21\)位自由(\(2^{21}\)),主机数8位自由(\(2^{8}\)),但要去掉全1和全0共2个。

  6. 子网和子网掩码

    我们考虑到主机数量分了5级网络。但对于A级网络而言,其网络标志太长了,可能很冗余。为此,我们继续将网络标志划分出一个子网字段(subnet-id),即得到3级IP地址:net-id + subnet-id + host-id

    前面我们提到过,主机号全为0用来指明单个网络的地址。为了让主机号全为0,我们可以让该主机的网络地址和子网掩码(subnet masks)相与,得到该子网络段的网络地址。因此,子网掩码实际上就是网络标识全为1,主机标识全为0的字段。如,A类地址的子网掩码是255.0.0.0,B类地址的子网掩码是255.255.0.0,C类地址的子网掩码是255.255.255.0。

考点

  1. 必须知道IPv4及IPv6地址的格式以及长度。

    1. IPv4:32位二进制数,即32比特、4个字节。

      格式:点分十进制。如10000000 00001011 00000011 00011111,按字节换算成十进制即128.11.3.31。

    2. IPv6:128比特。

      格式:冒号分16进制。如2000:0000:0000:0000:0001:2345:6789:abcd,可省略表示为2000:0:0:0:1:2345:6789:abcd。

  2. MAC地址的长度为48比特。

  3. IPv4的地址有哪几种?给定一个IP地址,要能够分析判断出改地址属于哪一类地址。

    在寻址时,首先根据网络标识找到该计算机所属的网络,然后再按主机标识找到主机。考虑到有的网络主机多,有的网络主机少,因此将地址分为5类,如图:

  4. 给定一个IPv4地址和子网掩码,要求能计算出网络地址。

    例:已知IP地址(或叫主机地址)为202.112.64.19,子网掩码为255.255.255.0,因此该主机的网络地址为202.112.64.0。

  5. 熟悉CIDR的标识方法,如128.14.32.0/20表示的地址范围和子网掩码是什么?

    其实,我们可以不按照上述的大类划分子网。此时子网掩码的形式也不拘泥于上述三种。此时我们要标明net-id的位数,例如:192.168.23.35/21,表示net-id有21位。那么,其子网掩码就是:

    255.255.(11111000).0

    而23 = 00010111

    所以网络地址就是二者相与,即192.168.(00010000).0 = 192.168.16.0。

    那么该子网的主机起始IP是?结束IP是?(地址块范围)

    答案:192.168.00010000.1 = 192.168.16.1(注意网络标志不能全为0)和192.168.00010111.11111110 = 192.168.23.254(也不能全为1)。注意,划分子网是自己的事情,即遵循的全0/1的规则是大类的规则。

3. Internet协议的安全性

基础知识

在TCP/IP协议族诞生之初,网络中的用户被认为是互相信任的,没有任何安全措施。如今不可以了。

  1. Internet协议的主要协议及其层次关系

    1. 网际层:IP和ARP协议。
    2. 传输层:TCP和UDP协议,都与IP协议有关。
    3. 应用层:HTTP、SSH、FTP、POP3、SMTP、TELNET、IMAP等协议,与TCP协议有关。DNS协议与UDP协议有关。
  2. 常用协议功能详述

    • 网际协议(Internet Protocol,IP)

      TCP/IP协议族的核心和基础。IP层接收来自更低层(如网络接口层)的数据包,处理后交给更高层(TCP或UDP协议);反之,IP层也接收来自TCP或UDP协议的数据包,处理后传至更低层。

      IP采用尽最大努力交付的服务,是一种不可靠的无连接数据报协议。

    • 地址解析协议(Address Resolution Protocol,ARP)

      将IP地址转换为MAC地址。

      当我们访问一台机器时,一定知道逻辑地址,但物理地址不一定知道。而如果要完成通信,就必须知道物理地址,从而将网络层的数据包封装成MAC帧。ARP应运而生。

      具体而言,是将32位IP地址转换为48位的MAC地址。

    • 传输控制协议(Transmission Control Protocol,TCP)

      一种面向连接的、可靠的传输层通信协议,解决了一些IP协议无法提供的功能,例如数据包的排序和校验。

    • 用户数据报协议(User Datagram Protocol,UDP)

      一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

      发送数据前不需要建立连接,不使用拥塞控制,不保证可靠交付。

    • 超文本传输协议(Hyper Text Transfer Protocol,HTTP)

      客户端和服务器端请求和应答的标准协议。承载于TCP协议之上,能够从服务器传输超文本到本地浏览器。

    • 远程登录协议(Teletype Network,TELNET)

      Internet远程登录服务的标准协议。可以让用户的本地计算机成为远程主机的终端。用其传递文件比FTP更快。

    • 文件传输协议(File Transfer Protocol,FTP)

      Internet文件传送的基础。

    • 安全壳协议(Secure Shell,SSH)

      在不安全的网络上建立安全的远程登录或其他安全网络服务的协议。

      支持身份认证和数据加密,可代替TELNET作为安全的远程登录方式,又可以为FTP、POP等提供安全的隧道。

    • 域名系统(Domain Name System,DNS)协议

      分布式数据库系统,用来实现域名与IP地址之间的映射。例如查询mail.buaa.edu.cn的IP地址。

    • 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)

      一组由源地址到目的地址的邮件传送的规则。

    • 邮局协议(Post Office Protocol,POP)

      一个邮件协议。口令以明文传输,非常不安全。

    • 消息访问协议(Internet Message Access Protocol,IMAP)

      也是一个邮件协议。

    • 网络时间协议(Network Time Protocol,NTP)

      在分布式时间服务器和客户端之间进行时间同步。

考点

  1. 熟记常用通信协议的功能和端口号。

    1. HTTP:TCP 80,Web数据传送。
    2. SSH:TCP 22,安全的远程登录。
    3. FTP:TCP 20(数据通道)/21(控制通道),文件上传和下载服务。
    4. TELNET:TCP 23,远程登录。
    5. SMTP:TCP 25,发送邮件。
    6. POP3:TCP 110,接收邮件。
    7. IMAP:TCP 143,接收邮件。
    8. DNS:UDP 53,把域名转换为IP。
  2. 网络地址转换(NAT)可实现IPv4和IPv6地址的转换,解决了IPv4地址短缺的问题

  3. ARP协议可以将32位的IP地址转换为48位的MAC地址

  4. 为什么UDP比TCP更容易遭受攻击?

    因为UDP没有交换握手信息和序号的过程。

4. 单钥密码体制

基础知识

  1. 密码体制的分类

    1. \(k_e = k_d\)(通信双方采用的密钥相同),则加密算法称为单钥加密体制(对称加密体制 或 私钥加密体制)。
    2. 若不同,则加密算法称为双钥加密体制(非对称加密体制 或 公钥加密体制)。
  2. 单钥体制的分类

    根据对明文处理方式的不同,可分为:

    1. 流密码(stream cipher):数据逐比特加密,即数据流和密钥流逐比特执行异或运算(XOR)。
    2. 分组密码(block cipher):对数据分组处理。

    双钥体制下只有分组密码。

  3. 流密码的特点

    1. 解密过程与加密过程一致。
    2. 序列密码的安全性完全依赖于伪随机数的强度。
  4. 分组密码的概念

    将明文信息编码后,得到数字序列;划分为长度\(m\)的多个组;各组分别在密钥控制下变换成等长的输出数字序列(长度为\(n\))。

  5. Shannon的分组密码设计思想

    1. 扩散(diffusion)

      将每位明文及密钥数字的影响 尽可能迅速地散布到较多个输出的密文数字中,以便隐蔽明文数字的统计特性。最简单的扩散方法是置换(permutation),如重新排列字符。

    2. 混淆(confusion)

      使作用于明文密钥和密文之间的关系复杂化,即使明文/密文、密文/密钥之间的统计相关特性极小化。常用代换(substitution)法。

  6. 分组密码的2个加密标准

    • DES(Data Encryption Standard)

      美国于1977年在全球公开的第一个现代单钥加密算法。

      DES是一种单钥分组密码,输入明文长度(分组长度)为64比特,密钥长度56比特,输出密文长度也是64比特。

      DES算法的核心是S盒和P盒,分别负责混淆和扩散。

      该算法已不再被使用,因为已经被快速破解。

    • AES(Advanced Encryption Standard)

      AES是美国政府采用的一种替代DES的加密标准。

      AES是一种密钥长度可变的分组密码。AES的分组长度固定为128比特,密钥长度是128/192/256比特。

考点

  1. 按照对明文消息的处理方式不同,单钥体制可以分为分组密码流密码

  2. DES的分组长度是64位,密钥长度是56位。

  3. AES的分组长度是128位,密钥长度是可变的128/192/256位。

  4. 分组密码算法都含有扩散混淆两个过程。

  5. 加密的安全性只取决于密钥的保密性,而非算法的保密性

  6. 加密的轮数并非越多越好,密钥并非越长越好。

  7. 一条明文经过2个算法串联加密,不一定更安全。

  8. 分组密码的5种工作模式是什么?要求能画出5种工作模式的原理框图。

    1. 电码本模式(Electric Code Book,ECB)

      逐段加密和解密。类似于在电报密码本中查找对应的码字。

      优点:简单,快,可并行。

      缺点:重复的明文分组将对应重复的密文分组,容易被攻击者试凑。

    2. 密码分组链接模式(Cipher Block Chaining,CBC)

      优点:明文的重复不会导致密文的重复。可并行解密。

      缺点:若前面的解密出错,后面的解密都会出错。加密不可并行。

    3. 密码反馈模式(Cipher Feedback Mode,CFB)

      反馈作用于密钥流发生器。

      优缺点同上。但多一个优点:数据无需填充,可以根据需要选择输出密钥流的长度。

    4. 输出反馈模式(Output Feedback Mode,OFB)

      反馈只存在于密钥流发生器内部,即密钥流与外界(明文、密文)无关。

      优点:克服了CBC和CFB的错误传播问题。

      缺点:难以检测密文窜改。

    5. 计数器模式(Counter,CTR)

      同上,密钥流与外界无关。

      优点:无错误传播;支持并行加解密。

      缺点:难以检测密文窜改。

5. 双钥密码体制

基础知识

  1. 可逆函数(单射)

    令函数\(f\)是集合\(A\)\(B\)的映射。若对任意\(x_1 \ne x_2\),有\(f(x_1) \ne f(x_2)\),那么\(f\)就是可逆函数。

  2. 单向函数

    对于一个可逆函数\(f\),若满足:(1)对任意\(x \in A\)\(f(x)\)容易计算;(2)对几乎所有\(x \in A\),由\(f(x)\)\(x\)极为困难(就现有计算能力而言),那么\(f\)就被称为单向函数。

    即:计算简单,但求逆困难的可逆函数。

  3. 陷门单向函数

    满足下述条件的单向函数:

    1. 对所有\(z \in Z\),只要给定\(z\),就容易找到一对算法\(E_z\)\(D_z\),使得对于任意\(x \in A\)\(f_z\)及其逆都很好求:\(f_z(x) = E_z(x), x = D_z(f_z(x))\)
    2. 对所有\(z \in Z\),若只给\(E_z\)\(D_z\),则对于任意\(x \in A\),逆很难求。

    陷门单向函数在单向函数的基础上,加入了陷门信息\(z\)。若陷门信息未知,则求逆困难;若陷门信息已知,则求逆简单。

  4. 而用于构造双钥密码的单向函数主要基于以下问题:

    多项式求根、求解离散对数(ELGamal)、大整数分解(RSA)和Diffie-Hellman问题。

  5. 双钥体制基本思想

    公钥密码思想是由Diffie和Hellman在1976年提出的。D-H协议的核心思想有两步:

    1. Alice和Bob交换公钥\(K_P^A\)\(K_P^B\)
    2. 计算共享密钥:\(K=f(K_S^A,K_P^B)\)以及\(K=f(K_S^B,K_P^A)\)

    流程图如下:

    注意:当Alice给Bob发送消息时,她必须用Bob的公钥对信息加密。而在Bob解密时,Bob用的是Bob的私钥。

    公钥也可以用于加密信息或验证签名;私钥可以用于解密信息或签名。

    【学完密码协议回头看,这是一个建立(交换)会话密钥的协议】

  6. RSA特点

    速度慢,不适用于对图像等实时数据加密。

    若Alice给Bob发送消息,那么\(e\)\(n\)都是Bob的公钥,\(d\)是Bob的私钥。因此,哪怕A和B根本不认识,只要A知道B的公钥,就可以进行保密通信。

考点

  1. 双钥密码体制是基于数学难题构造的。请列举数学难题。

    多项式求根、求解离散对数、大整数分解和Diffie-Hellman问题。

  2. RSA是基于大整数分解难题构造的。Diffie-Hellman是基于求解离散对数难题构造的。

  3. 请写出RSA加密和解密的数学表达式,指出公钥和私钥。要求能做简单的计算。

    \(n\)是两个不同奇素数之积,有\(n = p \times q\)。其欧拉函数值为:
    \[\varphi(n) = (p-1) (q-1)\]
    我们随机选一个整数\(e\),满足\(1 \le e \le \varphi(n)\)\((\varphi(n),e)=1\)(互素),因而在模\(\varphi(n)\)下,\(e\)有逆元:
    \[d \equiv e^{-1}\ (\text{mod}\ \varphi(n))\]
    其实就是:
    \[e d \equiv 1\ (\text{mod}\ \varphi(n))\]
    \(p\)\(q\)可抛弃。

    此时,加解密过程如下:

    1. 加密:
      \[c = m^e\ \text{mod}\ n\]
      其中\(m\)是明文,\(c\)是密文,\(e\)\(n\)都是公钥。

    2. 解密:
      \[m = c^d\ \text{mod}\ n\]
      其中\(d\)是私钥。

    计算例:

    选两个不同的奇素数分别为47和71,则:
    \[n = 47 \times 71 = 3337\\\varphi(n) = (47 - 1) (71 - 1) = 3220\]
    若选其间整数\(e = 79\),则有:
    \[79d \equiv 1\ (\text{mod}(3220))\]
    求出\(d = 1019\)。则公钥为3337和79,密钥为1019。

    设明文为6682326879666683,分组为:668 232 687 966 668 3。我们来算算第一组的密文,并验证解密过程:
    \[c = 668^{79}\ \text{mod}\ 3337 = 1570\\1570^{1019}\ \text{mod}\ 337 = 668\]

  4. RSA是否可以看成是分组密码体制?为什么?

    可以。如以上过程所示,可以将数据分组加密。

  5. 采用双钥体制时,要用接收方的公钥加密,用接收方的私钥解密。

6. 消息认证与杂凑函数

基础知识

对称加密(私钥加密)和非对称加密(公钥加密)都无法保证消息的真实性。我们举两例:

例1:对于流密码,攻击者将原密文的比特打乱顺序。对于组间无关联的分组密码,攻击者将某分组替换为过去时刻的密文分组。此时,私钥加密的消息是不真实的。

例2:任何人都可以伪装成Alice,用Bob的公钥加密信息,然后发送给Bob。即,公钥加密可以加密信息,但无法提供身份认证。

  1. 认证的两种方式

    1. 对称认证。例如企业内部人员之间的认证。主要防止第三方窜改。
    2. 非对称认证。例如商业伙伴之间。主要防止对方窜改。
  2. 杂凑(hash)函数

    Hash函数可以将任意长的数字串压缩(映射)成较短定长的比特串。

    常用的hash函数有MD5,SHA以及采用分组密码算法构造的hash函数。

    我们通常采用单向杂凑函数,要求:

    1. 快速,即\(y = H(x)\)计算简单。
    2. 单向,即\(x = H^{-1}(x)\)计算困难。
    3. 无碰撞,即\(x_1 \ne x_2,\ H(x_1) = H(x_2)\)的点对几乎不存在。
  3. 消息认证码MAC的使用

    1. 发送者将消息\(m\)和MAC一起发送给接收者。
    2. 接收者收到消息后,也计算MAC。
    3. 若MAC相同,则消息未被窜改;若MAC不同,则消息被窜改。
  4. 消息摘要MDC
    \[\text{MDC} = H(m)\]

考点

  1. 请说明Hash函数与加密函数有何不同。

    Hash函数是计算不可逆的,而加密函数可逆。并且加密函数是陷门函数(有陷门)。

  2. 杂凑函数具有哪些性质?

    1. 输入长度任意,而输出长度恒定。
    2. 快速性
    3. 单向性(抗原象攻击)
    4. 抗碰撞攻击
  3. 什么是消息认证码MAC?如何构造?

    MAC是一种认证技术,利用密钥生成一个固定长度的短数据块,并将该数据块附加在消息后。构造方式如下:
    \[\text{MAC} = H(m || k)\]
    其中,\(m\)是变长的消息,\(k\)是收发双方共享的密钥,MAC就是定长的认证符。

    理解:就是一个与明文有关的加密,得到的密文作为校验码。此时,消息的真实性将依赖于共享密钥的真实性。任何拥有这一密钥的接收者都可以验证消息的真实性。

  4. 什么是消息检测码(或消息摘要)MDC?简述其与MAC的异同。

    MDC是无密码控制的单向杂凑函数,其杂凑值仅仅是输入字符串的函数。MDC不具有身份认证功能,而MAC具有身份认证功能。MDC和MAC都具有数据完整性认证功能。

  5. MD5输出长度是128比特。

  6. SHA-1输出长度是160比特。

  7. 熟悉图6-1、图6-2、图6-5、图6-6几个图所能提供的安全功能。

    【我们学完签名再说】

7. 数字签名

基础知识

  1. 与消息认证的区别
    1. 若收发方没有利益冲突(如企业内部),则消息认证对于防止第三方破坏而言已经足够。因为收方既能验证消息发送者的身份是否被篡改,也能验证消息是否被篡改。
    2. 若收发方存在利益冲突,则必须采用数字签名技术,来确保消息来源的真实性、实体身份的真实性以及不可否认性。

考点

  1. 数字签名应该具有哪些性质?

    1. 接收方能验证签名,但不能伪造签名。
    2. 发送方不能否认自己签发的消息。
    3. 接收方收到后不能否认。
    4. 第三方可以确认双方的收发,但不能伪造过程。
  2. 数字签名可以分为哪几类?

    按照消息是否被压缩,可以分为:

    1. 对整体消息进行签名。
    2. 对压缩的消息进行签名。

    按照消息和签名的对应关系,可以分为:

    1. 确定性数字签名:消息与签名一一对应,如RSA算法。
    2. 随机化数字签名:签名取决于算法中的随机参数取值,如ElGamal算法。
  3. RSA签名是基于大整数分解难题。

  4. ElGamal签名是基于求解离散对数难题。

  5. 数字签名时,签名者用自己的私钥;验证时,验证者用签名者的公钥。

  6. Diffie-Hellman能用来做数字签名吗?【要学下一章】

    不能。DH协议是用来交换密钥的。

  7. 单钥体制能用来做数字签名吗?

    不能。发送者和接收者可能存在利害冲突。

  8. 数字签名与双钥加密有什么区别?

    Alice用自己的私钥对消息签名,且用Bob的公钥对信息加密;然后消息和签名都发送给Bob。

    Bob用自己的私钥对密文解密,并且用Alice的公钥验证签名。

  9. 上一章遗留问题:消息认证码和签名的应用模式

    1. 只提供消息认证

      明文没有加密,且是共享密钥,无法防止第三方窜改。

      如果发送方、接收方无利害关系,只需防范第三方窜改,那么消息认证就够用了,不需要签名。

    2. 提供保密和消息认证

      保密:对信息(明文和哈希)加了密;

      认证:哈希值比较。

    3. 提供消息认证和数字签名

      上图文字有误,应该是A的公钥。所谓数字签名,就是只有A能产生自己的签名(通过自己的私钥),从而得到保护(能认证A的身份)。

    4. 保密性、消息认证和数字签名都能提供

8. 密码协议

基础知识

  1. 密钥建立(交换、分配)协议

    会话密钥一般只在一次通信中有效。每次均不同。

    1. 采用单钥体制

      要求Trent必须安全可信赖。Trent分别用Alice和Bob的密钥加密了随机会话密钥,都发给Alice。

    2. 采用双钥体制

      Alice生成一个随机会话密钥,通过Bob的公钥加密后发给Bob。这样,双方都拥有了会话密钥。

  2. 中间人攻击

    A和B想用双钥体制加密通信。按常规流程,A要获取B的公钥即可,或B获取A的公钥即可。

    此时出现了攻击者C。C偷偷将A电脑里B的公钥换成了自己的公钥,将B电脑里A的公钥换成自己的公钥。

    或者更具体地,C在A和B发送公钥过程中调包成自己的公钥。

    今后,如果A发送给B消息,那么A实际上采用的是C的公钥进行加密。C一旦截获信息,就能解密。

    同理,C也能解密B发送给A的消息。

  3. 认证协议

    以往的认证是采用口令的形式,安全性较弱。我们这里采用协议。

    1. 采用单向函数

    2. 采用双钥体制

  4. SKID协议

    以下分别介绍SKID2和SKID3:

考点

  1. 协议的三要素:

    1. 协议是一个有序的过程,每个步骤必须依次执行
    2. 协议至少要有两个参与者
    3. 执行协议后必须能完成某项任务。若没有完成任何任务,则不能作为协议。
  2. 如果按照功能分类,密码协议可以分为哪几类?

    1. 认证协议:向一个实体提供关于另一个实体的身份的确信度。
    2. 密钥建立协议:在两个通信实体间建立共享密钥。
    3. 认证的密钥建立(交换、分配)协议:在另一实体身份已经证实的条件下,在两个通信实体间建立共享密钥。
  3. 请用数学表达式写出Diffie-Hellman协议的密钥交换过程。

    前面提到过,这其实是一个双钥算法,其安全性基于计算离散对数的困难性。DH协议同样可以用于密钥交换。过程很简单:

    1. Alice和Bob均知道两个大素数\(n\)\(g\)。这两个数是公开的。

    2. Alice和Bob分别随机选取两个大整数\(x\)\(y\),作为他们的私钥。

    3. 同时,他们的公钥分别为:
      \[X = g^x\ \text{mod}\ n\\Y = g^y\ \text{mod}\ n\]

    4. Alice用Bob的公钥即可计算得到共享密钥,Bob同理:
      \[K = Y^x\ \text{mod}\ n = X^y\ \text{mod}\ n = g^{xy}\ \text{mod}\ n\]
      这就是他们的共享会话密钥。

  4. DH协议不能用来做数字签名。

  5. 什么是中间人攻击?如何对DH协议进行中间人攻击?请画图说明。DH协议不能抵抗中间人攻击的本质原因是什么?如何改造DH协议,可以抵抗中间人攻击。

    中间人攻击:第三方不仅能窃听A和B之间的通信,而且能够窜改信息。中间人既可以冒充A与B会话,也可以冒充B与A会话。

    对DH协议进行中间人攻击

    1. Mallory选取大整数\(l\),结合公开的大素数\(n\)\(g\),得到自己的公钥\(L=g^l\ \text{mod}\ n\)
    2. M截获A和B之间的公钥传递,使得B建立的“共享会话密钥”为\(K_B=g^{ly}\ \text{mod}\ n\)。同理,A建立的“共享会话密钥”为\(K_A=g^{lx}\ \text{mod}\ n\)
    3. 这样,M就与A和B分别建立了会话密钥,而A和B不知情。

    攻击本质:公钥的真实性无法保证,使得对方身份的真实性无法保证。

    改造:引入数字证书。公钥必须通过数字证书获取。

    数字证书解决了公钥的公信力问题。

  6. 请画图分析P218的SKID协议为什么不能抵抗中间人攻击。

    关键在于密钥K。该密钥一旦被中间人共享,后面证明就简单了。

  7. 掌握大嘴青蛙协议和Yahalom安全协议设计的思想。

    这两种协议都属于认证的密钥协议。【貌似认证需要可信第三方介入】

    1. 大嘴青蛙协议(单钥)

      其中,\(E_A\)是Trent与Alice共享的密钥,\(A\)是Alice的姓名标识符,\(K\)是随机会话密钥,\(T_A\)是时戳。Alice将时戳、Bob的姓名标识符和随机会话密钥连接,然后加密,与其姓名标识符一起发给Trent。

      此时,随机会话密钥就完成了传递。这要求Alice能产生高质量的随机会话密钥\(K\)

      核心:Alice和Trent共享一个密钥,Bob和Trent也共享一个密钥。

    2. Yahalom协议(单钥)

      其中\(R_A\)是随机数。有趣的是:Alice并不解密第二条信息,而是留给Bob解密。解密后就能获得随机会话密钥\(K\)

      核心:K由Trent产生。不再要求A产生高质量K。

9. 数字证书与公钥基础设施

基础知识

  1. 数字证书的生成流程

    密钥生成,用户注册,验证信息,证书生成。前三步由RA完成,最后一步由CA完成。

  2. 数字证书的验证流程

考点

  1. 什么是PKI?PKI由哪几部分组成?每一部分的作用是?

    PKI:公钥基础设施(Public Key Infrastructure),目的是解决身份认证、信息完整性认证和不可抵赖性等安全问题。

    PKI的基本组成和功能:

    1. 证书机构CA:发放和管理证书等。(生成和颁发数字证书)
    2. 注册机构RA:证书注册和审批。(接受与验证信息,为用户生成密钥,接受撤销请求)
    3. 证书发布库:集中存放CA颁发证书和撤销列表。
    4. 密钥备份与恢复:备份和恢复CA的公钥/私钥对。
    5. 证书撤销
    6. PKI应用接口
  2. 什么是数字证书?一个数字证书包含哪些内容?

    数字证书:将用户身份ID其所持公钥PK绑定,再由CA对二者的组合ID || PK进行数字签名得到S,最后存储的S || ID || PK就是数字证书。

  3. X.509标准规定了数字证书的格式
    \[\text{Cert} = \{\text{ID}_A\ ||\ K_P^A\ \ \text{Sig}_{K_S^{CA}}(\text{ID}_A\ ||\ K_P^A)\}\]

  4. 实际中,由CA签发证书。签发时采用CA的私钥,验证时采用CA的公钥

  5. 数字证书的作用是什么?本质是解决什么安全问题?

    作用:证明网络实体在特定安全应用的相关信息。解决了公钥的可信性问题。

10. 网络加密与密钥管理

  1. 熟记网络加密的4种方式

    1. 链路加密:在链路上是加密的,但节点处是明文,有危险。
    2. 节点加密:节点处设置安全模块用来加解密。
    3. 端到端加密:只需要两台加密机,即发送端和接收端。
    4. 混合加密:链路加密+端到端加密。
  2. 密钥有哪些种类?它们各有什么用途?

    1. 初始密钥:一对用户在较长时间内专用的密钥。
    2. 会话密钥:一对用户在一次通话或交换数据时使用的密钥。
    3. 密钥加密密钥:对会话或文件密钥进行加密的密钥。
    4. 主机主密钥:对密钥加密密钥进行加密的密钥。
    5. 数据加密密钥
  3. 密钥管理为什么要将密钥划分成不同的层次?

    利于分级管理。极少数密钥以明文形式存储在有严密物理保护的主机密码器件中,其余密钥则以密文形式存储在密码器之外。这样,密钥管理就可以大大简化,安全性也高。

  4. 一个好的密钥应具备哪些特性?

    1. 真正的随机等概率。
    2. 避免使用特定算法的弱密钥。
    3. 满足一定的数学关系。
    4. 容易记,难猜。
    5. 使用密钥杂凑技术,将句子经单向杂凑函数转换为伪随机数串。

11. 无线网络安全

基本知识

  1. GSM网络体系结构

考点

  1. 无线网络面临哪些安全威胁?请写出5种以上。

    1. 窃听
    2. 通信阻断
    3. 匿名攻击
    4. 接入点伪装
    5. 中间人攻击
    6. 数据注入与窜改
    7. 客户端对客户端的攻击
  2. 请画图描述GSM的保密和认证流程。

  3. GSM的主要安全缺陷有哪些?

    1. 只有无线链路(移动设备和基站之间)加密,基站间没有加密。因此\(K_c\)和SRES在网络中以明文传输,可能被黑客窃听。
    2. \(K_i\)长度为48比特,若RAND和SRES被截获,很容易被破译。而且其长度一般不变,使得SIM卡可能被复制。
    3. 单向身份认证:网络认证用户,但用户不认证网络,可能存在伪基站和HLR攻击。
    4. 无数据完整性认证。
    5. 跨区切换时容易泄露信息,因为只有无线链路加密。
    6. 用户无法选择安全级别。
  4. 为何挑战值是一个随机数而不能是常数?

    可以防止强力攻击:一个128比特的随机数意味着\(3.4 \times 10^{38}\)种可能的组合。因此即使黑客知道A3算法,也很难猜出正确的RAND/SRES。若替换为常数值,即每一次SRES相同,一旦被截获,用户就有可能被攻击者冒充。

  5. 请画图描述3G蜂窝系统的保密和认证工作流程。

    其中的一些概念:

    1. 移动控制台MS向归属位置登记数据库VLR(临时注册)请求认证。
    2. VLR向归属位置登记数据库HLR(永久注册)发送用户的跨国移动用户标识卡IMSI。
    3. HLR产生序列号SQN和随机数RAND,计算认证向量AV并发送给VLR。
    4. VLR将RAND和网络认证令牌AUTN发送给MS,请求用户产生认证数据。
    5. MS计算XMAC,并与AUTN中的MAC比较;MS还验证SQN是否有效。
    6. 若以上验证均通过,MS继续计算认证响应RES、加密密钥CK和完整性密钥IK。其中RES发送给VLR。
    7. VLR将RES与AV中的XRES比较,相同即认证成功。

    我们可以看到:

    (1)网络和用户彼此都有身份认证。

    (2)产生了保密性密钥CK和完整性密钥IK,并且是共享的。

    (3)IK和CK在传输时没有加密,可能会被窃听。

    (4)没有采用数字签名技术,认证较为简单,认证协议存在安全漏洞。

    (5)算法过多;密钥产生机制不安全。

  6. 为何3G系统比2.5G系统更安全?3G系统在安全性方面有哪些提升?请说明3G协议中5元组的每一项的作用。

    2.5G系统采用的是单向认证;而3G系统采用双向认证。

    3G系统的安全性改进,实现了以下3个目标:

    1. 实现了用户与网络之间的互相认证。
    2. 建立了用户与网络之间的会话密钥。
    3. 保持了密钥的新鲜性。

    五元组:

    1. RAND:随机数
    2. XRES:认证应答
    3. CK:保密性令牌
    4. IK:完整性令牌
    5. AUTN:网络认证令牌
12-24 19:46