密码学CISSP
迪丽瓦拉
2024-04-22 10:19:27
0
1. 目标
  • 保密性:有两大类密码系统专用于实现保密性,即对称密码系统和非对称密码系统
  • 完整性:确保没有被人未经授权更改,保证收到的消息与发出的消息相同。通过加密的消息摘要(即数字签名)实现(接受者只需验证消息的数字签名,即可确保消息在传输过程中未被改动)
    • 完整性保障由公钥和私钥密码系统提供【【【【【【
    • 用密码散列函数保护文件的完整性【【【【【【【【
  • 身份验证:用于验证系统用户所声称的身份
  • 不可否认性:向接受者保证消息发自发送者,且没有人冒充发送者。并防止发送者否认消息
    • 由公钥或非对称密钥密码系统提供【【【【【【【【
2. 对称密钥加密法:
  1. 几个弱点

    • 密钥分发问题:双方在通过一个对称密钥协议建立通信之前,首先必须找到一种安全的方法来交换秘密密钥。若此时没有现成的安全电子信道可供使用,则往往需要采用一种安全的线下密钥分发方法
    • 对称密钥加密法不提供不可否认性:由于任何通信方都能用共享的秘密密钥加密解密消息,因此无法证明一条消息到底是从何处发出的
    • 算法缺乏可伸缩性:若通信群体规模较大,将很难使用对称密钥加密法。只有在每个可能的用户组合都共享一个私钥的情况下,才能在群体内的个人之间实现安全私密通信
    • 密钥必须经常重新生成:每当有参与者离开通信群体时,该参与者知道的所有密钥都必须弃用
  2. 优点

    • 运算速度快
  3. 几种常用对称密码系统

    • 数据加密标准DES:使用56位密钥,在64位明文上进行运算,生成64位密文块。DES通过一系列异或运算生成密文。这个过程会为每个加密/解密操作重复16次,每次重复叫做一轮加密
    • 三重DES:使用128位密钥,在64位明文/密文块上运行。这个128位密钥被分解为52个16位子密钥进行一系列运算,子密钥随后通过异或与模运算的一次结合作用到输入文本上,产生输入消息的加密/解密版
    • 国际数据加密算法IDEA
    • Blowfish
    • Skipjack
    • 高级加密标准AES
  4. 对称密钥管理

    • 创建和分发对称密钥
      • 线下分发:通过物理手段,如电话、邮件、写入纸张等
      • 公钥加密:即先利用公钥加密建立起一个初步通信连接。这个连接成功建立且各方相互验证身份后,便通过这个安全的公钥连接交换秘密密钥。随后将通信从公钥算法转换到秘密密钥算法,从而享受到安全且快速的加密
      • Diffie-Hellman
    • 存储和销毁对称密钥:即人员离开后,所有加密材料需要用新密钥重新加密
    • 密钥托管和恢复:有两种用于密钥托管的方法
      • 公平密码系统:秘密密钥被分解为多个片段,每个片段都交付一个独立的第三方保管。只有向每个第三方出示相关证据,将每个片段重新排列组合后,才能形成秘密密钥
      • 受托加密标准:向政府提供了解密密文的技术手段(美国政府使用)
3. 非对称密钥算法
  1. 几个优点

    • 可提供完整性、身份验证和不可否认性:一个用户只要没有泄漏自己的私钥,由该用户签名的消息就可显示为准确无误、来自特定来源,且事后不可否认
    • 密钥分发简便易行:用户若想加入系统,只需把自己的公钥提供给任何通信对象即可。
    • 不需要预先建立通信关联:不要求以预先建立关系的方式来提供数据交换安全机制
    • 添加新用户时只需要生成一个公钥-私钥对
    • 便于从非对称系统移除用户
    • 只需要在用户私钥失信的情况下重新生成密钥
  2. 缺点:

    • 运算速度慢。因此许多需要安全传输大量的应用先用公钥加密法建立连接,以此交换一个对称秘密密钥,然后安排剩余的会话使用对称加密法
  3. 公钥基础设施PKI:

    • 数字证书:向通信双方保证,与他们通信的确实是他们声称的人。符合X.509的证书包含以下数据:
      • 序号(证书创建者编制)
      • 签名算法标识符(规定了发证机构给证书内容数字签名时采用的技术)
      • 发证者名称(标识签发证书的发证机构)
      • 有效期(规定了证书保持有效的日期和时间)
      • 主体名称(含拥有证书所含公钥的实体的可识别名,DN)
      • 主体的公钥(证书的主要内容–证书持有者用来建立安全通信的实际公钥)
    • 发证机构CA:提供数字证书公证服务,是将公钥基础设施结合到一起的粘合剂。若用户把浏览器设置为信任一家CA,浏览器会自动信任这家CA所签发的所有数字证书。
    • 注册机构RA:分担了CA签发数字证书前验证用户身份的负担,本身并不直接签发证书,而是允许CA远程验证用户的身份
    • 证书的使用过程:
      • 注册:申请方若想得到一份数字证书,首先需要向CA证明自己的身份,然后提供自己的公钥。CA会创建一个X.509数字证书,包含申请方的身份识别信息和一个公钥拷贝。随后CA在证书上用CA自己的私钥写上数字签名,并把签了名的数字证书拷贝一个副本给申请方。此后,申请方就可将这份证书出示给要通信的其他人了
      • 验证:当用户收到申请者的数字证书时,要用CA的公钥检查CA在证书上的签名(即先用CA公钥解密数字签名,然后将其与自己用散列算法算出的数字摘要进行比对)。然后对照证书注销列表CRL或在线证书状态协议OCSP对证书进行检查,确保其未被注销。这时,只要证书满足以下要求,便可认定证书所列公钥是真实的了
        • CA的数字签名真实
        • 用户信任这家CA
        • 证书没有列在CRL上
        • 证书确实包含用户信任的数据
      • 注销:发证机构偶尔需要注销证书,可能由以下原因造成:
        • 证书失信:如证书拥有者意外泄露了私钥
        • 证书误发:如CA未经适当验证就错误签发了证书
        • 证书细节更改:如主体名称改变
        • 安全关联变更:如主体不再被申请证书的机构雇佣
4. 散列函数
  1. 原理:提取一条长消息,从消息内容中衍生出一个唯一输出值,即消息摘要
  2. 目的:有两个
    • 让接受者可以验证消息的完整性。接受者用同一个散列函数应用在收到的消息上,计算消息摘要,然后和发送方传来的消息摘要进行比较。消息在传输过程中只要有一点改动,其计算出来的摘要值就完全不同
    • 消息摘要可用来执行数字签名算法【【【【【【【【【【
  3. 散列函数基本要求:
    • 输入可以是任何长度,输出为固定长度
    • 是单向的,即很难根据输出确定输入
    • 散列函数无冲突,即几乎不可能找到可以产生相同散列值的两条消息
  4. 几个散列算法
    • SHA,后继者有SHA-1、SHA-2、SHA-3
    • MD2:后来被证明MD2不是单向函数,因此应不再使用
    • MD4
    • MD5
5. 数字签名
  1. 目的:数字签名只提供完整性、鉴别和不可否认性保障
    • 可向接受者保证消息确实来自声称的发送者,并提供不可否认性保障
    • 保证消息在发送者与接受者之间的传送过程中不曾有过改动,可抵御恶意篡改和无意改动(通信过程中的故障,如电子干扰)
  2. 过程:A要发给B一个带数字签名的消息
    • A用一种散列算法为原始明文生成一个消息摘要 --> 用私钥给消息摘要加密(即生成数字签名)–> A把签名的消息摘要附在明文消息末尾 --> A把消息发送给B
    • B用A的公钥解密数字签名 --> B用同一个散列函数为收到的整条明文消息创建一个消息摘要 --> B将收到并解密了的消息摘要与自己算出的消息摘要进行比较。若二者匹配,则可确定收到的消息发自A;若不匹配,则要么1)消息不是A发的、2)消息在传送过程中曾被改动
  3. HMAC(经过散列处理的消息鉴别码,使用共享秘密密钥加密)
    • 功能:保证消息在传输过程中的完整性,但不提供不可否认服务(因为它使用共享秘密密钥)
    • 使用方法:可通过一个共享秘密密钥与任何标准消息摘要生成算法配套使用。只有知道密钥的通信双方可以生成或校验数字签名。
    • 即:HMAC就是对称密钥+数字签名
6. SSL

SSL的目的是创建面向整个Web浏览会话开放的安全通信信道,依赖于对称和非对称加密法的相互结合。详细步骤如下:

  • 用户访问网站时,其浏览器会检索Web服务器的证书并从中提取服务器的公钥
  • 浏览器随后创建一个随机对称密钥,用服务器的公钥对密钥加密,然后将加密后的对称密钥发送给服务器
  • 服务器随后用自己的私钥解密对称密钥,两个系统这时通过对称加密密钥交换所有未来消息

评价:这种方法允许SSL借用非对称加密法的高级功能,同时用速度更快的对称算法加密和解密数据的绝大部分内容

7. 联网安全
  1. 线路加密
    • 链路加密:在链路加密中,每条通信链路上的加密独立实现,通常对每条链路使用不同的加密密钥。所有数据(包括消息报头、消息尾部、地址和路由数据)都是被加密的,每个数据包在每个中继段只有解密后重新加密,才能正常进入下一个中继段继续发送,减慢了路由速度。且在中间节点会暴露信息内容,仅采用链路加密不能实现通信安全
    • 端到端加密:独立于链路加密执行,在源节点和目的节点中对传送的PDU进行加密和解密。端到端加密不给报头、尾部、地址和路由数据加密,从而易于受流量分析攻击
    • 加密在OSI的较高层进行时,通常采用端到端加密;加密在OSI的较低层时,通常使用链路加密
  2. IPsec
8. 密码攻击
  1. 重放攻击:用于针对没有采用临时保护措施的密码算法。攻击者会在通信双方之间拦截经过加密的消息(常常是鉴别请求),然后通过“重放”捕捉来的消息建立一个新会话。采用时间戳并给每条消息设定过期时间,可以挫败重放攻击
  2. 中间人攻击:攻击者在位于通信双方之间的位置拦截所有通信(其中包括密码会话的设定)。攻击者回应原发者的初始化请求并与原发者建立一个安全会话。攻击者随后用一个不同的密钥冒充原发者与预期接收者建立第二个安全会话。攻击者此时就位于通信中间了,可以读取两个通信参与方之间的所有流经通信内容
  3. 分析攻击:试图降低算法复杂性的代数操作
  4. 执行攻击:探寻密码系统在执行过程中暴露的弱点。
  5. 统计攻击:探寻密码系统的统计学弱点
  6. 蛮力攻击:尝试找出密钥或口令的每种可能的有效组合
  7. 频率攻击和唯密文攻击:通过频率分析,计数每个字母在密文中出现的次数
  8. 已知明文:攻击者已掌握加密消息的拷贝以及用于生成密文(拷贝)的明文消息
  9. 选择密文:
  10. 选择明文
  11. 中间相遇

相关内容