公钥、私钥、CA认证、数字签名、U盾
感谢传智播客的方立勋老师,在一个教学视频上,他巧妙地以蒋介石给宋美龄写密信作为例子,生动地讲述了软件密码学知识。
加密分为对称加密和非对称加密,我们传统理解的,发送数据之前使用一个加密器加密,接到数据以后使用解密器解密,这样的过程叫对称加密。而今天要讲的公钥私钥机制是非对称加密。
背景:在互联网上传输极机密的信息(比如网银用户在登录银行系统时使用的账号和密码)时,发送信息的一方和接收信息的一方彼此验证数据真实性及对方身份真实性的一套机制。
以下以用户登录银行系统为例,用户也叫数据发送方,银行也叫数据接收方,用户名密码叫做数据或消息或信息。
公钥私钥--一把钥匙开一把锁:消息发送的发送方和接收方都可以产生自己的公钥和私钥。对同一个人或机构来说,他产生的公钥加密的消息只有他产生的私钥可以解密,他产生的私钥加密的消息只有他产生的公钥可以解密。所谓公钥就是消息接收方发送给消息发送方的一个加密解密一体机, 消息发送方拿到公钥以后,就可以使用它加密一个消息并在发送给消息接收方以后由接收方通过自己手里的私钥来解密。可见,私钥之所谓私是因为他绝对不可以被其他方获得。公钥之所以公是因为它是发送给别人的,这个公钥可能后来被转发给无数个人,也可能被黑客拦截获取,这很好理解。
CA认证--消息发送方确认消息接收方的身份:作为消息发送方,必须确认消息接收方身份的真实性。比如,当你第一次打开银行网站时,虽然你拿到了对方网站发送给你的公钥,但你必须确认对方真的是银行网站而不是钓鱼网站或黑客,因为公钥人人都可以生成,如何判断你收到的公钥是真的银行发给你的呢?此时,CA认证闪亮登场,CA是一个可信的认证公钥的第三方组织,经过它认证过的公钥都是真实的。用户在登录银行系统时,银行通过网络将该行的CA认证书(内含银行公钥)发送给用户的浏览器,每个浏览器都会自动地验证和提示用户安装接收到的CA证书,如果验证不通过就会提示报错信息给用户,避免用户上当。
数字签名--消息接收方确认消息发送方的身份:同样,作为消息接收方,必须确认它收到的消息是真正的消息发送方发来的而不是黑客做的假消息(因为黑客有可能在银行给用户发送CA证书的时候从中拦截获得了CA证书和银行的公钥,然后用公钥加密消息再发给银行),这时就产生了所谓数字签名机制,数字签名是数据发送方将待发送的数据的摘要(一般是MD5摘要)使用发送方的私钥加密以后的结果,用户在发送加密信息给银行时,随同加密信息一起被发出的还有用户的数字签名及用户自己的公钥,银行拿到信息以后,首先使用用户的公钥解开数字签名,拿到MD5摘要码,然后使用自己的私钥解开加密信息,并将得到的信息再进行一次计算摘要,如果计算得到的摘要和解开数字签名得到的摘要相等,则可确认确实是用户发来的消息。为什么叫数字签名这个名字呢,我个人的理解是,你去银行柜台办理业务总是要不停地签名,你的签名是证明你是你的方式,而数字签名的作用也同样是为了向银行证明你就是你,所以叫做签名还是很贴切的。
U盾--直接发到用户手里的CA认证书:由于对CA认证的验证过程是在用户的浏览器里进行的,为了防止黑客劫持了用户的浏览器,在认证过程中做手脚,银行为网银用户发放U盾,直接将CA证书发到用户手里,防止了浏览器劫持带来的问题。
公钥、私钥、CA认证、数字签名、U盾的更多相关文章
- 探究公钥、私钥、对称加密、非对称加密、hash加密、数字签名、数字证书、CA认证、https它们究竟是什么,它们分别解决了通信过程的哪些问题。
一.准备 1. 角色:小白.美美.小黑. 2. 剧情:小白和美美在谈恋爱:小黑对美美求而不得.心生怨念,所以从中作梗. 3. 需求:小白要与美美需通过网络进行通信,联络感情,所以必须保证通信的安全性. ...
- CA认证原理以及实现(上)
转自:http://yale.iteye.com/blog/1675344 原理基础数字证书为发布公钥提供了一种简便的途径,其数字证书则成为加密算法以及公钥的载体,依靠数字证书,我们可以构建一个简单的 ...
- [加密]openssl之数字证书签名,CA认证原理及详细操作
转自:http://blog.sina.com.cn/s/blog_cfee55a70102wn3h.html 1 公钥密码体系(Public-key Cryptography) 公钥密码体系,又称非 ...
- CA认证_demo
CA认证,即电子认证服务 [1] ,是指为电子签名相关各方提供真实性.可靠性验证的活动. 证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构.是负责发放和管理数字 ...
- CA认证机制的简明解释
公钥机制面临的问题: 假冒身份发布公钥! 可以用CA来认证公钥的身份.CA有点像公安局,公钥就像身份证.公安局可以向任何合法用户颁发身份证以证明其合法身份.第三方只要识别身份证的真伪就能判断身份证持有 ...
- 浏览器CA认证流程
转载:https://blog.csdn.net/qq_22771739/article/details/86479411 首先说说证书的签发过程: 服务方 S 向第三方机构CA提交公钥.组织信息.个 ...
- OpenSSL与公钥私钥证书签名的千丝万缕
导语 人对任何事物的认识都是阶段性的,从无知到知晓,从懵懂到半知半解,从误解到将信将疑,从晕头转向到下定决心吃透. 介绍 OpenSSL是一个强大的命令行工具,它可以用来处理许多种跟PKI(Publi ...
- CA认证
nginx下证书配置 nginx 下 配 置 CA 认 证 为nginx配置https并自签名证书 开启443端口 实验环境: centos6.5 192.168.16.14 [ ...
- CA认证和颁发吊销证书
摘要:涉及到网络安全这一块,想必大家都听过CA吧.像百度.淘宝.京东等这些知名网站,每年都要花费一笔money来买CA证书.但其实简单的企业内的CA认证,我们自己就可以实现,今天小编我就讲解一下怎么在 ...
随机推荐
- [Java Web] 4、JavaScript 简单例子(高手略过)
内容概览: JavaScript简介 JavaScript的基本语法 JavaScript的基本应用 JavaScript的事件处理 window对象的使用 JavaScript简介: JavaScr ...
- Atitit. js mvc 总结(2)----angular 跟 Knockout o99 最佳实践
Atitit. js mvc 总结(2)----angular 跟 Knockout o99 最佳实践 1. 框架 angular 跟Knockout 1 2. 2. 简单的列表绑定:Knockou ...
- paip.提升效率--批量变量赋值 “多元”赋值
paip.提升效率--批量变量赋值 "多元"赋值 ##石麻是批量变量赋值. 为一组变量赋值. 例子 1 <?php $my_array = array("Dog&q ...
- javaweb学习总结(二十六)——jsp简单标签标签库开发(二)
一.JspFragment类介绍 javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段, ...
- bzoj 3517: 翻硬币
3517: 翻硬币 Time Limit: 1 Sec Memory Limit: 128 MB Description 有一个n行n列的棋盘,每个格子上都有一个硬币,且n为偶数.每个硬币要么是正面 ...
- Linux 常用命令小结
学习脚本几天了,总结下linux debian下脚本常用命令. Linux 1.添加删除账户 useradd / userdel 2.修改"张三"密码 passwd 张 ...
- MySql 分页
MySql 分页 由于最近项目需要,于是就简单写了个分页查询.总体而言MySql 分页机制较为简单.数据库方面只需要使用limit即可实现分页.前后台交互就直接用session传了值. 下面就写写具体 ...
- transform实现的时钟效果
又来一个时钟效果了,这个的实现不需要canvas,都是div.ul.li画出的,好玩有真实. 哈哈~ 需要的js才能实现到走动这个效果,但js的内容不多,也不难. 主要是一个css里transform ...
- FindFriendsServer服务搭建
本文介绍如何搭建FindFriendsServer(https://github.com/hnrainll/FindFriendsServer)所需的环境. 环境需要: Windows+Apache+ ...
- [推荐]Bitnami 开源软件包安装解决方案
[推荐]Bitnami 开源软件包安装解决方案 Bitnami is an app store for server software. Install your favorite applicati ...