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:网络认证令牌

Note | 北航《网络安全》复习笔记的更多相关文章

  1. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  2. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  3. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  4. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  5. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

  6. Java基础复习笔记基本排序算法

    Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...

  7. Angular复习笔记7-路由(下)

    Angular复习笔记7-路由(下) 这是angular路由的第二篇,也是最后一篇.继续上一章的内容 路由跳转 Web应用中的页面跳转,指的是应用响应某个事件,从一个页面跳转到另一个页面的行为.对于使 ...

  8. Angular复习笔记7-路由(上)

    Angular复习笔记7-路由(上) 关于Angular路由的部分将分为上下两篇来介绍.这是第一篇. 概述 路由所要解决的核心问题是通过建立URL和页面的对应关系,使得不同的页面可以用不同的URL来表 ...

  9. Angular复习笔记6-依赖注入

    Angular复习笔记6-依赖注入 依赖注入(DependencyInjection)是Angular实现重要功能的一种设计模式.一个大型应用的开发通常会涉及很多组件和服务,这些组件和服务之间有着错综 ...

  10. Angular复习笔记5-指令

    Angular复习笔记5-指令 在Angular中,指令是一个重要的概念,它作用在特定的DOM元素上,可以扩展这个元素的功能,为元素增加新的行为.本质上,组件可以被理解为一种带有视图的指令.组件继承自 ...

随机推荐

  1. asp.net允许跨域配置web.config

    <configuration> <system.webServer> <modules> <add name="CultureAwareHttpMo ...

  2. c#串口通信并处理接收的多个参数

    最近摸索做个上位机,简单记录一下关键的几个部分 c#做串口通信主要使用的是System.IO.Ports类,其实还是十分方便的 最终效果如下: 千万不要忘记了下面这个 填写串口相关配置 我们可以通过G ...

  3. dbms_profiler

    @?/rdbms/admin/profload.sql @?/rdbms/admin/proftab.sql CREATE or replace PUBLIC SYNONYM plsql_profil ...

  4. MySQL数据库~~~~~创建用户和授权、备份和还原

    一 MySQL创建用户和授权 1.1 对新用户增删改 1.创建用户: # 指定ip:192.118.1.1的chao用户登录 create user 'chao'@'192.118.1.1' iden ...

  5. java中文件复制的4种方式

    今天一个同事问我文件复制的问题,他一个100M的文件复制的指定目录下竟然成了1G多,吓我一跳,后来看了他的代码发现是自己通过字节流复制的,定义的字节数组很大,导致复制后目标文件非常大,其实就是空行等一 ...

  6. 特殊权限SUID

    特殊权限SUID SUID : 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者: chmod u+s File chmod u-s File 如果 FileB本身原来就有执行权限,则S ...

  7. django重点url,视图函数,模板语言

    django重点url,视图函数,模板语言url 1.django重点url无命名分组:re_path() 2.url第一个参:url未命别名分组就不需要views中参数一定,若命别名(?P<y ...

  8. IT兄弟连 HTML5教程 HTML5表单 新增的表单属性1

    HTML5 Input表单为<form>和<input>标签添加了几个新属性,属性如表1. 1  autocomplete属性 autocomplete属性规定form或inp ...

  9. 目前下载VS2017你可能会遇到这个坑

    可能现在大伙都已经开始使用VS2019进行开发了.VS2019的下载使用也都很简单.由于工作需要,今天要在笔记本上安装VS2017,结果发现,VS2017的下载变得不是那么容易了,官方的下载方式也隐藏 ...

  10. PAT 1006 Sign In and Sign Out 查找元素

    At the beginning of every day, the first person who signs in the computer room will unlock the door, ...