密码技术简明教程(三):证书和TLS

栏目: 服务器 · Apache · 发布时间: 5年前

内容简介:在第一篇 和第二篇 中我们学到了 使用对称加密加密信息,非对称加密配送密钥,使用散列确认文件没有被篡改,使用消息认证码确保知晓密码的才能发送消息,使用数字签名来证明消息的发送者。那么,如果我们在互联网上访问一个网站进行通信的时候,使用非对称加密进行密钥配送时,怎么确保对方就是对方呢?也就是说,怎么确认我们收到的所谓的答案是,对公钥使用数字签名。

在第一篇 和第二篇 中我们学到了 使用对称加密加密信息,非对称加密配送密钥,使用散列确认文件没有被篡改,使用消息认证码确保知晓密码的才能发送消息,使用数字签名来证明消息的发送者。

那么,如果我们在互联网上访问一个网站进行通信的时候,使用非对称加密进行密钥配送时,怎么确保对方就是对方呢?也就是说,怎么确认我们收到的所谓的 Alice 的公钥就真的是 Alice 的公钥呢?

答案是,对公钥使用数字签名。

证书

因为大家都有公钥,于是世界上各大商家就形成了一个组织,这个组织负责对公钥进行签名。只要是这个组织签名过的公钥我们都信任。这个组织就叫 CA(Certification Authority)

举个例子,如果 Alice 要向 Bob 发送密文,那么首先 Bob 将它的证书发送给 Alice

首先证书有两部分组成:

  • Bob 的公钥
  • CA 使用 CA 的私钥生成的数字签名

Alice 接收到证书之后,首先使用 CA 的公钥对数字签名进行确认,如果发现没有问题,确实 是 CA 签发的证书,那么接下来,就是用 Bob 的公钥对消息进行加密,然后发送给 BobBob 再使用自己的私钥进行解密,就可以得到 Alice 发出的明文。

如果全世界只有一个 CA ,由它来签发所有的证书,那么它肯定忙不过来,而且也会由于处于垄断地位而搞各种幺蛾子,因此, CA 组织一般都是树状结构,是分层的,而最顶层的 CA 就叫 根证书(Root CA)。

TLS

TLS 就是我们之前学到的几种密码 工具 的组合,举个例子,我们日常所使用的HTTP协议,他是明文协议,HTTP请求大概长这样:

GET / HTTP/1.1
Host: www.example.com

而响应大概长这样:

HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 138
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
ETag: "3f80f-1b6-3e1cb03b"
Accept-Ranges: bytes
Connection: close

<html>
  <head>
    <title>An Example Page</title>
  </head>
  <body>
    <p>Hello World, this is a very simple HTML document.</p>
  </body>
</html>

可以看到,他们其实就是人类可读的字符,所以对HTTP协议进行中间人攻击,就可以获取所传输的一切,因此我们 需要一种能够兼容HTTP协议(HTTP应用这么广,不可能一下子把它废掉),但是又能进行加密的技术,它就是TLS。

TLS详细可以参考这里: https://en.wikipedia.org/wiki/Transport_Layer_Security

TLS的工作流程是:

ClientHello
ServerHello

可以发现


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

我在阿里做运营

我在阿里做运营

芮曦(@小马鱼) / 电子工业出版社 / 2018-7 / 59.00元

《我在阿里做运营》是一本散发着浓浓阿里味儿的运营书。作者进入互联网行业7年,曾就职于携程、阿里巴巴等大平台,也服务过小微企业、传统企业及诸多职场新人。不仅经历过各类运营岗,也经历过市场、品牌等岗位,对精细化运营、数据化运营和低成本运营有着深刻见解。 本书展示了在阿里这样的大平台做运营工作的真实场景,也提炼了适用于小微企业的经验,以及让运营新人快速上手的技能和自我修养、职业规划。一起来看看 《我在阿里做运营》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具