第 4 讲 公钥基础设施( pki )

Post on 19-Jan-2016

134 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

第 4 讲 公钥基础设施( PKI ). 周福才 教授 博导 东北大学信息学院计算机应用所 fczhou@mail.neu.edu.cn. 1. 数字证书的引入 2.PKI 体系结构 3. 数字证书的生命周期. 2014/9/6. 1. 1. 1. 数字证书的引入. 2014/9/6. 2. 2. 安全结构. 安全传输协议 SSL/TLS, SSH …. 数字证书 &PKI. 密码学应用 对称加密、非对称加密、消息摘要、数字签名、消息认证码、密钥协商. 密码学理论. 2014/9/6. 3. 3. 挑战 - 应答. - PowerPoint PPT Presentation

TRANSCRIPT

第 4 讲 公钥基础设施( PKI )

周福才 教授 博导

东北大学信息学院计算机应用所

fczhou@mail.neu.edu.cn

23/4/21

2223/4/21

1. 数字证书的引入

2.PKI 体系结构

3. 数字证书的生命周期

3323/4/21

1. 数字证书的引入

4423/4/21

密码学理论

密码学应用

对称加密、非对称加密、消息摘要、数字签名、消息认证码、密钥协商

数字证书 &PKI

安全传输协议SSL/TLS, SSH …

安全结构

挑战 - 应答 客户向认证服务器发出请求,要求进行身份认证 认证服务器从用户数据库中查询用户是否是合法的用户,若

不是,则不做进一步处理 认证服务器内部产生一个随机数,作为“提问”,发送给客户 客户将用户名字和随机数合并,使用单向 Hash 函数(例如

MD5 算法)生成一个字节串作为应答 认证服务器将应答串与自己的计算结果比较,若二者相同,

则通过一次认证;否则,认证失败 CRP ( Challenge-Response Protocol )可以使用对称密

钥或非对称密钥 对称密码:验证者和示证者共享一个秘密 (share asecret key) 公钥密码体制:秘密值为示证者的私钥( private key )

挑战 - 应答BobAlice

Hash(Alice,c)

Enc(c)

Request

Alice公钥

挑战 - 应答需要解决的问题 在基于非对称密钥的 CRP 中,验证者需要用示证

者的公钥对挑战值加密 验证者如何确定:这个公钥与示证者的身份是对应的?

在 SSL 中也有同样的问题 SSL 客户端如何能确定数字证书中的公钥与服务器是关

联的?

数字证书 通过由可信认证机构签发的数字证书,验证者可

以确定证书中包含的公钥是属于该用户的。证书需要有合适的有效期限

证书主体身份信息

证书主体公钥

CA 身份信息

CA 私钥签名

将身份与公钥绑定在一起,这个身份可以是一个用户或组织的名称、也可以是其它信息如地址、年龄等

颁发者的数字签名

X.509 证书格式

版本: 一般为 V1 , V2 和 V3 ,目前常用 V3 。 序列号:是由 CA 分配给证书的唯一的数字型标识符。 签名算法标识:对证书进行签名的算法和算法所需的参数。 颁发者:为 PCA 的名称。 有效期:定义证书有效的起始日期和结束日期。 证书主体:为证书持有者的唯一识别名称( DN )。 证书主体的公开密钥:信息包括算法名称、需要的参数和公开密钥。 颁发者唯一标识:可选项不推荐使用。防止颁发者的名字出现重用。 主体唯一标识:可选项不推荐使用。防止主体的名字出现重用。 扩展项:用于其它扩展内容。 签名:对整个证书的散列值的签名。任何一方都能认证证书是否有效

(必须知道 CA 的公钥)。

X.509 证书格式

一个数字证书:包含数字签名证书的发证机关;任何人都可以验证数字证书的真实性。

任何人都可以验证了示证者的证书真假,CA的公钥必须是尽人皆知的。

由 CA 签发的数字证书含有示证者的公钥。

CA 签发的数字证书

自签名证书 自签名证书包括:

证书所有者的公钥、信息和签名使用非对称密钥,上面所说的秘密值就是证明

者的私钥 什么时候、如何使用自签名证书?

视安全需求而定如果需要完成重要软件的组件之间最高级别的

认证,则不能使用自签名证书 在创建与安装由认证机构签名并颁发的证书之前,

自签名证书可以用来测试 SSL 的设备配置。

如何生成、储存、颁发、使用、撤销公钥和数字证书?

公钥基础设施( PKI )

PKI 动机 公钥技术

如何提供数字签名功能 如何实现不可否认服务 公钥和身份如何建立联系

为什么要相信这是某个人的公钥 公钥如何管理

方案:引入证书 (certificate) 通过证书把公钥和身份关联起来

151523/4/21

2.PKI 体系结构

PKI(Public Key Infrastructure)

定义 用公钥原理和技术实施和提供安全服务的具有普适性的安全基

础设施 一个完整的 PKI 应该包括

认证机构 (CA) 证书库 证书注销 密钥备份和恢复 自动密钥更新 密钥历史档案 交叉认证 支持不可否认 时间戳 客户端软件

PKI 的关键点:性能:尽量少用公钥加解密操作,在实用中,往往结合对称密码技术,避免对大量数据作加解密操作;除非需要数据来源认证才使用签名技术,否则就使用 MAC 或者 HMAC 实现数据完整性检验在线 /离线模型

签名的验证可以在离线情况下完成( off line )用公钥实现保密性也可以在离线情况下完成( off line )离线模式的问题:无法获得最新的证书注销信息

证书中所支持算法的通用性在提供实际的服务之前,必须协商到一致的算法

个体命名:如何命名一个安全个体,取决于 CA 的命名登记管理工作

PKI 主要组成

CA认证机构( CA ):证书颁发者

证书申请者验证者

证书是否有效?

证书交互

证书颁发 签名者:该证书主体的身份(或其它信息)与公钥绑定

验证者:出于认证目的使用证书的一方

签名者与验证者都称作终端实体

PKI 主要组成(细化)

证书 &CRL数据库

证书申请者 验证者

RA

CA

CA

CRL 发布者

认证机构

证书撤销列表

PKI 用户

PKI管理实体

发布证书

发布证书及CRL

发布 CRL

证书认证业务声明 /证书政策协议( CPS/CPA )

证书下载与查询

CA之间交互

用户注册

认证机构( CA )

认证:将一个身份信息与一个公钥绑定的行为例如:颁发证书

认证机构:负责认证的实体 CA运行按照证书认证业务声明( CPS )

CPS描述了 CA 的操作规程 证书按照证书政策协议( CPA )颁发给终端实体

CPA描述了在该政策下证书的颁发和使用规则

证书数据库

只通过 CA 对证书进行发布是不够的,验证者需要比较容易地找到对应于不同签名者的公钥 需要证书数据库( CR ) CR 可以由以下几种方式实现:

轻量级目录管理协议( LDAP )Web 服务器DNS共用数据库

证书撤销以及 CRL 数据库 验证者通过证书撤销机制可以得知一个证书是否被

作废 证书撤销与证书过期

证书过期是指过了有效期后证书自动失效(如驾照的有效期)

证书撤销是某事件发生,使得公钥与主体身份之间的绑定关系失效,如:主体身份发生改变(如女人婚后姓氏发生改变)私钥泄露非法用户(如司机违章,驾照被吊销)

撤销证书由 CRL 发布者发布到 CRL 数据库中

证书的注销机制

由于各种原因,证书需要被注销 比如,私钥泄漏、密钥更换、用户变化

PKI 中注销的方法 CA维护一个 CRL(Certificate Revocation List)

基于 Web 的 CRL 服务 检查 CRL 的 URL 应该内嵌在用户的证书中 可以提供安全途径 (SSL)访问 URL

返回注销状态信息 其他的用法由浏览器决定

证书撤销列表

252523/4/21

3. 数字证书的生命周期

公钥证书生命周期

密钥 /证书生成

密钥 /证书使用

密钥 /证书失效

密钥 /证书生成过程

初始化过程主要包括:

证书主体注册密钥生成证书生成与密钥 / 证书发布证书传播密钥备份(如果需要的话)

证书主体注册

一个独立用户或进程的身份被建立并验证 对于该过程控制的强度取决于 CPS/CP :

证书认证业务声明( CPS )描述 CA 的操作规程

证书政策( CP )指定了如何应用某公私钥对(数字签名、数据加密、网站一致性验证等)。该信息应由 CA 发布。

证书主体注册

主体(终端实体)

注册机构( RA )

认证机构( CA )

1.注册请求

3.注册提交

2.注册回复

4.注册建立请求

5.注册建立结果6.注册结果

7. 证书请求

8. 证书回复

密钥生成 密钥对可以在不同的地点产生:

终端实体(如用户的 PC 主机)RACA可信的第三方密钥生成设备

需要考虑的因素:性能(例如在移动电话中产生密钥)确定性密钥用途(例如机密性、不可否认性)

密钥用途(例如机密性、不可否认性)下面的原则是对于不同的用途使用不同的密钥

用于数字签名(相应的证书成为验证证书)用于数据加密(相应的证书成为加密证书)

密钥用途对于密钥产生地点有影响如果密钥用于实现不可否认性,则应由终端实

体产生,私钥只能该实体拥有作为 PKI 系统中最可信的实体 CA ,也可以知

道私钥,对于这一点有争议。

密钥生成

Java环境: KeyTool用于创建、储存、管理密钥功能:

生成公私钥对将 X.509 中 V1 、 V2 、 V3 版本的证书作为文件储存,并能够输入、输出

生成自签名证书发布证书( PKCS#10 )请求给 CA输入证书恢复(从 CA得到)将公钥证书标记为可信

密钥生成

证书生成

证书生成:由 CA 生成

如果公钥是由终端实体而不是 CA 产生,则该公钥应通过安全方式传给 CA

最终实体得到证书

一般的证书产生流程

状态查询

认证机构证书资料库

注册机构RA

发布证书及 CRL

私钥

证书

公钥

证书申请证书

公钥公钥公钥

密钥 /证书发布 公钥和证书的交付

直接交给证书拥有者(主体)交给远程数据库(证书和 CRL 数据库)以上两种都交付

向 CA 请求并接收证书的过程需要安全的协议RFC2510互联网 X.509 公钥基础设施证书管理

协议( CMP )RFC2511互联网 X.509 证书请求管理格式

( CRMF )

证书传播

如何让验证者得到证书面对面,手递手,物理上隐秘交付将证书发送到公开的数据库中

要求具有在线恢复功能在某个域内按协议分发(如安全的电子邮件)

公钥证书生命周期

密钥 /证书生成

密钥 /证书使用

密钥 /证书失效

密钥 /证书的使用 证书恢复(从证书数据库中)

需要验证者的请求 证书验证(需要验证者请求)

验证证书完整性(如验证颁发者数字签名,需要相应CA 的公钥)

证书是否过期 证书是否被撤销

密钥恢复 对于终端实体忘记私钥的情况,便于恢复

密钥更新当证书邻近有效期时,发布新的密钥对

认证路径 开始的时候,签名者掌握的 CA 公钥数量是有限

的 如果用户得到某 CA 颁发的证书,而该 CA 的公

钥用户不掌握,则还需要额外的证书来得到该公钥

这样就需要一个证书链,包括一个 CA 给用户颁发的证书,可能还有多个 CA 的证书,这些证书是由其他的 CA 颁发的(认证路径)

PKI 信任模型 需要解决的问题:

哪些实体的证书可以被信任?这样的信任如何被建立?在给定的环境下,这种信任能够被限制和控制

的情况有哪些?

几种信任模型:CA层次结构基于政策的 CA层次分布式信任结构四角模型网状模型

当第一个实体作出假定:第二个实体总是按照它所期望的方式运作,则说第一个实体信任第二个实体

PKI 信任模型

CA层次结构

认证机构 终端实体 认证

自签名证书 顶级CA

顶级 CA ( TLCA )—也被称作根 CATLCA 颁发一个自签名证书,作为该层次结构

中每个实体的信任基础TLCA 认证下属每个 CA以此类推,每个 CA 都认证各自下属的 CA从第二层到最后一层的 CA 可以认证终端实体

结构中每个实体都必须拥有 TLCA 的公钥 在该模型中, TLCA 的公钥是日后实体认证、证

书处理的基础

CA层次结构

如果两个用户同属一个 CA ,则认为它们都拥有该 CA 的公钥

各个 CA 必须呈层次结构 结构中链接的每一方都能验证所有 CA

每个 CA 都有上层和下层实体的证书 每个实体都信任上层实体的证书 这种结构使得用户能够认证该结构中任何 CA 颁

发的任何证书

CA层次结构

自签名证书

自签名证书包括:公钥、证书拥有者的信息和拥有者的签名有一个私钥,但不用来通过第三方 CA 验证该证

书的来源

公钥证书生命周期

密钥 /证书生成

密钥 /证书使用

密钥 /证书失效

密钥 /证书失效 证书过期— CA 可以进行如下三种操作:

无操作,该终端实体不再在该 PKI 中注册证书延期,原来的公钥被放到一个新的证书中,拥有新的有效期

证书更新,生成新的密钥对并颁发新的证书 证书撤销

一个已颁发的证书未过期,却不能再使用怀疑私钥泄露原来终端实体状态变化

证书撤销

由谁、如何管理证书撤销( Who 、 How )? WHO :

CA负责发布撤销信息验证者必须确定证书未被撤销

CA 可以通过证书撤销列表( CRL )发布撤销信息

在线查询机制:在线证书状态查询( OCSP )

PKI 有关的标准

Certificates —— X.509 v.3

交叉认证 —— PKIX group in IETF(RFC 2459)

智能卡 /硬件插件 PKCS #11

PKCS 系列 目录服务 LDAP

安全套接层 SSL 协议 SET 协议 其他: IPSec 、 S/MIME 、时间戳、 XML

PKCS( 公钥密码系统标准 ) 系列标准

PKCS #1 RSA Encryption Standard

PKCS #3 Diffie-Hellman Key-Agreement Standard

PKCS # 5 Password-Based Encryption Standard

PKCS #6 Extended-Certificate Syntax Standard

PKCS #7 Cryptographic Message Syntax Standard

PKCS #8 Private-Key Information Syntax Standard

PKCS 系列标准 ( 续 )

PKCS #9 Selected Attribute Types

PKCS #10 Certification Request Syntax Standard

PKCS #11 Cryptographic Token Interface Standard

PKCS #12 Personal Information Exchange Standard

PKCS #13 Elliptic Curve Cryptography Standard

PKCS #15 Cryptographic Token Information Format Standard

客户通过 Web申请一个证书

PKCS#10

CA 处理证书请求

PKCS#7

TDT Lab, SJTU, China23/4/21 TDT Lab, SJTU, China

top related