20231326《密码系统设计》第七周预习报告

20231326《密码系统设计》第七周预习报告

学习内容

《Windows C/C++加密解密实战》第 10 章

本章重点介绍了网络身份认证的重要性和面临的威胁,以及主要的身份认证技术和公钥基础设施(PKI)的理论基础。

1. 身份认证概述与重要性

  • 地位: 身份认证是网络安全的 “第一道门槛”“第一道防线”,是其他安全服务(如访问控制、授权、审计)的基础。
  • 网络安全技术基石: 所有网络安全技术(机密性、完整性、身份认证等)都以密码学技术为基础。

2. 网络身份认证面临的威胁

身份认证系统是黑客攻击的主要目标。主要威胁包括:

  • 中间人攻击 (Man-in-the-Middle): 截获、替换或修改信息,冒充合法用户。
  • 重放攻击 (Replay Attack): 截获认证信息并在之后重新发送,用于身份伪造或破坏同步性。
  • 密码分析攻击与口令猜测攻击: 针对用户口令进行破译或猜测。
  • 身份信息的暴露: 认证过程中不必要的身份信息暴露可能造成隐私泄露。
  • 对认证服务器的攻击: 认证服务器存储大量敏感信息,一旦被攻破后果严重。

3. 网络身份认证体系和技术

用户身份认证通过以下三种基本方式或其组合实现:

认证方式 描述 示例 存在的问题
所知道的 (What You Know) 基于秘密信息 用户名/密码 极不安全,易受口令猜测、重放攻击、字典攻击。
所持有的 (What You Have) 基于秘密信息或物理介质 智能卡、USB Key 智能卡每次读取数据是静态的,易被截获;USB Key是强双因子认证,安全性高。
所具有的 (What You Are) 基于生物特征 指纹、声音、视网膜 安全性高,但技术不完全成熟,造价高,有局限性。
  • 动态口令 (OTP): 采用“一次一密”,有效抵抗重放攻击,但同步机制和使用便利性较差。
  • USB Key: 结合软硬件,是基于强双因子认证的主流技术,可以采用“冲击响应模式”或“PKI体系模式”。

4. PKI与Kerberos的比较

特性 PKI (公钥基础设施) Kerberos
基础密码体制 非对称密码体制(公钥体制) 对称密码体制(共享密钥)
认证凭证 数字证书 密钥分发中心(KDC)签发的票据
权威机构参与 CA不需要在线参与认证,可以离线操作 KDC需要在线参与会话密钥协商
数字签名/否认 可以提供严格的数字签名服务不可否认性 不能直接提供数字签名服务
发展趋势 正逐渐取代共享密钥认证成为网络身份认证的主流

《Windows C/C++加密解密实战》第 11 章

本章阐述了数字证书的引入背景,PKI的核心组成,并实战介绍了如何使用OpenSSL搭建CA环境。

1. 数字证书的引入(解决公钥归属问题)

  • 核心问题: 简单使用公钥密码算法无法解决公钥归属问题,无法保证获取的公钥就是通信方本人的。攻击者可能利用伪造的公钥进行冒充和窃听。
  • 解决方案: 引入数字证书,由证书认证中心(CA)签发,用于解决公钥归属问题。
  • 证书特点: 包含持有者公钥和身份信息,并由CA用私钥进行数字签名,保证证书不可篡改。依赖方可离线验证CA签名。

2. PKI系统中的核心实体

PKI系统由以下三个基本功能组件构成:

  1. 证书认证中心 (CA): PKI信任的根源,负责为其他人签发和管理证书,用自己的私钥对证书签名。
  2. 证书持有者 (Certificate Holder): 拥有数字证书以及与之匹配的私钥(如通信方李四)。
  3. 依赖方 (Relying Party): 使用其他人的证书来实现安全功能(如通信方张三)。
  • 末端实体 (End Entity): 证书持有者与依赖方的统称。

3. OpenSSL 实现 CA 的搭建(实战)

  • 工具与环境: 使用开源软件OpenSSL,部署在 CentOS 7 Linux 环境下。
  • 实验拓扑: 采用三台虚拟机扮演:
    • 主机 A: 根 CA (Root CA,自签名)
    • 主机 B: 子 CA (Subordinate CA,向根CA申请授权)
    • 主机 C: 普通用户
  • CA 环境配置: CA的配置文件是 /etc/pki/tls/openssl.cnf,用于定义工作目录、证书存储、密钥文件等。
  • 创建根 CA 的关键步骤:
    1. 创建所需文件: 在CA主机上必须创建:
      • 证书索引数据库文件:touch /etc/pki/CA/index.txt
      • 证书序列号文件:echo 01 > /etc/pki/CA/serial
    2. 生成私钥文件: 使用 openssl genrsa 生成 RSA 私钥(如2048位),通常采用 DES3 加密保护。
    3. 生成自签名证书: 使用 openssl req -new -x509 -key <私钥路径> -days <有效期> -out <证书输出路径> 命令生成根 CA 的自签名证书。
  • 根 CA 签发证书(以签发子CA证书为例,步骤相似):
    1. 子CA首先生成证书请求文件(CSR)。
    2. 根CA接收到CSR后,使用 openssl ca -in <CSR文件> -out <证书输出文件> -days <有效期> 命令进行签发。

AI对学习内容的总结

1. 身份认证概述

  • 地位与作用

    • 网络安全的“第一道防线”,决定访问控制、授权、审计等的可靠性。
    • 所有安全技术(机密性、完整性、身份认证等)都依赖密码学。
  • 核心目标

    1. 确认通信双方身份真实性。
    2. 防止伪装、重放、篡改等攻击。
    3. 提供身份信息的完整性与可验证性。

2. 网络身份认证威胁

威胁类型 原理 潜在后果
中间人攻击 截获、修改通信 假冒身份、信息篡改
重放攻击 重发截获认证信息 非法登录、破坏同步
密码分析 / 口令猜测 破解用户口令 非法访问
身份信息暴露 认证过程中泄露身份信息 隐私泄露
认证服务器攻击 攻破服务器获取密钥或证书 全局安全风险

补充

  • 可结合TLS/SSL防止中间人攻击。
  • 使用随机数/时间戳机制防重放攻击。

3. 身份认证方式

认证类型 示例 优缺点
所知道的 用户名/密码 简单,但易被猜测和重放攻击
所持有的 智能卡、USB Key USB Key可实现双因素认证,智能卡静态数据易被截获
所具有的 指纹、虹膜、声纹 高安全性,但成本高、技术局限

补充

  • 动态口令 (OTP):基于时间同步(TOTP)或事件同步(HOTP),有效防重放攻击。
  • 多因素认证 (MFA):结合两种以上方式,显著提高安全性。

4. PKI与Kerberos比较

特性 PKI Kerberos
密码体制 非对称加密 对称加密
认证凭证 数字证书 KDC签发票据
权威参与 CA可离线操作 KDC必须在线
数字签名/不可否认性 支持 不直接支持
应用场景 互联网身份认证(HTTPS、VPN) 局域网内部认证、单点登录

补充

  • PKI通过证书信任链管理,提高大规模网络的身份验证可信度。
  • Kerberos适合局域网,速度快,但不适合开放互联网。

5. 数字证书与公钥归属

  • 问题:简单公钥无法保证归属,容易被冒充。
  • 解决方案:引入数字证书,由CA签名绑定公钥与身份。
  • 证书内容:持有者身份、公钥、CA签名、有效期、用途。

补充

  • 证书验证可离线完成,依赖数字签名完整性。
  • 证书用途通过 keyUsage、extendedKeyUsage 限制。

6. PKI核心实体

实体 功能
CA(证书认证中心) 根信任源,签发与管理证书
证书持有者 拥有私钥和证书,用于签名或加密
依赖方 使用他人证书验证身份或加密通信
末端实体 持有者和依赖方统称

补充

  • 子CA/中间CA实现分层信任管理。
  • 根CA私钥一般离线保存或使用HSM。

7. OpenSSL搭建CA环境(实战)

  • 环境:CentOS 7 + OpenSSL

  • 拓扑:根CA、子CA、用户端三台虚拟机

  • 关键步骤

    1. 创建索引文件和序列号文件
    2. 生成根CA私钥(2048位RSA,DES3加密)
    3. 生成自签名根CA证书
    4. 子CA生成CSR → 根CA签发证书
    5. 用户证书签发同理

补充

  • CA系统应有证书吊销机制(CRL、OCSP)
  • 配置文件定义证书存储、策略、扩展字段
  • 签发策略控制证书有效期、用途和权限
  • 私钥安全至关重要,根CA建议严格离线管理

8. 综合补充与实践建议

  1. 多因素认证结合静态密码、USB Key和生物特征,提高安全性。
  2. PKI证书管理应考虑生命周期、吊销、信任链、用途限制。
  3. Kerberos适合局域网,PKI适合互联网应用。
  4. 身份认证系统应结合日志审计与安全监控,及时发现异常。
  5. CA关键操作建议双人控制,防止单点失效或私钥泄露。

学习思维导图

mindmap root((Windows C/C++加密解密实战)) 第10章_网络身份认证 身份认证概述 地位("第一道门槛 / 防线") 基石("密码学为网络安全技术基础") 面临威胁 中间人攻击 重放攻击 密码分析/口令猜测 身份信息暴露 认证服务器攻击 认证方式 所知道的("用户名/密码") 所持有的("智能卡/USB Key") 所具有的("生物特征") 动态口令("一次一密,防重放") USB Key("强双因子认证") PKI_vs_Kerberos PKI("非对称密码体制, 数字证书, 离线CA, 支持数字签名") Kerberos("对称密码体制, KDC票据, 在线参与, 不支持签名") 第11章_数字证书与PKI实战 数字证书引入 核心问题("公钥归属问题") 解决方案("CA签发数字证书") 特点("包含公钥与身份信息, CA私钥签名, 可离线验证") PKI核心实体 CA("证书认证中心, 负责签发证书") 证书持有者("拥有证书及私钥") 依赖方("使用他人证书实现安全功能") 末端实体("证书持有者与依赖方统称") OpenSSL搭建CA 工具环境("OpenSSL, CentOS 7") 实验拓扑 主机A("根CA, 自签名") 主机B("子CA, 向根CA申请") 主机C("普通用户") 配置文件("/etc/pki/tls/openssl.cnf") 根CA步骤 创建文件("index.txt, serial") 生成私钥("openssl genrsa, DES3加密") 自签证书("openssl req -new -x509") 签发子CA证书 子CA生成CSR 根CA签发("openssl ca -in CSR -out 证书")

基于AI的学习

原对话链接:https://chatgpt.com/share/68ff5c2e-2abc-800b-9d05-f7349ca61c3f


问题 1

ChatGPT: 你能用自己的话说明一下为什么身份认证被称为网络安全的“第一道门槛”和“第一道防线”吗?

Roshein: 身份认证决定了“谁可以进入”,是网络活动合法性的源头。没有可靠的身份认证,所有的加密、完整性检查、访问控制和审计都将失去意义,因为无法信任正在执行这些操作的主体。

分析与补充:

  • 理解到位,身份认证是安全基石。
  • 补充:没有身份认证,其他安全机制如访问控制、加密验证、审计等都失去可信基础。

问题 2

ChatGPT: 在网络身份认证中,攻击者通常会采取哪些手段来破坏认证过程?

Roshein: 重放攻击、中间人攻击、口令猜测

分析:

  • 回答准确,涵盖了主要威胁。
  • 补充说明:身份信息暴露、认证服务器攻击也常见。

问题 3

ChatGPT: 选择中间人攻击或重放攻击,详细描述攻击流程并列出防护措施。

Roshein: 中间人攻击:攻击者插入通信双方的连接从中拦截发方消息,并经过监听、备份、修改等等操作后发送给听方

分析与补充:

  • 核心描述准确,抓住“拦截、篡改、转发”。
  • 补充:攻击方式包括 ARP 欺骗、DNS 劫持、恶意 Wi‑Fi 等。防护措施可用 TLS/HTTPS、VPN、双向认证、HSTS、OCSP Stapling、双因素认证。

问题 4

ChatGPT: 列出并解释两种可以有效防御中间人攻击的措施。

Roshein:

  • TLS/HTTPS:使用密钥交换(非对称+对称)保证双方受信,密文安全
  • VPN:建立独立通信隧道,通过加密保持隧道安全

分析与补充:

  • 理解核心正确。
  • 补充防护措施:
    • 证书验证:防止伪造公钥
    • 双向 TLS:双方互相验证身份
    • HSTS:防止降级攻击
    • OCSP Stapling:验证证书是否被吊销
    • 双因素认证:即使密码被窃取也无法登录

问题 5

ChatGPT: 为什么单纯使用用户名/密码方式安全性低?

Roshein: 口令认证属于单因素认证,很容易受到监听与重放;用户在创建口令时可能不够高强度

分析与补充:

  • 优点:抓住了单因素、弱口令及监听风险
  • 补充:暴力破解、凭证复用、钓鱼、数据库泄露风险,以及用户管理、可用性和密码策略问题。

问题 6

ChatGPT: MFA(或 2FA)是如何提高安全性的,并举例两种实现方式及优缺点。

Roshein:

  • MFA主要从所知道、所拥有、所持有中使用多种因素
  • OTP:手机 SMS 验证码,需要口令 + 验证码
  • TOTP:客户持有一次性密钥生成器,基于时间计算,有效期短

分析与补充:

  • 理解核心正确。
  • 补充 MFA 方法:
    • 硬件 Key(FIDO2):安全高,成本高
    • 推送确认:体验好,依赖手机安全
    • 生物识别:用户体验好,但技术有局限

问题 7

ChatGPT: 为什么单纯使用公钥算法无法解决公钥归属问题?

Roshein: 公钥是公布的,所以任何人都可以声明公钥归属;公钥又是验签的关键,所以需要另一种公认的公钥对当前公钥验签

分析与补充:

  • 抓住问题核心:公钥归属需要第三方信任
  • CA 的数字证书通过签名验证公钥归属,建立信任链

问题 8

ChatGPT: PKI 核心实体分别是什么,它们的职责是什么?

Roshein: 证书持有者向 CA 申请证书,该证书是 CA 对持有者身份的认证;依赖方在获得证书时,先确信 CA 是可信的,则 CA 认证的持有者用户也是可信的

分析与补充:

  • 核心正确
  • 补充实体角色:
    1. 证书持有者:生成密钥对,使用私钥签名/解密
    2. CA:验证身份,签发证书,管理证书生命周期
    3. 依赖方:验证证书签名并决定是否信任

问题 9

ChatGPT: 在 OpenSSL CA 搭建中,index.txt 和 serial 文件作用?

Roshein: 不清楚(由讲解补充)

讲解补充:

  • index.txt:证书登记簿,记录每个证书状态
  • serial:证书序列号计数器,每次签发自动+1
  • 实践步骤:
  touch /etc/pki/CA/index.txt
  echo 01 > /etc/pki/CA/serial

签发证书时 CA 会读取 serial 分配序列号,并更新 index.txt 记录信息


问题 10

ChatGPT: 如果 CA 私钥泄露,会造成什么影响?

Roshein: 获知 CA 私钥的人可以随意对来历不明的公钥以 CA 名义签名,使其被认可信

分析与补充:

  • 核心正确

  • 补充影响:

    1. 可伪造任意证书,冒充域名或用户
    2. 滥发子 CA,扩大信任范围
    3. 信任链崩溃,需大规模撤销证书
    4. 历史合法证书难以区分伪造
    5. 信用与合规风险

问题 11

ChatGPT: 根 CA 私钥泄露,应立即采取哪些应急措施?

Roshein: 结束提问(由总结补充)

补充应急措施:

  1. 吊销 CA 证书和下属所有证书
  2. 生成新的根 CA 密钥对并重新签发证书
  3. 通知所有依赖方更新受信任 CA
  4. 检查和撤销所有受泄露 CA 签发的可疑证书
  5. 审计系统与日志,追踪潜在攻击

总体分析

优点

  • 抓住核心概念,逻辑清晰
  • 自主表述能力强,多数回答用自己的话表达
  • 对攻击手段、认证方式和 PKI 基本原理理解准确

不足

  • 实践细节掌握不足(OpenSSL CA 文件作用、不同 MFA 实现)
  • 对部分防护措施理解不够深入
  • 风险场景细化欠缺(CA 私钥泄露带来的连锁效应)

补充建议

  • 熟悉实战配置与操作(OpenSSL CA、证书签发流程)
  • 进一步了解 MFA 各种技术及优缺点
  • 深入掌握防护措施及安全实践(TLS/HTTPS、HSTS、OCSP、双向认证、VPN)

学习实践过程遇到的问题与解决方式

根CA的证书如何保证信任? 根CA的证书是自签名的,那么我们对根CA的信任是如何建立起来的?它不像普通证书那样可以被上级CA验证,这种“自我证明”的机制在安全上如何保障?

  1. 操作系统或浏览器预装根证书
  2. 离线或手动导入根CA
  3. 根CA的私钥通常 严格离线保存
  4. 根签发证书时通过严格流程

X.509 属性证书与公钥证书的区别和关联? 资料提到了授权管理基础设施(PMI)和X.509属性证书。它们的出现是为了解决PKI的哪些不足?在实际应用中,用户在认证和授权时,是如何同时使用公钥证书和属性证书的?

AI:

特性 X.509 公钥证书 X.509 属性证书(AC / PMI)
核心内容 用户公钥 + 用户身份信息 用户属性/权限信息
用途 认证:验证通信方身份 授权:授予用户操作权限或角色
签发方 证书认证中心 CA 属性管理中心(PMI)或授权机构
有效期 通常较长(1~3年) 通常较短(小时~几天),可频繁更新
与私钥的关系 公钥对应私钥,持有者可用于签名/解密 与私钥无直接关系,仅描述属性
标准 X.509 v3 X.509 v3 属性扩展(Attribute Certificate, RFC3281)

  • 解决PKI的不足
    • PKI只解决身份认证问题
    • PKI不管理权限/角色
    • 认证与授权是分开管理,需要独立更新和撤销权限

假设用户 Alice 访问一个受控资源(如机密数据库):

  • 认证阶段(PKI)
    • Alice 提交 X.509 公钥证书。
    • 系统通过 CA 公钥验证 Alice 的身份签名。
    • 认证成功 → 确认 Alice 的身份。
  • 授权阶段(PMI + 属性证书)
    • Alice 提交 X.509 属性证书,里面包含权限信息(如“角色=管理员”或“可读表A”)。
    • 系统验证属性证书是否有效(PMI 签名、有效期、撤销列表)。
    • 授权成功 → 系统允许 Alice 执行对应操作。

本文链接

参考资料

posted @ 2025-10-27 20:00  GisliW  阅读(12)  评论(0)    收藏  举报