CISSP复习笔记-第7章 密码术

CISSP复习笔记-第7章 密码术

7.1 密码学的历史

  • 密码分析学(cryptanalysis):是一门研究和破解加密过程、破坏身份验证方案以及对算法和密钥进行逆向工程的学科,它是密码术和密码学的重要组成部分
  • Vigenere多字母表替代密码:以凯撒密码为基础,需要双方有相同的Vigenere表和密钥

7.2 密码学定义与概念

  • 密码系统(cryptosystem)至少包括以下组件:软件、协议、算法、密钥
  • 密钥空间(keyspace):密钥的可能值范围,加密算法应当使用整个密钥空间
  • 密钥汇聚(key clustering):不同密钥加密相同明文得到相同密文

7.2.1 Kerckhoffs原则

  • 一个密码系统唯一需要保密的部分应当是密钥

7.2.2 密码系统的强度

  • 工作因素(work factor):对攻击者破译一个密码系统所付出的努力和资源进行估计
  • 强加密:128位或更长的密钥

7.2.3 密码系统的服务

  • 保密性、完整性、身份验证、授权、抗抵赖

7.2.4 一次性密码本(one-time pad)

  • 如果正确使用,被视为无法破解的方案,也称Vernam密码
  • 加密过程:消息流与密钥流进行异或操作
  • 要求
    • 密码本只能使用一次
    • 密码本与明文等长
    • 密码本必须安全传送
    • 密码本必须由真正的随机值构成

7.2.5 滚动密码与隐藏密码

  • 滚动密码(running key ciper):以一本书的页码、行数、列数作为密钥
  • 隐藏密码(concealment ciper):“藏头诗”

7.2.6 隐写术(steganography)

  • 消息隐藏在图形、波形文件、文档或其他介质中

7.3 密码的类型

  • 替代密码(substitution)和换位密码(transposition ciper)
  • 简单的替代和换位容易遭受频率分析(frequency analysis)攻击
  • 密钥衍生函数(Key Derivation Function,KDF)

7.4 加密的方法

7.4.2 对称密码学

  • 也称单钥密码学、秘密密钥密码学、会话密钥密码学、私钥密码学、共享密钥密码学
  • 使用对称密钥(秘密密钥)
  • 数据加密标准(Data Encryption Standard, DES)
  • 三重DES(Triple-DES,3DES)
  • Blowfish
  • 国际数据加密算法(International Data Encryption Algorithm,IDEA)
  • RC4、RC5、RC6
  • 高级加密标准(Advanced Encryption Standard)

7.4.3 非对称密码学

  • 也称公钥密码学
  • 使用非对称密钥(公钥和私钥)
  • RSA(Rivest-Shamir-Adleman)
  • 椭圆曲线密码系统(Elliptic Curve Cryptosystem)
  • Diffie-Hellman
  • El Gamal
  • 数字签名算法(Digital Signature Algorithm)
  • Merkle-Hellman背包算法
    表7-1 对称系统与非对称系统之间的差异

7.4.4 分组密码与流密码

1. 分组密码
  • 扰乱(confusion)通过替代实现,密钥值和密文值之间的对应关系应当看上去完全随机
  • 扩散(dissusion)通过换位实现,算法输入值的轻微变化会引起输出值的显著变化,也称雪崩效应
2. 流密码
  • 使用密码流生成器,生成的位流与明文进行异或
  • 如果只依赖流密码,攻击者可以通过将明文和密文进行异或得到密钥流
  • 更适合硬件实现
3. 初始化向量(Initialization Vector,IV)
  • 如果不使用IV,相同明文值将会生成相同的密文
  • 与密钥一同使用,在传输时不需要加密

7.4.5 混合加密方法

  • 对称与非对称算法结合使用
    • 非对称算法加密对称密钥
    • 对称算法加密消息
  • 会话密钥:每次会话使用对称密钥生成一次性的对称密钥
  • 对称与非对称算法结合使用+会话密钥=数字信封

7.5 对称系统的类型

  • 密码学符号:算法-分组字长/轮数/密钥字节长,例如RC5-32/12/16

7.5.1 DES

  • 对称分组加密,使用64位密钥,其中8位用于奇偶校验
  • 只是一个标准,实际使用算法为Lucifer算法
  • 基于硬件实现时,比RSA快1000到10000倍
3. DES模式
  • 电子密码本(Electronic Code Book, ECB):每个分组使用相同的密钥和密码本
    • 可并行
    • 容错,即加密过程中出现错误只影响一组数据
    • 仅用于短消息加密
    • 在接收到明文之前不能进行预处理
  • 密码分组链接(Cipher Block Chaining, CBC):前一分组的密文与后一分组的明文异或后进行加密得到后以分组的密文
  • 密码反馈(Cipher Feedback,CFB):组合了分组密码和流密码,密钥和前一分组的密文生成下一分组的密钥流
  • 输出反馈(Output Feedback,OFB):类似CFB,密钥和前一分组的密钥流生成下一分组的密钥流
  • 计数器(Counter Mode,CTR):使用一个IV计数器,随需要加密的每个明文分组而递增,保证每个数据分组与唯一的密钥流进行异或运算

7.5.2 3DES

  • 112位密钥,48轮运算
  • DES-EEE3:使用3个不同的密钥,加密-加密-加密
  • DES-EDE3:使用3个不同的密钥,加密-解密-加密
  • DES-EEE2:与DES-EEE3相同,但第一、三次加密使用相同的密钥
  • DES-EDE2:与DES-EDE3相同,但第一、三次加密使用相同的密钥

7.5.3 AES

  • 只是一个标准,实际使用算法为Rijndael
  • 密钥长度最小128位,最大256位,可以是32的任意倍数,计算轮数为倍数+6
  • 每轮由三层不同且可逆的转换组成:线性混合层(linear mixing layer)、密钥叠加层(key addition layer)、非线性层(non-linear layer)

7.5.4 IDEA

  • 64位数据分组,划分为16个更小的分组,每个分组8轮,密钥长度128位

7.5.5 Blowfish

  • 分组大小64位,密钥长度32-448位,16轮
  • 公开,免费,没有专利保护

7.5.6 RC4

  • 最常用的流对称密码,密钥长度可变,用于SSL协议,以前曾被用在WEP协议

7.5.7 RC5

  • 分组大小32、64、128位,密钥长度最大2040位,最多255轮

7.5.8 RC6

  • 分组大小128位,密钥长度128、192、256位,构建于RC5算法之上

7.6 非对称系统的类型

7.6.1 Diffie-Hellman

  • 第一个非对称密钥协定算法:Diffie-Hellman运算(A私钥,B公钥)=Diffie-Hellman运算(B私钥,A私钥)=用于加密的对称密钥
    • IKE协议中用于预共享密钥
    • 对比于密钥交换:发送方使用接收方的公钥加密对称密钥
  • 可实现密钥发送,但不提供加密或数字签名功能
  • 建立在计算一个有限域内的离散对数的困难度上
  • 容易受到中间人攻击,应对方法是接受某人的公钥前使用数字签名和数字证书进行身份验证

7.6.2 RSA

  • 以发明人Ron Rivest、Adi Shamir、Leonard Adleman命名
  • 非对称算法中最流行的算法,事实上的全球标准,可用于数字签名、密钥交换和加密,1978年由MIT开发
  • 安全性来自分解大因数为原始质数的困难性
  • 单向函数:正向容易计算,反向难以计算
    • 在容易的方向执行单向函数,可以实现加密和数字签名验证功能
    • 在困难的方向执行单向函数,可以实现解密和生成数字签名功能
  • PKCS指向RSA的标准:PKCS#1

7.6.3 El Gamal

  • Diffie-Hellman算法的拓展,可用于数字签名、加密、密钥交换,通常是最慢的算法

7.6.4 ECC

  • 提供数字签名、加密、密钥交换,达到同等安全级别所需的密钥位数更短,即效率更高,
  • 计算椭圆曲线的离散对数

7.7 消息完整性

  • 循环冗余校验(Cyclic Redundancy Check,CRC):常用于检测线路中的干扰或衰减

7.7.1 单向散列

  • 散列算法也称为无密钥消息摘要(nonkeyed message digest)
  • 消息身份验证代码(Message Authentication Code):使攻击者无法修改消息摘要(message digest)或指纹(fingerprint)
1. HMAC(Hash MAC)
  • 消息=原始消息
  • MAC=Hash(原始消息+对称密钥)
  • 消息未加密,没有保密性
2. CBC-MAC
  • 消息=原始消息
  • MAC=Hash(CBC加密(原始消息))
  • 提供数据源身份验证(data origin authentication),也称系统身份验证(system authentication)
    • 对比用户身份验证,后者需要使用私钥
    • 最不可靠的身份验证
3. 密码型身份验证代码(Cipher-Based Message Authentication Code,CMAC)
  • CBC-MAC的变体,比CBC-MAC更安全
  • AES或3DES创建对称密钥,对称密钥创建子密钥,子密钥单独使用以加密一条消息的不同分组

7.7.2 各种散列算法

表7-3 现行的各种散列算法

7.7.6 针对单向散列函数的攻击

  • 生日攻击:有两个人生日相同的概率远远高于有一个人与指定人生日相同的概率

7.7.7 数字签名

  • 使用发送方私钥加密的散列值
  • 提供身份验证、抗抵赖、完整性
    表7-4 不同算法的不同功能

7.7.8 数字签名标准(Digital Signature Standard,DSS)

  • DSA/RSA/ECDSA + SHA
  • DSA:由NSA开发,只能用于数字签名,与RSA同为应用最广泛的数字签名算法

7.8 公钥基础设施(Public Key Infrastructure,PKI)

  • 由程序、数据格式、措施、通信协议、安全策略、公钥密码机制组成
  • 一种使用公钥密码学和X.509标准的ISO身份验证框架,提供身份验证、保密性、抗抵赖、完整性
  • PKI的组成部分:CA、RA、证书、密钥、用户

7.8.1 认证授权机构(Certificate Authority,CA)

  • 创建、保管和发布、取消数字证书的可信组织机构
  • 个人请求证书时,注册授权机构(Registration Ahthority,RA)验证其身份,将请求提交给CA,CA创建证书并签名,将其发送给请求者
  • 交叉认证:不同CA之间建立信任关系
  • 被取消的证书信息存储在(Certificate Revolution List,CRL)
  • 在线证书状态协议(Online Certificate Status Protocol,OCSP)用于替代繁琐的CRL,OCSP在后台实时检查由CA维护的CRL

7.8.2 证书

  • 使用X.509标准,规定证书中使用的不同字段及其有效值
    图7-35 每个证书都具有由所有必需的身份标识信息组成的结构

7.8.4 PKI步骤

图7-36 CA和用户的关系

7.9 密钥管理

7.9.1 密钥管理原则

  • 不应当以明文形式保存在密码输设备之外
  • 密钥分发和维护工作都应该自动完成
  • 密钥的备份副本应当是可用的,并且在需要的时候易于获取

7.10 可信平台模块(Trusted Platform Module,TPM)

  • 用于硬盘加密
  • 基于密钥托管

7.11 链路加密与端对端加密

  • 链路加密(link encryption),也称在线加密(online encrytion)
    • 所有数据(包括数据包的头部、地址和路由信息)都被加密
    • 数据包在每一跳路由都要进行解密,所以每一跳都要接收一个密钥,密钥分发管理更为复杂
  • 端对端加密(end-to-end encryption)
    • 不加密数据包的头部
    • 从一端传送到另一端时一直保持加密状态

7.12 电子邮件标准

  • 安全多用途Internet电子邮件扩展(Secure Multipurpose Internet Mail Extension,S/MIME):遵循公钥密码学标准(Public Key Cryptography Standards,PKCS),提供保密性、完整性、身份验证、抗抵赖
  • 可靠加密(Pretty Good Privacy,PGP):Phil Zimmerman1991年开发的免费电子邮件保护程序,RSA+IDEA+MD5
    • 与PKI不同,每个用户的密钥环(key ring)记录从自己信任的用户发来的其他用户的证书

7.13 Internet安全

2. HTTP安全
  • SSL:Netscape开发;TLS:社区版
  • 提供加密、服务器身份验证、客户端身份验证(可选)
  • 握手
    • 客户端请求HTTPS页面时,服务器向客户端回复,要求建立安全会话
    • 客户端将自己的安全参数发给服务器,服务器比较收到的安全参数和自己的安全参数,查找匹配
  • 身份验证
    • 服务器向客户端发送数字证书,客户端决定是否信任
    • 服务器要求客户端发送数字证书以互相进行身份验证(可选)
  • 建立安全通道
    • 客户端(浏览器)生成会话密钥,使用服务器的公钥对其进行加密
    • 服务器端使用会话密钥加密数据
4. 安全电子交易(Secure Electronic Transaction,SET)
  • Visa和MasterCard提出,用于通过Internet发送加密的信用卡号
7. Internet协议安全(Internet Protocol Security,IPSec)
  • 与端对端或链路加密相比,IPSec更为灵活、廉价
  • 两个基本的安全协议
    • AH:身份验证、完整性、抗抵赖
    • ESP:身份验证、完整性、保密性
  • 两种工作模式
    • 传输模式(transport mode):ESP受到保护
    • 隧道模式(tunnel mode):ESP、路由、首部信息受到保护
  • 每台设备为其使用的每个安全连接都至少准备了一个安全关联(Security Association,SA),包含身份验证、加密密钥、达成一致的算法、密钥的生命周期、源IP
  • SA具有方向性(进流量/出流量),一台设备连接另一台设备则至少具有两个SA
  • 安全参数索引(Security Parameter Index)位于IPSec包头部,设备读取该值以了解查询哪一个SA
  • 完整性校验值(Integrity Check Value,ICV),与MAC之完全一样
    • AH无法处理NAT,ESP可以
      图7-34 AH和ESP协议使用数据包的不同部分来计算ICV
  • 使用IKE进行密钥交换
    • 阶段1:对等认证,通信各方彼此间建立了一个已通过身份验证和安全保护的通道
    • 阶段2:用在第一阶段建立的安全通道为 IPSec 协商安全服务

7.14 攻击

  • 唯密文攻击:最常见,已知多条密文,求密钥
  • 已知明文攻击:已知多条明文和相应密文,求密钥
  • 选定明文攻击:已知任意明文和相应密文,求密钥
  • 选定密文攻击:已知任意密文和相应明文,求密钥
  • 差分密码分析:生成特定差异的明文,通过密文的差异求密钥,也是一种选定明文攻击
  • 旁路攻击:通过辐射、计算时间、功率等信息推算密钥
  • 重放攻击
  • 代数攻击:利用算法数学原理中的漏洞,例如RSA教科书版本中0加密后永远为0
  • 分析式攻击:例如RSA因式分解攻击
  • 统计式攻击:利用统计知识缩短搜索密钥的时间
  • 社会工程攻击
  • 中间相遇攻击:从一端加密,另一端解密,尝试在中间相遇
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值