您的位置:首页 > 理论基础 > 计算机网络

HTTPS系列之CA数字证书

2016-07-28 14:34 459 查看
数字证书的两个作用:

1. 身份验证。确保客户端访问的网站是通过CA认证的可信赖的网站

2. 分发公钥。

简介

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

“遵循标准的利用公钥加密技术提供一套安全基础平台的技术和规范。支持公钥管理并能支持认证,加密,完整性和可追究性服务的基础设施“

“完整的PKI系统具有 CA, 数字证书库,密钥备份及恢复系统,证书作废系统,应用接口。“ –from Baike

CA(Certificate Authority),数字证书认证机构

CA负责签发和管理证书

证书库:CA办法的证书和撤销证书

证书的撤销: 证书撤销列表(CRL)

数字证书

数字证书就是一个公钥,一个CA对证书信息的签名,附加一些信息。

从下图中可以获取几点信息:

1. CA的组织结构: 树形,最顶层为根CA(根证书比较特殊,是自签发),根CA可以授权多个中级CA,中级CA可以授权证书。

2. 证书是有有效期限的,也就是会过期,但PKI提供一种机制解决密钥更新带来的复杂性和马反省,会在过期前的一段时间间隔里启动程序自动更新证书。



申请证书

证书申请者会生成一对公钥和私钥,会把公钥和一些其它信息制作成CSR格式的文件发送给RA(r: 目前还不知道RA指的是什么),RA验证信息后会将CSR发给CA,CA制作X.509标准格式的文件(即证书)。

eg: 目前还未申请过SSL证书,以后补上…

记录下iOS开发证书的流程:

1. 通过钥匙串访问工具从证书颁发机构请求证书生成CSR文件与私钥。

2. 在开发者网站上传CSR文件生成证书。(其中苹果应该是做了验证信息与制作证书流程)

3. 开发者通过私钥对代码进行签名,签名包含在Mach-O二进制文件格式中,如果是像脚本那样的非Mach-O二进制文件,则存储在文件扩展属性中。证书中的公钥则可以对代码进行验签。

图from Apple:



证书签发流程

证书内容进行哈希生成消息摘要

使用CA私钥加密生成数字签名

签名校验流程

对证书内容哈希生成消息摘要;

从签发该证书的机构获取公钥(CA公钥),进行验签,如果跟证书内容进行哈希生成的值相同则验签成功,证书未被篡改。

问题:

1. 如何从签发该证书的机构获取公钥;

2. 如何递归验证,直到根CA。



总结

证书主要是用于两种情况: 一个是验证文件是否被篡改(针对苹果开发者证书,进行代码签名)。一个是验证网站是否可信(针对HTTPS).

证书中的数字签名是对证书内容哈希后使用CA私钥进行签名的,公共密钥则是证书申请者提供开放给所有人的公钥。

参考资料

iOS安全系列之一:HTTPS

浅析CA证书
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ca 数字证书