【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/ ...
随机推荐
- vue学习之webpack
本质上,Webpack是一个现代 JavaScript应用程序的静态模块打包器(module bundler).当 Webpack处理应用程序时,它会递归地构建一个依赖关系图(dependency g ...
- sso架构图
- [py]django前台处理后端返回的各类数据
参考 要完成的任务 返回str 返回list 返回arr 前端遍历 关键字 if for语句处理str list dict - 遍历字典 for语句 {% for key, value in info ...
- INT_MAX和INT_MIN注意事项
版权声明:转载请注明出处 http://blog.csdn.net/TwT520Ly https://blog.csdn.net/TwT520Ly/article/details/53038345 I ...
- Python随机数生成方法
假设你对在Python生成随机数与random模块中最经常使用的几个函数的关系与不懂之处.以下的文章就是对Python生成随机数与random模块中最经常使用的几个函数的关系,希望你会有所收获,以下就 ...
- sdut2193救基友记3(三维)
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2193 救基友记3 Time Limit: 10 ...
- cocos代码研究(2)Layer学习笔记
auto layer = Layer::create(); /*************华丽分割线*************/ auto layer = LayerColor::create(Colo ...
- HDU 4770
这题说的是一在一个N*M的房间内,然后有些房间不能被灯光照亮,有一个灯可以转动方向,其他的灯只能在固定一个方向上,因为数据比较小,所以比较水,直接暴力的进行枚举就好了,但是还是 wa了很久,原因没认真 ...
- 持续集成之二:搭建SVN服务器(subversion)
安装环境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 subversion-1.10.3.tar.gz apr-1. ...
- Linux查看操作系统版本
Linux版本太多,不同版本的命令又有所区别,所以在解决Linux的一些问题时候无从下手 或者 走一些弯路,这里提供解决此类问题的思路: 查看linux版本号 有了版本号,不同版本 统一问题解决方案不 ...