HTTPS中的TSL/SSL1.前言最近工作涉及到https和jwt,突然发现自己对加密解密以及相应的算法的理

在互联网通信过程中,我们希望传递的信息是安全的。安全主要由体现在如下几个方面:

对称加密算法使用同一个公钥进行加密和解密,而非对称加密算法使用公钥加密,私钥解密。

不俗套的我们又是经典人物Bob和Alice两个人进行通信。

如下面所示:Alice和Bob之间通过对称加密算法进行加解密。

缺陷:Alice和Bob之间使用公钥必须协商好,那么协商好的公钥要通知对方,必须经过网络传输并且不能加密(不然对方看不懂公钥内容是什么)。这里如果密钥泄露了,相当于就是明文传输,第三方可以使用泄露的密钥对Alice和Bob之间的信息进行解密。这样就不能保证信息通信中的私密性。

在上面提到的对称加密通信过程,没有解决公钥的安全传输问题,所以引入了非对称加密。

如下面所示:Alice和Bob之间通过非对称加密算法进行加解密。Alice使用Bob生成的公钥对明文进行加密,然后Bob使用自己的私钥对密文进行解密得到明文。

Bob自己生成一对公钥和私钥,私钥只有Bob知道,公钥可以让任何人知道。因此可以直接将公钥发送给Alice,被第三方截获也没有关系。

当Bob想要给Alice发送信息时,可以使用Alice生成的公钥进行加密,然后Alice使用自己的私钥进行解密。

缺陷:当有个第三方Eve使用Bob的公钥冒充Alice给Bob发送消息,那么Bob无法证明该消息是来自Alice还是Eve,这就是信息传递过程的不可否认性问题。

可以看出采用来数字签名可以达到数据完整性验证和不可否认性验证。

缺陷:前面提到的数字签名和非对称加密能够有效的前提之一是:能够可靠安全的拿到通信双方的公钥。假如Alice在给Bob发送公钥的过程中,被第三方Eve截获。Eve就可以将自己公钥发送给Bob,这样Bob以为是Alice的,使用Eve的公钥对明文加密发送给Bob,这个消息也被Eve截获,那么这个时候Eve就可以使用自己的私钥对密文进行解密,得到明文,这样消息传递的私密性就被打破了。同理,Bob给Alice传递自己公钥的过程被Eve截获,Alice发送给Bob信息的私密性也得不到保证。

注:电脑上会安装CA的公钥。

HTTP的通信是不安全的,所以后面推出了HTTPS,以SSL(SecureSocketsLayer)进行加密,这是SSL的起源。后面IETF将SSL进行标准化,1999年公布TLS(TransportLayerSecurity)1.0标准。下面我们会谈到建立安全的TSL/SSL连接涉及到的几个步骤。TLS/SSL安全协议采用非对称加密和对称加密的组合,客户端和服务器必须协商使用的算法并交换密钥信息。本文使用TLS1.2版本,TLS1.2的过程几乎与所有先前版本的SSL/TLS相同。然而,在最新版本的传输层安全协议中,这个过程得到了极大地简化。TLS/SSL建立安全连接最重要部分称为握手(handshake)。在TLS握手阶段,服务器和客户端交换用于确定连接的重要信息。下面这个例子是基于Web浏览器的握手,但对于其他TLS/SSL握手也适用。

首先,客户端向服务器发送ClientHello。ClientHello包括如下几个信息:

此时我们可以看到身份验证算法也就是我们前面提到的数字签名算法,而消息认证码算法就是我们前面提到的数字摘要算法。这里我们还未介绍的就是keyexchange算法和dataencryption算法(对称加密)。

在服务器收到客户端的Hello消息后,它会回复一个服务器Hello消息。服务器Hello消息可能包含已选取的选项(从客户端Hello提议的选项中选择),或者可能是一个握手失败的消息。

服务器现在向客户端发送一个经过签名的TLS/SSL证书,证明了其身份。它还包含服务器的公钥。客户端收到服务器的公钥,后面可以使用公钥来加密信息,发送给服务器。

在极少数情况下,服务器可能需要客户端使用客户端证书进行身份验证。如果是这样,客户端将向服务器提供其经过签名的证书。

服务器发送此消息给客户端,以确认ServerHello消息已完成。

在接收到服务器发送的ServerHelloDone消息后,客户端将发送ClientKeyExchange消息。如果服务器要求客户端证书,则在此之后发送ClientKeyExchange消息。在这个阶段,客户端创建一个pre-mastersecret。

master_secret=PRF(pre_master_secret,"mastersecret",ClientHello.random+ServerHello.random)[0..47];生成的mastersecret将作为对称加密算法的输入,用于客户端和服务器之间余下通信数据的对称加密/解密。mastersecret的长度为48字节,可以用于会话期间的加密和解密操作。

客户端和服务器创建了一个包含3个密钥的集合:

客户端和服务器将使用mastersecret生成sessionkeys,这些sessionkeys将用于加密/解密数据(对称加密)。

客户端在握手过程中的最后一条消息表示握手已经完成。这也是安全连接中的第一条加密消息。

来自服务器的握手过程的最后一条消息(已加密发送)表示握手已经完成。

从上面看到TSL/SSL握手过程中,涉及到协商的算法,身份认证(数字签名,不可否认性),消息认证码(Hash计算,数字摘要,完整性),数据加密(对称加密,私密性),数字证书(源认证)。

从客户端的角度来说:服务端可以用私钥生成数字签名,客户端可以用服务端的公钥验证签名,满足不可否认性和源认证。

对于服务端和客户端,双方可以利用协商好的密钥(sessionkeys)进行对称加密通信。满足私密性。

同时客户端和服务端,双方可以利用在握手阶段,密码套件中协商好的消息认证码算法(或者hash算法)验证数据是否被篡改,满足完整性。

所以从以上描述来说,HTTPS是一个安全的通信协议。在建立连接的过程以及后续加密通信的过程中涉及到许多加密算法以及密钥交换算法。

THE END
1.数字签名/数字证书解析数字签名和数字证书验证依照《电子签名法》的规定,从事电子认证业务需要行政许可,经许可的第三方认证机构即为通常所称的CA机构,而经CA机构认证并与当事人主体相关联的字符串,就是“数字证书”,电子认证的过程也就是数字证书的申请与颁发过程。 用于确认身份 数字签名相当于【持身份证进行签名】—— 作用对消息内容进行确认,确认的确是某人https://blog.csdn.net/sadfasdfsafadsa/article/details/141506159
2.数字签名和数字证书的原理解读(图文)数字证书是由权威机构CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档。而数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。对于数字签名和数字证书的运用原理,相信有不少朋友还不清楚,下文将为大家解疑答惑。https://zhuanlan.zhihu.com/p/635936973
3.数字签名和数字证书数字签名和数字证书 数字签名 数字签名是一种用于信息真实性和完整性校验的手段,一套数字签名包含签名和验证两种运算。下面是一套简单的数字签名示意图。 数字签名 原理 数字签名使用非对称加密技术。每个人都有一对钥匙,私钥只有本人知道,公钥公开,私钥签名,公钥验签。https://www.jianshu.com/p/312943a87389
4.数字签名与数字证书(3)发送方医生A利用私钥SK,采用对称加密算法DES对原文信息、数字签名 DSA及医生A数字证书的公钥 PBA加密得密文E。 (4)发送方医生A用接收方(患者)的公钥 PBB,采用RSA算法对对称密钥 SK加密,形成数字信封DE,就好像将对称密钥SK装到了一个用收方公钥加密的信封里。 https://cooc.cqmu.edu.cn/Course/KnowledgePoint/16065.aspx
5.数字签名与数字证书有何区别?尽管数字签名和数字证书被用作数字文档、软件、代码或其他传输数据的安全和认证措施,但它们还是有很大不同的。在本文,小编将深入跟大家探讨密钥数字签名与数字证书有何区别? 一、数字签名与数字证书的定义: 1、数字签名是一种数学技术,用于验证和验证数字文档、消息、软件或交易的真实性和完整性。它是盖章印章或手写https://www.hengxun.cn/news/content/4766.html
6.数字证书和数字签名的关系二者的区别:数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,而数字签名是一种类似写在纸上的普通的物理签名。 二者的联系:数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。数字证书还有一个重要的特征就是只https://edu.iask.sina.com.cn/jy/2HrYG6fOEMZ.html
7.数字签名和数字证书有什么区别?要解密签名,需要相应的公钥。数字证书用于将公钥绑定到人或其他实体。如果没有证书,签名很容易被伪造,https://www.orcode.com/question/676245_ke6f60.html
8.数字证书驱动程序下载列表深圳市市场监督管理局数字证书驱动程序下载列表:ODC组织机构数字证书、工商银行、建设银行、中国银行、农业银行、平安银行、招商银行、广东CA、深圳CA、北京CA、网证通等数字证书驱动下载。深圳商事登记公司注册、变更等数字签名证书下载。 注意:数字签名必须使用Adobe Reader 10.0或更高版本打开(如Acrobat Reader DC)。 https://www.0755-12315.com/news/1402.cshtml
9.什么是数字签名数字证书和时间戳?Entrust时间戳是对数字签名实践的越来越有价值的补充,使组织能够记录数字项目(例如消息、文档、交易或软件)的签名时间。 对于某些应用而言,数字签名的时机至关重要,例如股票交易、彩票发行和一些法律程序。 由于时间戳提供了一种机制来证明数字证书在使用时是否有效,因此即使时间不是应用的固有属性,时间戳对于记录保存和审计流程https://www.entrust.cn/resources/learn/what-digital-signing-certificates-time-stamping
10.https数字证书签名到底是什么?京鸿一瞥这个过程其实挺有趣的,涉及到的知识点,专业名词也很多,比如对称加密,非对称加密,信息摘要,数字签名,数字证书,公钥和私钥。本篇文章,会详细地介绍这些极易混淆的专业名词。 在讲解之前,我先给你提出几个摸底问题,如果你已经还不能够熟练回答,那么本篇文章会给你答案: https://www.cnblogs.com/caijinghong/p/17208482.html
11.电子签名数字签名的区别(数字证书是什么意思)电子合同当他们诉讼至法院时,又会拿出CA认证机构出具的所谓电子签名认证报告,但仔细一看,原来这不是电子签名认证报告,而是CA认证机构对自己制作的所谓的数字证书进行认证的所谓认证报告,极具误导性。 其实,数字证书、电子签名,是互有区别、各自独立的两个概念。 数字签名、电子签名、数字证书、数据电文是什么意思 https://m.fadada.com/notice/detail-8222.html
12.数字签名简介要向窗体或表单模板中添加数字签名,数字证书是必需的。您可以获得数字证书通过商业证书颁发机构或从内部安全管理员。购买数字证书的决策取决于您的组织的计划方式广泛部署表单模板。 数字证书 当您进行数字签名的表单模板时,InfoPath 将使用具有私钥和密钥用法属性的数字签名或两个值的那些证书。此外,用途必须是证书的代码https://support.microsoft.com/zh-cn/office/%E5%90%91%E6%96%87%E6%9C%AC%E6%B7%BB%E5%8A%A0%E9%A1%B9%E7%9B%AE%E7%AC%A6%E5%8F%B7%E6%88%96%E7%BC%96%E5%8F%B7-d2f92222-abb1-486b-bc07-884ecac99c59
13.数字签名是什么?它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。 我对这些问题的理解,一直是模模糊糊的,很多细节搞不清楚。读完这篇文章后,发现思路一下子就理清了。为了加深记忆,我把文字和图片都翻译出来了。 http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
14.rsa数字证书pem格式解析mob6454cc6d81c9的技术博客数字签名、数字证书都是私钥签名(可以理解为加密),公钥签名验证(可以理解为解密)。 1-4 是正常的rsa加密解密 5-9 是数字签名 5-14 是数字证书 转载地址:点击打开链接 原文网址:http://www.youdzone.com/signature.html 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 https://blog.51cto.com/u_16099250/11685235
15.网证通数字证书电子签章电子签名广东省电子商务认证有限公司NETCA时间戳服务器基于数字签名技术将一个可信赖的时间与电子数据绑定在一起,对外提供精确可信的时间戳服务。通过采用精确的时间源、数字证书、数字签名技术等技术,用以鉴别数据的完整性和用户行为的不可否认性。适用于各 查看更多 安全客户端 网证通安全客户端(简称“客户端”)是一款对数字证书和存储数字证书的https://www.cnca.net/cn/index.htm4.3
16.PKI基本概念AR100S,AR110S,AR120S,AR150S,AR160数字证书技术解决了数字签名技术中无法确定公钥是指定拥有者的问题。 证书结构 最简单的证书包含一个公钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效期,颁发者(证书授权中心)的名称,该证书的序列号等信息,证书的结构遵循X.509 v3版本的规范。图16-6展示了一个常见的证书结构。 https://support.huawei.com/enterprise/zh/doc/EDOC1100033978/3c50cadf
17.CA电子签名有效吗?如何申请CA数字证书的电子签名?首先,我们需要了解什么是CA电子签名。CA是CertifiCAte Authority的缩写,中文名为证书授权中心,它是负责发放和管理数字证书的权威机构。CA电子签名就是通过CA认证的数字签名,具有法律效力,被广泛接受和认可。 ? ? ? 那么,CA电子签名有效吗?答案是肯定的。符合法定条件的电子签名与手写签名或者印章具有同等的法律效https://qian.tencent.com/document/news144840544338558976/
18.电子商务安全与策略11篇(全文)SET协议采用了RSA公私钥加密系统、数字签名、数字证书认证等技术,保证了支付信息的保密性、完整性和不可否认性。该协议提供了客户、商家和银行之间的身份认证,而交易信息和客户信用卡信息相互隔离,即商家只能获取订单信息,银行只能获得持卡人信用卡支付信息,双方互不干扰,各去所需,构成了SET协议的主要特色,使得SET成为https://www.99xueshu.com/w/ikeyvq6pyzjo.html
19.代码签名证书的简单小介绍说到代码签名证书,相信很多从事软件开发和相关从业的人员都会觉得非常的亲切,因为代码签名证书为他们带来了很多的便利。下面我们一起来看看代码签名证书相关的一些信息。 代码签名证书是一种可对软件或者可执行脚本进行数字签名的数字证书,软件加上数字签名后可以在软件中显示发布者身份信息,向用户端证明软件在签名后和被用https://www.ihuandu.com/pr/codesigning/605.html
20.什么是数字证书?数字证书有哪些?数字证书随着互联网的不断发展,数字化技术的广泛应用,数字证书作为认证通信各方真实身份,确保数据完整性和安全性的重要工具被广泛应用于互联网中。特别是银行金融机构,经常会用数字证书来作为客户在网上进行交易及商务活动的身份证明。那么,到底什么是数字证书?数字证书有哪些https://www.racent.com/blog/127
21.图纸数字化和白图交付专栏2、设计企业及其项目负责人用于工程图纸数字签名的数字证书应当办理电子出图章和电子个人执业章,不实行注册执业人员负责的项目负责人办理个人手写签名电子章。 3、施工企业和监理企业用于竣工图数字签名的数字证书无需办理电子竣工图章,其注册建造师(施工企业项目负责人)和总监理工程师应当办理带个人手写签名电子章的个人数https://ciac.zjw.sh.gov.cn/digitalblueprint/content3.html
22.上海CA认证中心数字证书电子签名签章网络信任综合服务专家上海CA中心成立于1998年,是中央密码工作领导小组批准的唯一试点,为政府、企事业单位、个人等提供合法合规的第三方电子认证、数字身份相关产品和集成实施服务,累计服务客户和企业用户超350万家。https://www.sheca.com/