HTTPS系列之CA数字证书
来源:互联网 发布:动漫壁纸软件下载 编辑:程序博客网 时间:2024/06/05 14:17
数字证书的两个作用:
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证书
- HTTPS系列之CA数字证书
- openssl之数字证书签名,CA认证原理及详细操作
- 数字签名、数字证书、CA是什么?
- 数字证书机构CA
- 数字证书及CA介绍
- 数字签名-数字证书-ca认证
- 数字证书及CA扫盲
- CA 数字证书中心
- tomcat系列-05-HTTPS支持-私有CA颁发证书
- 数字证书(CA)应用技术简介
- 数字证书(CA)应用技术简介
- 数字证书及CA简单介绍
- ITIL工具系列之CA-Unicenter
- IIS HTTPS CA
- restful,ca,httpclient,https
- HTTPs SSL CA
- CA证书 配置 https
- HTTPS、SSL、数字证书
- linux---nginx了解与安装
- 1028. 人口普查(20)
- HDU 1010 Tempter of the Bone(DFS + 剪枝)
- 通过使用SimpleJdbc类简化JDBC操作
- UsingXListView上拉加载
- HTTPS系列之CA数字证书
- web攻击XSS等
- 降低高水位 oracle
- RecyclerView的简单使用
- 百度地图
- 101The Blocks Problem
- spark 各内部机制流程图
- android 判断网络 android 网络监控
- POJ 3181 Dollar Dayz(dp)