公钥、私钥、CA认证、数字签名、U盾
感谢传智播客的方立勋老师,在一个教学视频上,他巧妙地以蒋介石给宋美龄写密信作为例子,生动地讲述了软件密码学知识。
加密分为对称加密和非对称加密,我们传统理解的,发送数据之前使用一个加密器加密,接到数据以后使用解密器解密,这样的过程叫对称加密。而今天要讲的公钥私钥机制是非对称加密。
背景:在互联网上传输极机密的信息(比如网银用户在登录银行系统时使用的账号和密码)时,发送信息的一方和接收信息的一方彼此验证数据真实性及对方身份真实性的一套机制。
以下以用户登录银行系统为例,用户也叫数据发送方,银行也叫数据接收方,用户名密码叫做数据或消息或信息。
公钥私钥--一把钥匙开一把锁:消息发送的发送方和接收方都可以产生自己的公钥和私钥。对同一个人或机构来说,他产生的公钥加密的消息只有他产生的私钥可以解密,他产生的私钥加密的消息只有他产生的公钥可以解密。所谓公钥就是消息接收方发送给消息发送方的一个加密解密一体机, 消息发送方拿到公钥以后,就可以使用它加密一个消息并在发送给消息接收方以后由接收方通过自己手里的私钥来解密。可见,私钥之所谓私是因为他绝对不可以被其他方获得。公钥之所以公是因为它是发送给别人的,这个公钥可能后来被转发给无数个人,也可能被黑客拦截获取,这很好理解。
CA认证--消息发送方确认消息接收方的身份:作为消息发送方,必须确认消息接收方身份的真实性。比如,当你第一次打开银行网站时,虽然你拿到了对方网站发送给你的公钥,但你必须确认对方真的是银行网站而不是钓鱼网站或黑客,因为公钥人人都可以生成,如何判断你收到的公钥是真的银行发给你的呢?此时,CA认证闪亮登场,CA是一个可信的认证公钥的第三方组织,经过它认证过的公钥都是真实的。用户在登录银行系统时,银行通过网络将该行的CA认证书(内含银行公钥)发送给用户的浏览器,每个浏览器都会自动地验证和提示用户安装接收到的CA证书,如果验证不通过就会提示报错信息给用户,避免用户上当。
数字签名--消息接收方确认消息发送方的身份:同样,作为消息接收方,必须确认它收到的消息是真正的消息发送方发来的而不是黑客做的假消息(因为黑客有可能在银行给用户发送CA证书的时候从中拦截获得了CA证书和银行的公钥,然后用公钥加密消息再发给银行),这时就产生了所谓数字签名机制,数字签名是数据发送方将待发送的数据的摘要(一般是MD5摘要)使用发送方的私钥加密以后的结果,用户在发送加密信息给银行时,随同加密信息一起被发出的还有用户的数字签名及用户自己的公钥,银行拿到信息以后,首先使用用户的公钥解开数字签名,拿到MD5摘要码,然后使用自己的私钥解开加密信息,并将得到的信息再进行一次计算摘要,如果计算得到的摘要和解开数字签名得到的摘要相等,则可确认确实是用户发来的消息。为什么叫数字签名这个名字呢,我个人的理解是,你去银行柜台办理业务总是要不停地签名,你的签名是证明你是你的方式,而数字签名的作用也同样是为了向银行证明你就是你,所以叫做签名还是很贴切的。
U盾--直接发到用户手里的CA认证书:由于对CA认证的验证过程是在用户的浏览器里进行的,为了防止黑客劫持了用户的浏览器,在认证过程中做手脚,银行为网银用户发放U盾,直接将CA证书发到用户手里,防止了浏览器劫持带来的问题。
公钥、私钥、CA认证、数字签名、U盾相关推荐
- 加密原理公钥私钥CA
#原文来自:https://www.cnblogs.com/xdp-gacl/p/3744053.html 截取的片段,博主写的很好. 3.1.对称加密 采用单钥密码系统的加密方法,同一个密钥可以同 ...
- java 公钥 验证_Java代码签名验证公钥私钥
Java验证公钥私钥签名认证示例如下 importsecurity.KeyPair; importsecurity.KeyPairGenerator; importsecurity.NoSuchAlg ...
- 公钥 私钥 数字签名 CA证书
加密 简单来说分为两种,对称加密和非对称加密. 对称加密 加密和解密用的是同一个秘钥,在对称加密算法中常用的算法有:DES.3DES.TDEA.Blowfish.RC2.RC4.RC5.IDEA等.这 ...
- 关于公钥、私钥和 CA 认证的小故事
开胃菜 加密和认证 1.加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击.其重点在于数据的安全性. 2.身份认证是用来判断某个身 ...
- http_认证机制https加密TLSSSL密钥对(公钥私钥)
文章目录 http_认证机制&https加密&TLS&SSL&密钥对(公钥&私钥) references 更多详情(MDN::HTTP) session& ...
- 学习笔记:公钥私钥 签名验签 加密解密 CA 证书
重点: 1.区分加密解密和签名验签(在非对称加密情景下) 加密解密:#A给B发消息# A用B的公钥进行运算(加密),B收到后用B自己的私钥进行逆向运算(解密) 签名验签:#A给B发消息# A用A自己的 ...
- 公钥私钥传输,以及对CA证书的理解
公钥和私钥的传输. 服务器,生成了一个公钥A和私钥B.私钥B自己拿着,然后将公钥A发送给全网.原本的操作时客户端拿到这个公钥后然后自己生成一个 私钥(对称秘钥),然后通过公钥(非对称秘钥)把这个私钥加 ...
- 一个故事讲解公钥私钥和数字签名,很深刻!
关于公钥私钥和数字签名, 通过一个发送邮件的故事让大家有一个深刻的理解,非常棒的案例: http://www.blogjava.net/yxhxj2006/archive/2012/10/15/389 ...
- 公钥私钥证书与https
公钥私钥 非对称加密: 在一个过程中使用两个密钥,公共密钥用于加密信息,私用密钥用于解译加密的信息.这种加密方法称为非对称加密,也称为公钥加密,因为其中一个密钥是公开的(另一个私钥则需要自己保密). ...
最新文章
- 记一下uiscrollView不响应协议的问题
- 缓存系统memcache的安装,配置和使用
- 配置quick-cocos2d-x-develop OpenGL version too old
- 【超链接】多媒体工具网站
- jQuery点击行选中或者取消CheckBox
- 【ML小结6】关联分析与序列模式关联分析
- 【实战案例】利用Python做出趣味版防沉迷小程序
- win7找不到服务器的dns错误怎么办,Win7系统DNS错误怎么办?
- python0不能做除数报错_浅谈pandas dataframe对除数是零的处理
- 使用svn报错之An error occurred while contacting the repository
- 简单个人静态HTML网页设计作品——广西北海家乡旅游景点 10页 DIV布局个人介绍网页模板代码 DW个人网站制作成品 web网页制作与实现
- 使用Python计算前10000个质数表
- mysql 1236 bug_MySQL 1236错误解决方法
- 开源物联网监控告警平台JAVA开发
- 情不知所起,一“网”而深
- 计算机对电影工业的影响的英语作文,看电影的好处The Advantages of Watching Movies
- c语言程序越界,关于C语言中地址越界的问题
- threejs实现VR看房材质贴图
- 解放双手,一键自动完成2022京东618任务
- android如何远程,如何远程控制我的Android?