公钥、私钥、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认证,我们自己就可以实现,今天小编我就讲解一下怎么在 ...
随机推荐
- AngularJS快速入门指南10:DOM节点
AngularJS通过指令将application数据绑定到HTML DOM元素的属性上. ng-disabled指令 ng-disabled指令将AngularJS application数据绑定到 ...
- hibernate中 inverse的用法(转载)
http://blog.csdn.net/xiaoxian8023/article/details/15380529 一.Inverse是hibernate双向关系中的基本概念.inverse的真正作 ...
- 深入理解javascript事件流
摘要:事件流这个东西是比较重要的,为了让自己更加理解js中的事件流,必须整理整理,梳理一下事件流的各种东西啊.本文大部分内容参考<javascript高级程序设计第三版> 先来一段书里的原 ...
- lucene字典实现原理
http://www.cnblogs.com/LBSer/p/4119841.html 1 lucene字典 使用lucene进行查询不可避免都会使用到其提供的字典功能,即根据给定的term找到该te ...
- Leetcode 172 Factorial Trailing Zeroes
给定一个数n 求出n!的末尾0的个数. n!的末尾0产生的原因其实是n! = x * 10^m 如果能将n!是2和5相乘,那么只要统计n!约数5的个数. class Solution { public ...
- android: 使用 IntentService
9.5.2 使用 IntentService 话说回来,在本章一开始的时候我们就已经知道,服务中的代码都是默认运行在主线程 当中的,如果直接在服务里去处理一些耗时的逻辑,就很容易出现 ANR(Appl ...
- 使用Webpack和Babel来搭建React应用程序
用Webpack(npm install -g webpack)代码打包,Webpack大致需要知道三件事: 1)让Webpack知道应用程序或js文件的根目录 2)让Webpack知道做何种转换 3 ...
- NuGet学习笔记(转)
NuGet学习笔记(1)——初识NuGet及快速安装使用 http://kb.cnblogs.com/page/143190/ 1. NuGet是什么? NuGet is a Visual Studi ...
- 代码生成器Sql Server 和 Mysql 数据库脚本
经常用到代码生成器,对于取数据脚本做个记录: #region SQL-SqlServer private string SqlTableList = @"SELECT so.name, Co ...
- 【Python】winpython下的包安装
1.安装easy_install http://blog.csdn.net/A8572785/article/details/10945237 2.与ipython兼容的ipdb命令 pip inst ...