计算机等级考试三级信息安全技术章节习题2

二、信息安全技术与原理

简述密码体制的构成

  • 消息空间:明文 m ,明文空间 M
  • 密文空间:密文 c ,密文空间 C
  • 密钥空间: 密钥 k ,密钥空间 K
  • 加密算法 E ,$c=E_k(m)$ 或 $c=E(m,k)$
  • 解密算法 D ,$m=D_k(c)$ 或 $m=D(c,k)$

加密密钥通常表示为 $k_e$ ,解密密钥通常表示为 $k_d$ :

简述分组密码与序列密码的区别

对称密码体制根据明文加密方式分为分组密码和序列密码两种

  • 分组密码(分块密码),将明文消息编码表示后的位或字符序列,按指定的分组长度划分为多个分组,每个分组在密钥控制下变换成等长的输出,如果编码长度不是分组长度的整数倍,需对明文进行填充。常见分组密码: DES 、IDES 、AES
  • 序列密码(流密码),将明文和密钥或分为位或字符序列,对明文序列中每一位或字符都用密钥序列中的对应分量来加密。常见序列密码:RC4 、SEAL 、ZUC 、ChaCha20 、Trivium

分组密码每一次加密一个明文组,而序列密码每一次加密一位或一个字符

简述对称密码和非对称密码体制的区别

  • 对称密码体制(单密钥密码体制),发送方与接收方共享相同的密钥(加密密钥与解密密钥相同),密钥管理困难,通信双方必须先预约相同的密钥后才能进行加密,任何对称加密算法的设计,混淆及扩散是两个重要的安全特性
  • 非对称密码体制(公开密钥密码体制,公钥密码体制),使用加密密钥 $K_e$ 控制加密,使用解密密钥 $K_d$ 控制解密,由计算复杂性确保通过加密密钥 $K_e$ 计算不能推出解密密钥 $K_d$ 。样公开 $K_e$ 也不会暴露 $K_d$ ,也不会损害密码的安全。公开了加密密钥,对解密密钥进行保密,从根本上客服了传统密码在密钥分配上的困难

简述分组密码的工作模式

分组密码的工作模式是一种算法,刻画了如何利用分组密码提供安全服务,主要有5种工作模式

  • 电子密码本模式:利用分组密码对明文的各分组进行加密
  • 密码分组链模式:明文要与前面的密文进行异或运算然后被加密,形成密文链
  • 密码反馈模式
  • 输出反馈模式
  • 计数模式

什么是乘积密码,它的主要作用是什么?简述 DES 和 AES 所使用的两类乘积密码

乘积密码是采用 m 个函数 $f_1,f_2,···,f_m$ 复合,其中每个 $f_i$ 可能是一个代换或置换,代换和置换称为混淆和扩散的过程,破坏对称密码系统进行的各种统计分析 ,常见的乘积密码是迭代密码

  • 数据加密标准(DES)算法:分组大小64位,加密或解密密钥也为64位。有8位用来奇偶校验,真正起密钥作用的只有56位,除了子密钥的顺序不同外,其他部分完全相同
  • 高级加密标准(AES)算法:分组长度固定为128位,密钥可为128、192或256位,在整体上采用SP网络组成圈函数,多圈迭代,S为混淆层起混淆作用,P为扩散层起扩散作用

简述 AES 、 IDEA 两类典型对称密码加密算法的工作原理,简述 RSA 算法的原理以及参数选择,简述 ECC 所依赖的数学难题

  • AES:AES算法处理的数据块被分成一个字符矩阵,每次加密操作都是在字节级上定义的。明文 m 执行初始的密钥加变换,将得到的输出作为迭代运输的输入,之后执行指定次数的迭代运输,每次迭代都将运行圈函数F ,圈函数 F 分为4层,第一层是 S 盒变换 ByteSub 是AES算法唯一的非线性变换起混淆作用,第二层行移位变换 ShiftRow ,第四层列混淆变换 MitColumn 是线性混合层矩阵行被位移,列被混叠,确保多伦之上的高度扩散,第四层为圈密钥加变换 AddRoundKey ,矩阵中的每个字节都将与子密钥进行异或
  • IDEA:利用128位的密钥对64位的明文分组,经过连续加密产生64位的密文分组。使用3种函数混合组合来打乱数据,无法用化简的方式来分析密文与明文及密钥之间的关系,3个函数中任意两个函数都无法满足结合律和分配律
  • RSA : 基于一个十分简单的数论事实,将两个大素数相乘十分容易,但想要对乘积进行因式分解极其困难,因此可以将乘积公开作为加密密钥

    • 随机两个大素数 pqp, q 保密

    • 计算 $n=pq$ 。 n 公开

    • 计算 $φ(n)=(p-1)(q-1)$ 。 $φ(n)$ 保密

    • 随机正整数 $e$ , $1<e<φ(n)$ 且 $e$ 与 $φ(n)$ 互素,en 构成用户的公钥

    • $ed≡1\ mod\ φ(n)$ 计算出 dd 保密 , dn 构成用户私钥

    • 加密:$C=M^e\ mod\ n$

    • 解密:$M=C^d\ mod\ n$

      $φ(n)$ 称为欧拉函数

      RSA加解密运算具有可交换性: $D(E(m))=(M^e)^d=M^{ed}=(M^d)^e=E(D(m))\ mod\ n$

      RSA密码的 n 至少取 1024 位,最好2048位,安全性要求较高的要达4096位

      为了确保RSA密码的安全,参数的选择需要:

      • pq 要足够大,才能确保 $n=pq$ 足够大,以对抗因式分解攻击
      • pq 要为强素数
      • pq 的差要大 ,及 $|p-q|$ 要大
      • $p-1$ 和 $q-1$ 应有大的公因子
      • e : 为了使加密速度快,e 的二进制中应含尽量少的 1 ,有学者建议 $e=65537$ 其二进制表示中只有两个 1 ,比 2 安全且加密速度快
      • d : 为了使加密速度快,选用小的 d ,但太小也不行,当 d 小于 n1/4 时,已有求出 d 的攻击方法
      • 不要许多用户共用一个模数 n
  • ECC(椭圆曲线密码),椭圆曲线方程 $y^3=x^3+ax+b(mod\ p)$ p 为一个素数或 2 的幂(有时称椭圆曲线的秩(zhì))且 $4a^3+27b^2≠0$,依赖椭圆曲线上的离散对数问题设计该密码

设通信双方使用 RSA 加密体制,接收方的公开钥是 $(e,n)\ =\ (5,35)$ ,接收到的密文是 $c\ =\ 10$ ,求明文 $m$

$ n=pq\ ;\ \phi (n)=(p-1)(q-1)\ ;\ ed \equiv1\ mod\ \phi (n)\ $

$ c=m \wedge e\ mod\ n\ ;\ m=c\wedge d\ mod\ n $

$ ed \equiv 1\ mod\ \phi (n)\ \to\ ed\ mod\ \phi (n)=1 $

$ n=5 \times 7\ ;\ \phi (n)=4 \times 6=24 $

$ 5 \times d \equiv 1\ mod\ 24 $

$ d = 5 $

$ m = 10 \wedge 5\ mod\ 35 $

$ m = 5 $

什么是哈希函数?对哈希函数的基本要求和安全性分别是什么?

哈希函数又叫散列函数、紧凑函数,只有加密过程没有解密过程,要求任意长度输入经过变换后得到固定长度的输出,也称为原消息的散列或消息摘要,理想的哈希函数对于不同的输入可以获得不同的哈希值。

哈希函数特点:

  • 压缩
  • 易计算
  • 单向性
  • 抗碰撞性
  • 高灵敏性

简述 SHA3 的工作原理

使用海绵机构,分为两个阶段吸收阶段和压榨阶段

  • 吸收阶段

    消息先被填充切块,切成长度为 r 的 t 个分组(记为$x0,x_1,···,x{t-1}$),依次输入到函数f中,输入 b 比特的值输出也是 b 比特的值($b=r+c$),SHA3中吧固定取 1600 ,函数每次运行会“吸收”掉一个长度为 r 的消息分组,函数 f 运行 t 次后,整个消息就被“吸收”了

  • 压榨阶段

    进入压榨阶段函数继续运行,但不再吸收消息分组,而是每次产生 r 个比特的输出值,直到输出值的长度满足算法需要为止,若 r 大于算法要求输出值的长度,则从压榨阶段的第一次输出中截取

简述数字签名的作用及数字签名体制的两个过程。数字签名要预先使用单向哈希函数进行处理的原因是什么?

数字签名是一种以电子形式存在于数据信息中、附件中或逻辑上与之有联系的数据中,用于鉴别数据签署人的身份,表明签署人认可数据信息中所含信息的技术

把明文当成密文由解密算法得到数据,在由加密算法将数据恢复成明文,由于加解密算法不可分割,数据不能被其他人伪造,签名者也不能否份

  • 签名过程

    A用自己保密的解密密钥 $K{dA}$ 对明文数据 M 进行签名: $S_A=D(M,K{dA})$ (A 使用私钥对明文直接解密

    $SA$ 为 A 对 M 的签名,若不需保密A直接将 $S_A$ 发送个用户B,若需要保密则 A 查阅 PKDB 查到 B 的公开加密密钥 $K{eB}$ ,并用 $K{eB}$ 对 $S_A$ 进行加密得到密文 C : $C=E(S_A,K{eB})$ ,最后 A 把 C 发送给 B 并将 $S_A$ 或 C 留底使用 B 的公钥对 $S_A$ 进行加密

  • 验证签名过程

    B 收到后,若不是保密通信,则通过查阅 PKDB 查到 A 的公开加密密钥 $K{eA}$ 用来对签名进行验证:$E(S_A,K{eA})=E(D(M,K{dA}),K{eA})=M$ (使用 A 的公钥对 $S_A$ 加密得到明文数据

    若是保密通信,B 首先用自己的保密的解密密钥 $K{dB}$ 对 C 解密,然后查阅 PKDB ,查到 A 的公开加密密钥 $K{eA}$ 用 $K{eA}$ 对签名进行验证: $D(C,K{dB})=D(E(SA,K{eB}),K{dB})=S_A$ ; $E(S_A,K{eA})=E(D(M,K{dA}),K{eA})=M$ (B 使用自己的私钥解密得到 $S_A$ ,在用 A 的公钥对 $S_A$ 加密得到明文数据

    验证签名的过程就是恢复明文的过程。若能恢复出正确的M,说明$S_A$ 是 A 的签名

    B 将收到的 $S_A$ 或 C 留底

    B 给 A 回复 “收到M” 的签名回执,A收到回执后同样验证签名并留底

    只有 A 拥有 $K{dA}$ 且公开的 $K{eA}$ 在计算上不能求出保密的解密密钥 $K{dA}$ ,所以签名只能 A 进行,因此 $K{dA}$ 相当于A的印章或指纹,而 $S_A$ 就是 A 对 M 的签名,对此 A 不能抵赖,其他人也不能伪造

简述在公钥体制下利用 Diffie-Hellman 方法产生共享密钥的方法

Diffie-Hellman 是最典型的密钥交换协议算法,是一个匿名密钥交换协议

在 Diffie-Hellman 算法中有两个全局公开参数,分别是一个素数 p 和一个整数 g ,g 是 p 的原根。甲随机选取 b 计算出 $A=g^a\ mod\ p$ ,乙随机选取 b 计算出 $B=g^b\ mod\ p$ 甲乙交换 A 和 B ,分别计算出共享的密钥 $K=B^a\ mod\ p=A^a\ mod\ p$

甲: $K=B^a\ mod\ p=(g^b)^a\ mod\ p=g^ab\ mod\ p$

乙: $K=A^b\ mod\ p=(g^a)^b\ mod\ p=g^ab\ mod\ p$

必须确保协议运行过程中收到的信息来自真实的对方

简述密钥分配的分类及各自的工作原理

密钥分配方法:

  • 公开发布:用户将自己的公钥发给其他用户,或向某一团体广播(简单,但任何人都能伪造)
  • 公用目录:建立一个公用的公钥动态目录,由一个可信的实体或组织来建立、维护及公钥分发(安全性更高,但公钥目录表可能被伪造,也易受到对手窜扰)
  • 公钥授权:一个公钥管理机构负责建立、维护通信各方的公钥动态目录表,用户都可靠的知道管理机构的公开密钥,且只有管理机构知道相应的秘密密钥(比前面更安全,但可能存在瓶颈,也可能被窜扰)
  • 公钥证书:用户通过公钥证书交换自己的公钥而无需与公钥管理机构联系,公钥证书管理机构(Certification Authority , CA) 为用户建立。用户可将自己的公开密钥通过公钥证书发给另一个用户,接收方可用 CA 的公钥对证书加以验证 (克服了公钥管理机构模式的不足)

什么是消息认证?为什么要进行消息认证?

消息认证:验证所收到的消息确实来自真正的发送方,并且未被篡改的过程

消息认证是为了防止:伪装、内容修改、顺序修改、计时修改

消息认证的方法有哪些?为什么人们一直用哈希函数而不用对称密码来构造消息认证?

  • 消息加密 :整个消息的密文作为认证码
  • 消息认证码:利用密钥生成一个固定长度的数据块,将该数据块附加在消息后
  • 哈希函数:是一种消息认证码的变形,通过输入可变大小的消息 m ,输出固定大小的哈希值 H(m)

哈希值是所有消息位的函数,它具有错误检测能力,即改变消息的任何一位或多位都会导致哈希值的改变

简述基于 DES 的消息认证码的生成算法

MAC 算法是基于 DES 的使用最广泛的 MAC 算法之一,满足保密性和安全性

将需认证的数据分成大小为 64 位的分组 $D_1 ||D_2||···||D_N$ 若最后分组不足 64 位,则在其后填 0 直至成为 64 位。然后基于密文反馈链接(CBC) 的分组密码工作模式计算得到认证码

简述身份认证的协议

  • 基于口令的认证:口令是双方预先约定的秘密数据,用来验证用户知道什么
  • 基于对称密码的认证:建立一个鉴别服务器的可信权威机构密钥分发中心(KDC),拥有每个用户的秘密密钥,想通信则用户向鉴别服务器中申请会话密钥(两人共用一个密钥),在会话密钥的分配过程中,身份得到鉴别
  • 基于公钥密码的认证
    • 双方知道对方的公钥:直接使用公私钥生成和验证签名
    • 算法不知道对方的公钥:经第三方可信的公钥保存库获得对方的公钥,然后生成签名与验证签名

描述使用 DES 算法实现的一次性口令的算法

系统生成一个随机数 r ,并对其进行加密得到 $E_K(r)$ ,将 $EK(r)$ 提供给用户,用户计算 $E_K(D_K(E_K(r))+1)$ ,并将值返回给系统,同时系统计算 $r+1$ ,系统将用户返回的值与系统自己计算的值进行比较,相等则系统认为用户为真,系统和用户必须持有相同的密钥

描述基于公钥密码的单向和双向身份认证过程

  • 单向身份认证:双方知道对方的公钥

    • A 发送一个随机数 $r_a$ 给 B

    • B 产生随机数 $r_b$ , 将自己的证书 $Cert_b$ 、 $r_b$ 及 用私钥对随机数签名信息发给 A

      若需要双向认证 A 将自己的证书 $Cert_a$ 以及使用私钥签名的信息发给 B

  • 双向身份认证:双不知道对方的公钥

    • 需要一个可信的第三方 T 保存公钥
    • A 向 T 发送将要通信的对象 B
    • P 将用 T 私钥签名的 B 公钥 $K_b$ 、用 P 私钥签名的 A 公钥 $K_a$ 发送给 A ,A 可用 P 的公钥验证签名
    • A 生成一个随机回话密钥 K 用自己的私钥对 K 和一个时间标记 $T_a$ 进行签名后,用 B 的公钥对该签名加密 ,并将第三方给两者的公钥的签名一起发送给 B

简述数字签名的产生和验证过程

  • 签名过程

    A用自己保密的解密密钥 $K{dA}$ 对明文数据 M 进行签名: $S_A=D(M,K{dA})$ (A 使用私钥对明文直接解密

    $SA$ 为 A 对 M 的签名,若不需保密A直接将 $S_A$ 发送个用户B,若需要保密则 A 查阅 PKDB 查到 B 的公开加密密钥 $K{eB}$ ,并用 $K{eB}$ 对 $S_A$ 进行加密得到密文 C : $C=E(S_A,K{eB})$ ,最后 A 把 C 发送给 B 并将 $S_A$ 或 C 留底使用 B 的公钥对 $S_A$ 进行加密

  • 验证签名过程

    B 收到后,若不是保密通信,则通过查阅 PKDB 查到 A 的公开加密密钥 $K{eA}$ 用来对签名进行验证:$E(S_A,K{eA})=E(D(M,K{dA}),K{eA})=M$ (使用 A 的公钥对 $S_A$ 加密得到明文数据

    若是保密通信,B 首先用自己的保密的解密密钥 $K{dB}$ 对 C 解密,然后查阅 PKDB ,查到 A 的公开加密密钥 $K{eA}$ 用 $K{eA}$ 对签名进行验证: $D(C,K{dB})=D(E(SA,K{eB}),K{dB})=S_A$ ; $E(S_A,K{eA})=E(D(M,K{dA}),K{eA})=M$ (B 使用自己的私钥解密得到 $S_A$ ,在用 A 的公钥对 $S_A$ 加密得到明文数据

    验证签名的过程就是恢复明文的过程。若能恢复出正确的M,说明$S_A$ 是 A 的签名

    B 将收到的 $S_A$ 或 C 留底

    B 给 A 回复 “收到M” 的签名回执,A收到回执后同样验证签名并留底

    只有 A 拥有 $K{dA}$ 且公开的 $K{eA}$ 在计算上不能求出保密的解密密钥 $K{dA}$ ,所以签名只能 A 进行,因此 $K{dA}$ 相当于A的印章或指纹,而 $S_A$ 就是 A 对 M 的签名,对此 A 不能抵赖,其他人也不能伪造

举例说明访问控制中主体和客体,简述访问控制模型的分类及其优缺点

  • 主体:一个主动的实体,提供对客体中的对象或数据的访问要求(可以是能访问信息的用户、程序、进程)
  • 客体:含有被访问信息的被动实体
  • 自主访问控制(DAC):也叫任意访问控制,根据自主访问控制策略建立的一种模型,允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体
    • 优点:根据主体的身份和访问权限进行决策;具有某种访问能力的主体能够自主地将访问权限的某个子集授予其他主体;灵活性高,被大量使用
    • 缺点:信息在传递的过程中其访问权限关系会被改变
  • 强制访问控制(MAC):强加给访问主体的,系统强制主体服从访问控制政策。主要特征是对所有主体及其控制的客体实施强制访问控制

举例说明访问能力表和访问控制表的应用

  • 访问能力表(CL):基于矩阵 的访问控制信息表
  • 访问控制表(ACL):基于矩阵 的访问控制信息表
-ACLCL
保存位置客体主体
浏览访问权限容易困难
访问权限传递困难容易
访问权限回收容易困难
使用集中式系统分布式系统

描述Bell-LaPadula 模型和 Biba 模型的工作原理和区别

  • Bell-LaPadula(BLP)模型:不上读、不下写原则(不允许低安全等级读高敏感信息,不允许高敏感信息写入低敏感区),安全等级:无密、秘密、机密、绝密

    BLP存在不保护信息的完整性和可用性、不涉及访问控制等缺点

  • Biba模型:不下读、不上写原则(很重要级别能向重要级写入,但不能读取)保障数据的完整性,完整性级别:重要、很重要、极重要

    Biba是BLP的补充,也使用了和BLP模型相似的安全级别划分方式,只不过Biba的划分方式是信息对象的完整性

  • Chinese Wall 模型是应用在多边安全系统中的安全模型(多个组织间访问控制系统)

简述 RADIUS 协议 、 TACACS 协议以及 Diameter 协议的区别

  • RADIUS 协议:拨号用户远程认证服务,一种网络协议,提供集中式 AAA 管理。一个客户端/服务器协议,运行在应用层,使用 UDP 协议,身份认证和授权使用1812端口,审计使用1813端口
  • TACACS协议:终端访问控制器访问控制系统,允许远程访问服务器传递用户登录密码给认证服务器,认证服务器决定该用户是否可以登录系统。使用传输控制协议(TCP)
-RADIUSTACACS+
包传输UDPTCP
包加密仅加密在RADIUS客户端和服务端间传送的密码加密客户端服务端间的所有流量
AAA支持组合认证与授权服务使用AAA体系机构,分隔认证、授权和审计
多协议支持在PPP连接上工作支持其他协议,如:AppleTalk、NetBIOS和IPX
响应在认证时使用适用于所有AAA活动的单质响应对每一个AAA进程使用多质响应,每个AAA活动必须进行认证
  • Diameter协议:是 RADIUS 协议的升级版,支持移动IP、NAS请求和移动代理的认证、授权和审核工作,协议的实现和 RADIUS 类似,但采用 TCP 协议,支持分布式审计,客服了 RADIUS 的许多缺点,是最适合未来移动通信系统的 AAA 协议
-RADIUSDiameter
模式固有的客户端/服务器模式,限制了进一步发展端到端模式,任何一段都可发送消息发起审计等功能或中断连接
传输机制运行在UDP协议上,且没有重传机制运行在可靠的TCP、SCTP协议上
失败恢复机制不支持支持应用层确定,定义了失败恢复算法和相关的状态机,能立即检测出传输错误
服务器初始化信息服务器不能主动发起消息,只能客户能发出重授权请求,所有服务器不能根据需要重新认证指定了两种消息类型(重认证请求和重认证应答消息)使得服务器可以随时根据需要主动发起重认证
认证和授权必须成对出现认证和授权分离,重授权可随时根据需求进行
安全机制仅在应用层定义了一定的安全机制,没有涉及数据的机密性要求必须支持IPsec以确保数据的机密性和完整性

简述单点登录机制及其实现原理

将不同系统和应用程序所需的访问控制功能抽离出来。用户在使用时只需要在统一的单点登录方案下进行一次验证,便可以访问到自己所需的网络、信息和其他资源

第一次访问时引导到认证系统进行登录,通过身份校验后给用户返回一个认证凭证 ticket ,用户再访问别的应用时将带着这个 ticket 作为自己的认证凭证,应用收到请求将 ticket 送到认证系统校验,检测 ticket 合法性,如果通过校验用户就不用再次登录就能访问别的应用系统了

所有应用系统共享一个身份认证系统

所有应用系统能够识别和提取 ticket 信息

简述审计和监控的作用及审计系统的组成

通过安全审计能记录系统被访问的过程以及系统保护机制的运行状态,发现试图绕过保护机制的行为及时发现用户身份的变化,报告并阻碍绕过保护机制的行为并记录相关过程,为灾难恢复提供信息等

安全监控通过实时监控网络或主机活动,监控分析用户和系统的行为,审计系统配置和漏洞,评估敏感系统和数据的完整性,识别攻击行为对异常行为进行统计和跟踪,识别违反安全法规的行为,使用诱骗服务器记录黑客行为等功能,使管理员有效地监视、控制和评估网络或主机系统

安全审计的两个目标:

  • 必须提供足够的信息使安全人员能将问题限制在局部,而信息量达不到以此为基础进行攻击
  • 优化审计记录的内容,审计分析机制应可以对一些特定资源辨识正常的行为

升级系统通常由日志记录器、分析器、报告器 3 部分组成

简述恶意行为审计与监控的实现方法及网络信息内容审计的方法

恶意行为的监控分为主机监测和网络监测

  • 主机监测:在用户主机上安装反病毒软件和基于主机的入侵监测软件,对入侵主机的已知恶意代码进行检测和预警
  • 网络监测:在活动网路中被动监听网络流量,利用检测算法识别网络入侵行为

网络监控的主要方法是网络舆情分析,网络信息内容审计主要用到:网络信息内容的获取(嗅探技术)和网络内容还原分析技术

网络舆情分析技术:舆情分析引擎,自动信息采集,数据清理

-------------本文结束感谢阅读-------------

欢迎关注我的其它发布渠道