47ce7dbff301525b214165d3a11a4ae3.ppt
- Количество слайдов: 54
第 4讲 公钥基础设施(PKI) 周福才 教授 博导 东北大学信息学院计算机应用所 fczhou@mail. neu. edu. cn 2018/3/17
o 1. 数字证书的引入 o 2. PKI体系结构 o 3. 数字证书的生命周期 2018/3/17 1
1. 数字证书的引入 2018/3/17 2
安全结构 安全传输协议 SSL/TLS, SSH … 数字证书&PKI 密码学应用 对称加密、非对称加密、消息摘要、数字签名、 消息认证码、密钥协商 密码学理论 2018/3/17 3
挑战-应答 o 客户向认证服务器发出请求,要求进行身份认证 o 认证服务器从用户数据库中查询用户是否是合法的用户,若 不是,则不做进一步处理 o 认证服务器内部产生一个随机数,作为“提问”,发送给客户 o 客户将用户名字和随机数合并,使用单向Hash函数(例如 MD 5算法)生成一个字节串作为应答 o 认证服务器将应答串与自己的计算结果比较,若二者相同, 则通过一次认证;否则,认证失败 o CRP(Challenge-Response Protocol )可以使用对称密 钥或非对称密钥 n 对称密码:验证者和示证者共享一个秘密(share asecret key) n 公钥密码体制:秘密值为示证者的私钥(private key)
挑战-应答 Alice Bob Request Enc(c) Alice 公钥 Hash(Alice, c )
挑战-应答 需要解决的问题 o 在基于非对称密钥的CRP中,验证者需要用示证 者的公钥对挑战值加密 n 验证者如何确定:这个公钥与示证者的身份是对应的? o 在SSL中也有同样的问题 n SSL客户端如何能确定数字证书中的公钥与服务器是关 联的?
数字证书 o 通过由可信认证机构签发的数字证书,验证者可 以确定证书中包含的公钥是属于该用户的。证书 需要有合适的有效期限 证书主体身份信息 证书主体公钥 将身份与公钥绑定在一起,这个身份可 以是一个用户或组织的名称、也可以是 其它信息如地址、年龄等 CA身份信息 CA私钥签名 颁发者的数字签名
X. 509证书格式
X. 509证书格式 o o o 版本: 一般为V 1,V 2和V 3,目前常用V 3。 序列号:是由CA分配给证书的唯一的数字型标识符。 签名算法标识:对证书进行签名的算法和算法所需的参数。 颁发者:为PCA的名称。 有效期:定义证书有效的起始日期和结束日期。 证书主体:为证书持有者的唯一识别名称(DN)。 证书主体的公开密钥:信息包括算法名称、需要的参数和公开密钥。 颁发者唯一标识:可选项不推荐使用。防止颁发者的名字出现重用。 主体唯一标识:可选项不推荐使用。防止主体的名字出现重用。 扩展项:用于其它扩展内容。 签名:对整个证书的散列值的签名。任何一方都能认证证书是否有效 (必须知道CA的公钥)。
CA签发的数字证书 o 一个数字证书:包含 数字签名证书的发证 机关;任何人都可以 验证数字证书的真实 性。 o 任何人都可以验证了 示证者的证书真假, CA的公钥必须是尽 人皆知的。 o 由CA签发的数字证书 含有示证者的公钥。
自签名证书 o 自签名证书包括: n 证书所有者的公钥、信息和签名 n 使用非对称密钥,上面所说的秘密值就是证明 者的私钥 o 什么时候、如何使用自签名证书? n 视安全需求而定 n 如果需要完成重要软件的组件之间最高级别的 认证,则不能使用自签名证书 o 在创建与安装由认证机构签名并颁发的证书之前, 自签名证书可以用来测试SSL的设备配置。
如何生成、储存、颁发、使用、撤销公钥和数字证书? 公钥基础设施(PKI)
PKI动机 o 公钥技术 n 如何提供数字签名功能 n 如何实现不可否认服务 n 公钥和身份如何建立联系 o 为什么要相信这是某个人的公钥 n 公钥如何管理 o 方案:引入证书(certificate) n 通过证书把公钥和身份关联起来
2. PKI体系结构 2018/3/17 14
PKI(Public Key Infrastructure) Ø Ø 定义 n 用公钥原理和技术实施和提供安全服务的具有普适性的安全基 础设施 一个完整的PKI应该包括 n 认证机构(CA) n 证书库 n 证书注销 n 密钥备份和恢复 n 自动密钥更新 n 密钥历史档案 n 交叉认证 n 支持不可否认 n 时间戳 n 客户端软件
PKI的关键点: n性能:尽量少用公钥加解密操作,在实用中,往往结合对称密 码技术,避免对大量数据作加解密操作;除非需要数据来源认证才 使用签名技术,否则就使用MAC或者HMAC实现数据完整性检验 n在线/离线模型 Ø签名的验证可以在离线情况下完成(off line) Ø用公钥实现保密性也可以在离线情况下完成(off line) Ø离线模式的问题:无法获得最新的证书注销信息 n证书中所支持算法的通用性 Ø在提供实际的服务之前,必须协商到一致的算法 n个体命名:如何命名一个安全个体,取决于CA的命名登记管理 作
PKI主要组成 认证机构(CA): 证书颁发者 CA 证书是否有效? 验证者:出于认证目 的使用证书的一方 证书颁发 证书交互 签名者:该证书主体 的身份(或其它信息) 与公钥绑定 证书申请者 签名者与验证者都称 作终端实体
PKI主要组成(细化) 证书下载与查询 PKI用户 证书申请者 验证者 用户注册 发布证书 证书&CRL 数据库 认证机构 RA 发布证书及CRL CA 发布CRL CA之间交互 CRL发布者 PKI管理实体 证书认证业务声明 /证书政策协议( CPS/CPA) 证书撤销列表 CA
认证机构(CA) o 认证: n 将一个身份信息与一个公钥绑定的行为 n 例如:颁发证书 o认证机构:负责认证的实体 o. CA运行按照证书认证业务声明(CPS) n CPS描述了CA的操作规程 o证书按照证书政策协议(CPA)颁发给终端实 体 n CPA描述了在该政策下证书的颁发和使用规则
证书数据库 只通过CA对证书进行发布是不够的,验证者需要比 较容易地找到对应于不同签名者的公钥 o需要证书数据库(CR) o. CR可以由以下几种方式实现: n 轻量级目录管理协议( LDAP ) n Web服务器 n DNS n 共用数据库
证书撤销以及CRL数据库 o 验证者通过证书撤销机制可以得知一个证书是否 被作废 o 证书撤销与证书过期 n 证书过期是指过了有效期后证书自动失效(如 驾照的有效期) n 证书撤销是某事件发生,使得公钥与主体身份 之间的绑定关系失效,如: o主体身份发生改变(如女人婚后姓氏发生改变) o私钥泄露 o非法用户(如司机违章,驾照被吊销) o 撤销证书由CRL发布者发布到CRL数据库中
证书的注销机制 Ø 由于各种原因,证书需要被注销 n 比如,私钥泄漏、密钥更换、用户变化 Ø PKI中注销的方法 n CA维护一个CRL(Certificate Revocation List) Ø 基于Web的CRL服务 n 检查CRL的URL应该内嵌在用户的证书中 n 可以提供安全途径(SSL)访问URL n 返回注销状态信息 n 其他的用法由浏览器决定
证书撤销列表
3. 数字证书的生命周期 2018/3/17 24
公钥证书生命周期 密钥/证书 生成 密钥/证书 使用 密钥/证书 失效
密钥/证书生成过程 o 初始化过程 主要包括: n 证书主体注册 n 密钥生成 n 证书生成与密钥/证书发布 n 证书传播 n 密钥备份(如果需要的话)
证书主体注册 o 一个独立用户或进程的身份被建立并验证 o 对于该过程控制的强度取决于CPS/CP: n 证书认证业务声明(CPS)描述CA的操作规程 n 证书政策(CP)指定了如何应用某公私钥对( 数字签名、数据加密、网站一致性验证等)。 该信息应由CA发布。
证书主体注册 1. 注册请求 4. 注册建立请求 主体 (终端实体) 2. 注册回复 注册机构 (RA) 认证机构 (CA) 3. 注册提交 5. 注册建立结果 6. 注册结果 7. 证书请求 8. 证书回复
密钥生成 o 密钥对可以在不同的地点产生: n 终端实体(如用户的PC主机) n RA n CA n 可信的第三方密钥生成设备 o 需要考虑的因素: n 性能(例如在移动电话中产生密钥) n 确定性 n 密钥用途(例如机密性、不可否认性)
密钥生成 o 密钥用途(例如机密性、不可否认性) n 下面的原则是对于不同的用途使用不同的密钥 o用于数字签名(相应的证书成为验证证书) o用于数据加密(相应的证书成为加密证书) o密钥用途对于密钥产生地点有影响 n 如果密钥用于实现不可否认性,则应由终端实 体产生,私钥只能该实体拥有 n 作为PKI系统中最可信的实体CA,也可以知道 私钥,对于这一点有争议。
密钥生成 o Java环境:Key. Tool n 用于创建、储存、管理密钥 n 功能: o生成公私钥对 o将X. 509中V 1、V 2、V 3版本的证书作为文件储 存,并能够输入、输出 o生成自签名证书 o发布证书(PKCS#10)请求给CA o输入证书恢复(从CA得到) o将公钥证书标记为可信
证书生成 o 证书生成: n 由CA生成 o如果公钥是由终端实体而不是CA产生,则该公钥 应通过安全方式传给CA n 最终实体得到证书
一般的证书产生流程 证书资料库 认证机构 发布证书 及CRL 状态查询 证书 证书申请 证书 注册机构RA 公钥公钥 私钥 公钥 公钥
密钥/证书发布 o 公钥和证书的交付 n 直接交给证书拥有者(主体) n 交给远程数据库(证书和CRL数据库) n 以上两种都交付 o 向CA请求并接收证书的过程需要安全的协议 n RFC 2510互联网X. 509公钥基础设施证书管理协 议(CMP) n RFC 2511互联网X. 509证书请求管理格式( CRMF)
证书传播 o 如何让验证者得到证书 n 面对面,手递手,物理上隐秘交付 n 将证书发送到公开的数据库中 o要求具有在线恢复功能 n 在某个域内按协议分发(如安全的电子邮件)
公钥证书生命周期 密钥/证书 生成 密钥/证书 使用 密钥/证书 失效
密钥/证书的使用 o 证书恢复(从证书数据库中) n 需要验证者的请求 o 证书验证(需要验证者请求) n 验证证书完整性(如验证颁发者数字签名,需要相应CA 的公钥) n 证书是否过期 n 证书是否被撤销 o 密钥恢复 n 对于终端实体忘记私钥的情况,便于恢复 o 密钥更新 n 当证书邻近有效期时,发布新的密钥对
认证路径 o 开始的时候,签名者掌握的CA公钥数量是有限的 o 如果用户得到某CA颁发的证书,而该CA的公钥 用户不掌握,则还需要额外的证书来得到该公钥 o 这样就需要一个证书链,包括一个CA给用户颁发 的证书,可能还有多个CA的证书,这些证书是由 其他的CA颁发的(认证路径)
PKI信任模型 o 需要解决的问题: n 哪些实体的证书可以被信任? n 这样的信任如何被建立? n 在给定的环境下,这种信任能够被限制和控制 的情况有哪些?
PKI信任模型 o 几种信任模型: n CA层次结构 n 基于政策的CA层次 n 分布式信任结构 n 四角模型 n 网状模型 o 当第一个实体作出假定:第二个实体总是按照它 所期望的方式运作,则说第一个实体信任第二个 实体
CA层次结构 自签名证书 认证机构 顶级CA 终端实体 认证
CA层次结构 o 顶级CA(TLCA)—也被称作根CA n TLCA颁发一个自签名证书,作为该层次结构中 每个实体的信任基础 n TLCA认证下属每个CA n 以此类推,每个CA都认证各自下属的CA n 从第二层到最后一层的CA可以认证终端实体 o结构中每个实体都必须拥有TLCA的公钥 o在该模型中,TLCA的公钥是日后实体认证、证 书处理的基础
CA层次结构 o 如果两个用户同属一个CA,则认为它们都拥有该 CA的公钥 o 各个CA必须呈层次结构 o 结构中链接的每一方都能验证所有CA n 每个CA都有上层和下层实体的证书 o 每个实体都信任上层实体的证书 o 这种结构使得用户能够认证该结构中任何CA颁发 的任何证书
自签名证书 o 自签名证书包括: n 公钥、证书拥有者的信息和拥有者的签名 n 有一个私钥,但不用来通过第三方CA验证该证 书的来源
公钥证书生命周期 密钥/证书 生成 密钥/证书 使用 密钥/证书 失效
密钥/证书失效 o 证书过期—CA可以进行如下三种操作: n 无操作,该终端实体不再在该PKI中注册 n 证书延期,原来的公钥被放到一个新的证书中, 拥有新的有效期 n 证书更新,生成新的密钥对并颁发新的证书 o 证书撤销 n 一个已颁发的证书未过期,却不能再使用 o怀疑私钥泄露 o原来终端实体状态变化
证书撤销 o 由谁、如何管理证书撤销(Who、How)? o WHO: n CA负责发布撤销信息 n 验证者必须确定证书未被撤销 o CA可以通过证书撤销列表(CRL)发布撤销信息 o 在线查询机制:在线证书状态查询(OCSP)
PKI有关的标准 Ø Certificates —— X. 509 v. 3 Ø 交叉认证 —— PKIX group in IETF(RFC 2459) Ø 智能卡/硬件插件 PKCS #11 Ø PKCS系列 Ø 目录服务LDAP Ø 安全套接层SSL协议 Ø SET协议 Ø 其他:IPSec、S/MIME、时间戳、XML
PKCS(公钥密码系统标准)系列标准 o PKCS #1 n RSA Encryption Standard o PKCS #3 n Diffie-Hellman Key-Agreement Standard o PKCS # 5 n Password-Based Encryption Standard o PKCS #6 n Extended-Certificate Syntax Standard o PKCS #7 n Cryptographic Message Syntax Standard o PKCS #8 n Private-Key Information Syntax Standard
PKCS系列标准(续) o PKCS #9 n Selected Attribute Types o PKCS #10 n Certification Request Syntax Standard o PKCS #11 n Cryptographic Token Interface Standard o PKCS #12 n Personal Information Exchange Standard o PKCS #13 n Elliptic Curve Cryptography Standard o PKCS #15 n Cryptographic Token Information Format Standard
客户通过Web申请一个证书 PKCS#10
CA处理证书请求 PKCS#7
2018/3/17 TDT Lab, SJTU, China
47ce7dbff301525b214165d3a11a4ae3.ppt