CA(Certificate Authority)及其伪造的可能性分析
CA是什么?有什么作用?
- 前言
- 验证过程
- 一些问题
- 如何确保 CA 是可信的?
前言
CA 也即证书授权机构,主要职能有颁布、认证和管理数字证书。数字证书用来记录和认证用户的公钥。
在非对称加密体系中,传递加密信息的基础为,用接收方的公钥对信息进行加密,传递给接收方后,接收方用自己藏好的私钥解密获取信息。(其它人可以拿到接收方的公钥,但无法依据公钥推出私钥,因此即使拿到加密信息,也无法解密。)
CA 在非对称加密过程中的作用就是在 CA 本身可信的基础上,让用户可以确认自己拿到的就是接收方的有效公钥,保证公钥的不可伪造性和完整性。
验证过程
简要梳理一下有 CA 参与的非对称加密体系的大致过程:
现有 A 和 B 两位同学需要使用非对称加密体系进行加密通信(A => B)。
- A 首先在 CA 查找 B 的信息,并获取 B 的数字证书。证书上记录着 B 的公钥和 CA 使用自己的私钥加密的数字签名(由 B 的证书信息计算得来)。
- CA 会主动将自己的证书返回给 A,里面包含 CA 的公钥。使用该公钥解密 B 的数字证书上的数字签名可获取 B 的信息摘要,然后再把证书上 B 的信息按相同的哈希算法计算出摘要,两相对比,从而确认获取的 B 的公钥是有效的。
- A 使用 B 的公钥加密信息后,与信息的摘要一起发送给 B。B 用自己的私钥解密后,计算信息摘要,与传递来的摘要对比,从而确认信息的完整性。
一些问题
如何确保 CA 是可信的?
这个问题反过来就是,我能不能伪造一个 CA 出来?
答案是完全可以!只要我有能力去生产非对称密钥对,然后把自己的信息写的看起来可信,然后就可以去骗去偷袭了。用户拿到我伪造的 CA 的证书,选择相信后,我就可以伪造数字证书,然后让用户用伪造的公钥去传递加密信息。
但是,事情也没有那么容易。大部分用户的主机系统中都预设了顶级的可信 CA,这些顶级 CA 有钱有势,相互认证真实性。伪造的 CA 自然无法通过这些大佬的认证,除非想办法把他们全部买通(值得吗?)。
所以,伪造 CA 技术上可行,其它都不可行。普通用户基本不用去考虑 CA 是否可信,除非是在系统上手动配置信任其它的 CA。
如有差错,欢迎讨论
CA(Certificate Authority)及其伪造的可能性分析相关推荐
- CA—Certificate Authority证书授权中心
首先CA是Certificate Authority的缩写,也叫"证书授权中心". 它是负责管理和签发证书的第三方机构,就好比例子里面的中介--C 公司.一般来说,CA必须是所有行 ...
- 证书颁发机构(CA, Certificate Authority)
CA保证浏览器所连接的网站是真正的需要连接的网站,防钓鱼网站. 1)服务器把自己的公钥密钥提交给CA加密,然后CA使用自己的密钥私钥进行加密(服务器公钥+服务器域名信息+公钥摘要),然后将其提供给浏览 ...
- 证书管理机构——CA(Certificate Authority)
摘自<百度百科--密钥密码体系> http://baike.baidu.com/item/%E5%AF%86%E9%92%A5%E5%AF%86%E7%A0%81%E4%BD%93%E7% ...
- CA认证(Certificate Authority)
什么是CA认证? CA认证,即电子认证服务是指为电子签名相关各方提供真实性.可靠性验证的活动.证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构.是负责发放和管理数 ...
- 使用CloudFlare 的 PKI 工具集 cfssl 来生成 Certificate Authority (CA) 证书和秘钥文件
要安装kubernetes最新版集群,https://github.com/opsnull/follow-me-install-kubernetes-cluster 这个文档必须要研习一下了. 以下实 ...
- CA机构介绍(Certificate Authority 域名SSL证书颁发机构)
SSL证书机构即CA机构的全称为Certificate Authority证书认证中心,只有通过WebTrust国际安全审计认证,根证书才能预装到主流浏览器,成为全球可信的ssl证书颁发机构. HTT ...
- 用XCA(X Certificate and key management)可视化程序管理SSL 证书(3)--创建自己定义的凭证管理中心(Certificate Authority)...
在第"用XCA(X Certificate and key management)可视化程序管理SSL 证书(2)---创建证书请求"章节中,我们介绍了怎样用XCA创建SSL证书请 ...
- CA certificate
1 什么是CA certificate CA证书本质上是一把公钥. 2 为什么需要CA证书 是为了避免黑客冒充服务器,服务器通过CA证书证明自己是真的服务器,而不是黑客. 就是说,一旦客户端有了一个服 ...
- 高亚芳 mysql_MySQL · 专家投稿 · MySQL数据库SYS CPU高的可能性分析
MySQL · 专家投稿 · MySQL数据库SYS CPU高的可能性分析 问题背景 我们在管理繁忙的 MySQL 数据库时,可能都有碰到 SYS CPU 高的经历:系统突然 SYS CPU 高起来, ...
最新文章
- c#,Winform同一系统中只运行一个实例。
- java构建词性词袋_词袋模型
- 5G PDCCH介绍
- jmeter存储http请求返回参数_Jmeter接口测试之HTTP请求默认值(八)
- 小说中场景的功能_如何让你的小说中的场景转换自如?
- 转:大规模网站架构技术原理透析
- linux下解压命令.7z,CentOS 下安装7-Zip 以及常用的解压命令
- 32岁了,我有机会转行做程序员吗?——Leo网上答疑(1)
- Perl语言入门——Perl变量简介
- ubuntu 解压与压缩 zip 文件
- linux认证ppt的图片,linux用户、组和身份认证-课件(PPT-精).ppt
- LocalDateTime类对时间的处理
- 仿网易LOFTER视差滚动列表
- 基于labview开发平台的声音信号采集及处理系统设计(任务书+lunwen+翻译及原文+vi源文件+查重报告)
- 用IDEA弹奏《起风了》伴奏音乐 Java语言 <源码分享> GitHub有趣的小项目
- sharedpreferences用法,京东面试真题解析,大厂面试题汇总
- Dell电脑 U盘启动盘 安装ubuntu
- 四旋翼无人机硬件,飞控,基站,NX
- 天线工程手册_“大神”给工控工程师快速成长的6点建议,看完你会少走弯路...
- IT碰碰车第四期:中国式创业因李开复而不同?