【Coursera】Security Introduction -Ninth Week(2)
对于公钥系统,我们现在已经有了保证它 Confidentially 的一种方法:SSL。SSL利用了公钥的概念。
那么 who we are talking to?
Integrity
Certificate Authorities Integrity
服务器发送给我们的公钥,是加以签名(signed)的,被 third-party certification authority 认证(validated).
我们并不是从 Coursera 得到的证书,而是从 GoDaddy 处得到的认证的证书。
GoDaddy 检查了 Coursera 的 ID,认证之后,给予private key签名。所以这是一种 确保你所交流的对象身份 的方法。
Digital Certificates
In cryptography, a public key certificate(公钥证书) (also known as a digital certificate(数字证书) or identity certificate(身份证书)) is an electronic document(电子文件) which uses a digital signature(数字签名) to bind(捆绑) a public key with an identity(使用数字签名 将一个 认证的身份/姓名 和public key捆绑在了一起) ---information such as the name of a person or an organization, their address, and so forth.
The certificate can be used to verify(核实) that a public key belongs to a individual.
举个例子,如果有一个guy来到了你的办公室,然后说,hey,我是翔翔。然后你就要指明他的身份了:hey,给我看看你的纹身。翔翔给你看了他的纹身,然后你证实了他的身份。这里的纹身就是 翔翔的 private key,就是 signature。
Certificate Authority(CA)
A certificate authority is an entity(实体) that issues(发布) digital certificates. The digital certificate certifies the ownership(所有权) of a public key by the named subject of the certificate.
A CA is trusted third party that is trusted by both the owner of the certificate and the party relying upon the certificate.
有时候,取得证书是一件很昂贵的事情,这些证书具有十分可靠的可信度。
比如我有一个网站,www.chuck.com,我在这个网站上面做一些教学的工作,因为我需要得到一些信息,所以需要申请安全的证书。我有 public key 和 private key,我向certificate authority 发送了它们,然后支付了一定的费用,然后它们返回给我了 具有可信度的 signed private key。
优秀的CA证书具有很高的可信度,因此有时候取得证书是一件很昂贵的事情。为了保证这个certificate不会被第三方的人获取,CA需要一些时间来证明申请者的身份。
虽然我们花了很大的价钱购买了证书,但是CA同样也花了很大的精力来认证,防止错误地发送证书给第三方。
我们使用CA的证书来确认我们访问的对象,那么我们是怎么确认哪一个CA是我们可以相信的呢?
这取决于我们操作系统的供应商。
你的游览器和你的操作系统,为了确信的CA提前安装了public key certificates,就像Verisign。
Verisign 在它的发展过程中,以它的身份鉴证方式在多年来的实践中经受住了充分的考验,取得了众多公司的信任。
VeriSign是世界唯一一家在颁发给网站安全证书的同时对其企业真实身份进行实地考查,并进行法律认定的第三方安全认证机构。他首先保证了你交易的安全,其次保证了该网站是合法的网站。
不同的CA数字证书机构在身份鉴别上有着不同的策略,作为行业的领先者VeriSign一贯严格的身份鉴证,其身份鉴证方式在多年来的实践中经受住了充分的考验,其证书在整个互联网上拥有者极高的认知度。要想获得一张数字证书,申请者至少要提交如下资料:
1、 提交组织真实信息已证实组织是合法成立的机构
2、 提交信息以证明组织是该域名的合法拥有者,服务器证书有权使用该域名地址
3、 验证SSL服务器证书申请者作为企业的正式成员的真实身份并被组织授权申请证书
Public-Key issues
Public-Key cryptosystems have the problem of securely associating(使联系起来) a public key with an idividual.(将public key 和 个体联系起来)
I am about to type in my credit card and send it. -am I being Phished?
The remote server sent me a public key.
Should I use it? Is this really Amazon's public key?
前面我们解决了Integrity的问题:我们发送数据的对象 通过 public key 上的CA证书 证明是可靠的对象,是我们的数据想要发往的对象而不是第三方。
那么还有一个问题:怎么证明 网站发来的 public key 是真实的,或者说 不是第三方发送的?
Public/Private Key for signing
一个例子:
VeriSign 有一个public key 和 一个 private key,他们存储了private key。随后他们把 Verisign public key 交给了苹果,微软以及Linux,这些公司把 VeriSign public key 装进了你的laptop中。
Amazon 此时想做一些交易,Amazon 在它的服务器中,生成了一对 Amazon public key 和 Amazon private key, Amazon private key从不离开Amazon的服务器。
然后,Amazon 把它的 Amazon public key 传送给 VeriSign,第三方可能会看见,但是没有关系,它只是public key。
在 VeriSign 的服务器内部,使用了它的 VeriSign private key 生成了摘要(digest),并且把证书和 在尾部添加了 digest 的 Amazon public key 发送给 Amazon。
那么现在 Amazon 拥有的不是以前的 Amazon public key 了,它现在是 被 VeriSign 证明(通过digest) 的 Amazon public key,也就是说,之前 Amazon 把它的 public key 发送给 VeriSign, Verisign 对它进行了签名(也就是身份验证),使得第三方很难去伪造它。
经过了很长的一段时间,你想在你的laptop上面登录 Amazon 购买一些鞋子。
Amazon 把带有 CA证书 和 digest 的 Amazon public key 发送给你,那么此时你拥有的是 从你购买电脑的那一刻起,安装在你电脑里面的 VeriSign public key,通过这个 Verisign public key 和 Digest 你验证了 Amazon public key 是经过 Verisign 认证的,那么也就是说,这个 Amazon public key 确实是 Amazon 发送过来的。注意:附在 Amazon public key 之后的 digest 是在 Verisign 处 使用 Verisign 的 private key 形成的。
所以,我们通过这个 Verisign 验证(digest)的 Amazon public key 证实了 它确实是从 Amazon 发送过来的。
这一次,通过发送过来的 Amazon public key (附着digest) 和 CA证书,我们证明了:
- 这个发送过来的 public key 确实是 Amazon 发送过来的。
- 因为有这个 Verisign 认证的 CA证书,我们可以放心的把我们的信息 通过发送过来的 Amazon public key 加密之后,发送给 目的地 而不是第三方。
接下来的事情,我们可以放心的用 发送过来的 Amazon public key 加密我们的信息(因为我们通过 Verisign 的 digest 验证了这个 public key 的安全性),然后发送给目的地 而不必担心目的地是虚假的(因为CA证书)。
Amazon 收到了你用 Amazon public key 加密的 暗文,随后 Amazon 使用 从未离开的 Amazon private key 对 暗文 进行解密。得到了想要的信息。
第三方一直在监视这些过程,但是没有办法(或者说好的方法)来破解public key(之前提到的 large prime 得到因子是一件很困难的事情),所以这些过程真的是非常的精彩和智慧。
小结:
CA 和 SSL 解决了一大堆 非常有价值的 信息安全问题。
Message Confidentially / Message Integrity
Encrypting / Decrypting
Message digest and message signing
Shared secret key / Public Private key
2016/8/14
【Coursera】Security Introduction -Ninth Week(2)的更多相关文章
- 【Coursera】Security Introduction -Ninth Week(1)
前言 Coursera 的 Internet History,Technology,and Security 进入最后一周的学习了,在这最后一周内,需要进行的内容是 public-key 公钥系统的讲 ...
- 【Coursera】Security Introduction -Eighth Week(1)
Security Introduction People With Bad Intent 今天,Bob 向 Alice 发送了一条 "Hello,Allice!" 的信息,他们希望 ...
- 【Coursera】Security Introduction -Eighth Week(2)
Review -Terminology(术语): Confidentiallity & Integrity 泄密 & 欺骗 Confidentiallity: Prevent unau ...
- 【Coursera】Security Introduction -Summary
对这门课程的安全部分进行一个小结. 往期随笔 第八周第一节 第八周第二节 第九周第一节 第九周第二节 前言:为什么互联网要提及安全 因为security牵扯到我们每一个人,有人每时每刻都想着要偷取别人 ...
- 【python】An Introduction to Interactive Programming in Python(week two)
This is a note for https://class.coursera.org/interactivepython-005 In week two, I have learned: 1.e ...
- 【Coursera】Seventh Week
Application Layer:Use the services of the TCP layer Quick Review Link Layer(Ethernet):gets the data ...
- 【Coursera】History: Dawn of Electronic Computing学后小结
今天学习了Coursera上University of Michigan开的互联网的历史.技术和安全课程的FirstWeek内容. 先是吐槽下这个Coursera,认证非常麻烦,PC端需要摄像头拍照. ...
- 【Coursera】支持向量机
一.最大间隔分类器 1. 函数间隔:\(γ^{i} = y^{i}(w^{T} x + b)\), 改变w和b的量级,对分类结果不会产生任何影响,但是会改变函数间隔的大小.因此,直接对函数间隔求最大值 ...
- 【转】An introduction to using and visualizing channels in Go
An introduction to using and visualizing channels in Go 原文:https://www.sohamkamani.com/blog/2017/08/ ...
随机推荐
- 【java】System.out重定向到文件,并重定向会console上
重定向到文件: System.setOut(new PrintStream(new File("data\\train.1.scale"))); 重定向回console: //把输 ...
- Hadoop集群安装-CDH5(3台服务器集群)
CDH5包下载:http://archive.cloudera.com/cdh5/ 主机规划: IP Host 部署模块 进程 192.168.107.82 Hadoop-NN-01 NameNode ...
- python基础24 -----python中的各种锁
一.全局解释器锁(GIL) 1.什么是全局解释器锁 在同一个进程中只要有一个线程获取了全局解释器(cpu)的使用权限,那么其他的线程就必须等待该线程的全局解释器(cpu)使 用权消失后才能使用全局解释 ...
- python ddt 实现数据驱动一
ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情况下,data中的数据按照一个参数传递给测试用例,如果da ...
- winform dataGridView DataGridViewComboBoxColumn 下拉框事件代码
有一个dataGridView ,有一列是DataGridViewComboBoxColumn .我用动态绑定,在绑定数据的时候.我们也给这一列绑定数据 在dataGridView的RowsAdded ...
- Oracle 错误代码小结
ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出 ...
- CUDA从入门到精通 - Augusdi的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/augusdi/article/details/12833235 CUDA从入门到精通 - Augusdi的专栏 - 博客频道 - CSDN.NET CUDA ...
- Java Nested Classes(内部类~第一篇英文技术文档翻译)
鄙人最近尝试着翻译了自己的第一篇英文技术文档.Java Nested Classes Reference From Oracle Documentation 目录 嵌套类-Nested Classes ...
- 174. Dungeon Game(动态规划)
The demons had captured the princess (P) and imprisoned her in the bottom-right corner of a dungeon. ...
- VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
上一节讲了标签控件Tab Control以后,常用控件的内容就全部讲完了,当然并没有包括所有控件,主要是一些很常用很重要的控件.本节开始鸡啄米将为大家讲解菜单的概念及使用. 菜单简介 菜单在界面设计中 ...




