数字签名与HTTPS详解如.若

因为HTTP协议本身存在着明文传输、不能很好的验证通信方的身份和无法验证报文的完整性等一些安全方面的确点,所以才有了HTTPS的缺陷。HTTPS确切的的说不是一种协议,而是HTTP+SSL(TSL)的结合体。HTTP报文经过SSL层加密后交付给TCP层进行传输。SSL(安全套节层)主要采取的是RSA(非对称加密)与AES(对称加密)结合的加密方式。先通过RSA交互AES的密钥,然后通过AES进行报文加密和解密。本篇博客主要聊的就是HTTPS具体的工作过程。

一、RSA与AES简述

1、AdvancedEncryptionStandard(AES:高级加密标准)

AES,全称:AdvancedEncryptionStandard----高级加密标准。该加密算法有一个密钥,该密钥可以用来加密,也可以用来解密,所以AES是对称加密算法。下方这个就是AES加密和解密的过程。Client端与Server端有一个共同的Key,这个Key是用来加密和解密的。如果报文在传输的过程中被窃取了,没有这个key,对加密的内容进行破解是非常困难的,当然窃取者如果有key的话,也是可以轻而易举的解密的。所以在AES中,key是关键。这也就相当于你们家的门钥匙,谁拿到钥匙后都可以打开你们家的门。即使门锁再结实,再安全,在钥匙面前也是不行呢。

2、RSA公钥加密算法

RAS这个名字,就是该算法三位发明者的名字的首字母的组合。RAS是非对称加密,其在加密和解密的过程中,需要两个Key,一个公钥(publickey),一个是私钥(privatekey)。公钥负责加密,而私钥负责解密。从名字就可以看出,公钥是可以开放出去的,任何人都可以持有公钥进行加密。而私钥必须得进行保护,因为是用来解密的。

这样一来,加密和解密就可以用不同的钥匙来处理。对于加密放来说,即使你可以对报文进行加密,如果没有私有的话也是不可以对你加密的内容进行解密的。这就相当于一个盒子,盒子上有把锁。你可以把东西放进去,然后再锁上盒子。但是如果你没有钥匙的话,也是打不开这把锁的。

下方这个简图就是服务端单向验证的RAS非对称加密算法,Client内置了一个公钥,该公钥与Server端的私钥是配对的,所以Client端可以使用这个内置的Publickey加密,而服务端就可以使用这个privatekey进行解密。目前最常用的是服务端单向认证机制。

二、CA证书

如果你自己通过RAS算法生成了一个私钥和公钥,在公钥发送给客户端的过程中有可能被篡改成其他的公钥,而客户端在没有其他措施的保护下是不知道该公钥是否就是服务器那边的私钥对应的公钥的。这种自己做的RAS的公钥和私钥有可能在公钥分发的过程中被篡改。下方就是Client从Server端获取公钥时被中间者篡改了,将public换成了自己的伪publickey,同样这个中间者持有这个伪publickey所对应的伪privatekey。如果客户端使用的伪publickey进行加密传输的话,那么中间者是可以使用自己的privatekey进行解密的。

举个例子来类比一下这个问题。

假设你在古代,你出门在外,妻子在家养子。你们家有个箱子,箱子上有把锁,这就是你和你妻子互通的工具。你媳妇儿负责往箱子里放东西,然后上锁。你有把独特的钥匙,你负责开锁,取东西。可是你再将箱子给镖局托运的的过程中,被镖局的“小黑”掉包了,箱子的外表一致,锁看起来也一样,可是已经不是你的箱子了。因为路途遥远,古代又没有什么iPhone啥的,你媳妇没办法来辨别该箱子是否是原装的。然后就将一些东西放在了箱子里边,然后上锁交给了镖局的“小黑”。

因为“小黑”掉包的箱子,所以小黑有箱子的钥匙呢,然后就可以打开这个箱子,取东西了。原来的箱子又在小黑那,小黑就可以往原来的箱子里边随便往箱子放点没有价值的东西给你就行了。当你发现箱子里的东西不是你想要的时候,完了,小黑从镖局辞职了,找不到人了。找镖局的人讨说法,可是镖局的人说“小黑”是镖局的临时工,这个责任镖局说了,我们不能担。鉴于你无权无势,这事儿也就此罢了。(故事纯属虚构,如有雷同纯属巧合)

关于更多骗子的故事请移步网络剧《毛骗》一二三季。

为了防止“小黑”再次作案,所以颁布一个公正机构来证明你媳妇收到的箱子就是你发出的箱子。在RAS加密中也有一个第三方机构来充当这个角色,负责证明客户端收到的证书就是你发送的证书,中间没有被篡改。这个中间认证机构,就是数组证书认证机构,其颁发的证书也就是我们常说的CA证书(CA,CertificateAuthority)。

下面我们就来详细的叙述一下证书签名,证书分发以及证书验证的整个过程。

1、服务端人员使用RSA算法生成两个密钥,一个用来加密一个用来解密。将负责加密的那个密钥公布出去,所以我们称之为公钥(PublicKey),而用来解密的那个密钥,不能对外公布,只有服务端持有,所以我们称之为私钥(PrivateKey)。服务端在将PublicKey进行分发证书之前需要向CA机构申请给将要分发的公钥进行数字签名。(服务器公钥负责加密,服务器私钥负责解密)

2、生成数字签名公钥证书:对于CA机构来说,其也有两个密钥,我们暂且称之为CA私钥和CA公钥。CA机构将服务端的PublicKey作为输入参数将其转换为一个特有的Hash值。然后使用CA私钥将这个Hash值进行加密处理,并与服务端的PublicKey绑定在一起,生成数字签名证书。其实数字签名证书的本质就是服务端的公钥+CA私钥加密的Hash值。(CA私钥负责签名,CA公钥负责验证)

3、服务器获取到这个已经含有数字签名并带有公钥的证书,将该证书发送给客户端。当客户端收到该公钥数字证书后,会验证其有效性。大部分客户端都会预装CA机构的公钥,也就是CA公钥。客户端使用CA公钥对数字证书上的签名进行验证,这个验证的过程就是使用CA公钥对CA私钥加密的内容进行解密,将解密后的内容与服务端的PublicKey所生成的Hash值进行匹配,如果匹配成功,则说明该证书就是相应的服务端发过来的。否则就是非法证书。

4、验证完服务端公钥的合法性后,就可以使用该公钥进行加密通信了。

下方这个截图就是苹果的根证书的一些信息,从下方可以看出,CA证书内容中包括加密算法,公共密钥以及数字签名。

下方就是公钥以及数字签名的具体内容,当对下方公共密钥进行验证时,需要使用内置的CA公钥将数字签名进行解密。然后将解密后的内容,与公钥生成的Hash值进行比较,如果匹配成功,那么该证书就是CA机构颁布的合法证书。

三、HTTPS安全通信机制的建立

上面我们聊完AES与RSA加密策略,然后又聊了带有数字签名的公共密钥。上面这两部分内容都是为HTTPS做铺垫的,接下来就看一看HTTP+SSL是如何进行数据传输的。

1、HTTPS简介

在开头的部分也说了,HTTPS不是一个新的通信协议,而是HTTP与SSL(或TSL)的组合。SSL--安全套节层(SecureSocketLayer),TSL(TransportLayerSecurity安全传输层)是以SSL为原型开发的协议,IETF以SSL3.0为基准后又制定了TLS1.0、TLS1.1和TLS1.2,当前主流版本为SSL3.0与TLS1.0。

HTTPS就是在HTTP与TCP层中间添加了一个SSL层。因为HTTPS被HTTP多了这层加密的流程,所以HTTPS的速度要比HTTP慢的多。

2、HTTPS的通信过程

SSL的加密过程是RSA与AES混合进行的。简单概括一下,就是通过RSA加密方式来交换AES加解密的密钥,然后使用AES加密的方式来传输报文。下方是SSL建立连接以及传输数据的图解。在下图中大体可以分为四步:

第一步:有客户端发起的第一次握手,此次握手过程的主要目的是从服务端获取数字签名证书,服务端在发送数字签名证书之前要先确认客户端的SSL版本、加密算法等信息。

第二步:完成第一次握手后,接着进行第二次握手。第二次握手是在客户端收到证书后发起的,主要目的是将AES加解密使用的Key(Pre-mastersecret)发送给服务端。当然这个AES_KEY是使用第一次握手获取的公钥进行加密的。客户端收到这个使用公钥加密后的AES_KEY,使用服务端的私钥进行解密。这样客户端和服务端经过二次握手后都持有了AES加解密的KEY。

第三步:当Client与Server端都持有AES_KEY后,就可以对HTTP报文进行加解密了。

THE END
1.数字签名和数字证书的原理解读(图文)以上,是为大家分享的“数字签名和数字证书使用原理”的全部内容,如果用户遇到的问题不能解决,可通过wosign官网客服寻求帮助,凡是选择wosign ssl证书的网站用户,wosign可提供免费一对一的ssl证书技术部署支持,免除后顾之忧。 相关资讯 电子签名就是数字签名吗? https://www.wosign.com/News/news_2018101101.htm
2.什么是数字签名证书?数字签名证书是一种用于验证数字签名和确保通信安全的电子证书。它是由可信任的第三方机构(称为证书颁发机构,Certificate Authority,简称CA)签发的,用于确认公钥的真实性和身份的数字凭证。 数字签名证书是一种用于验证数字签名和确保通信安全的电子证书。它是由可信任的第三方机构(称为证书颁发机构,Certificate Authorityhttps://www.chaicp.com/4033.html
3.什么是数字签名证书数字签名证书怎么生成聚合数据数字签名证书是一个强大的工具,它可以帮助我们在数字世界中安全地传输信息.通过了解其生成过程和应用原理,我们可以更好地利用这个工具来保护我们的数据和隐私.下次当你在网上购物或者发送敏感邮件时,不妨试试使用数字签名证书来增加一层额外的安全保障吧! 声明:所有来源为 "聚合数据" 的内容信息,未经本网许可,不得https://www.juhe.cn/news/index/id/8992
4.代码签名证书数字签名工具使用指南操作指南文档中心数字签名工具使用指南 最近更新时间:2024-08-29 15:07:31 我的收藏 操作场景 本文档将指导您在申请并购买代码数字签名证书成功之后,如何使用腾讯云提供的数字签名工具为您的应用进行签名。 前提条件 已拥有代码数字签名证书。 操作指南 步骤1:导入证书 1.请单击此处下载并安装数字签名工具。https://cloud.tencent.com/document/product/1369/51577
5.什么是数字签名证书?它有哪些作用和应用嘲?数字签名证书是一种基于公钥密码学的数字身份认证工具,用于确保网络通信中的身份验证和数据完整性,它通过权威机构(如CA:证书颁发机构)签发,包含用户的身份信息及其公钥,并经过该机构的私钥签名,从而保证证书的真实性和可靠性。 一、数字签名证书的构成 证书所有者的信息:包括姓名、组织、邮箱等。 https://www.kdun.com/ask/1314927.html
6.数字签名工具专业版代码签名工具数字签名证书工具独家开发的市面上唯一一款集图形化和命令行于一体的专业数字签名证书工具,功能全面,简单易用支持应用程序代码签名、ActiveX控件数字签名、64位驱动程序数字签名、SHA1和SHA2双签名、RFC3161时间戳,让用户可以完全摆脱微软的signcode和signtool。https://www.trustasia.com/solution/sign-tools
7.数字签名和证书签名证书若要创建数字签名,您需要具有用于证实身份的签名证书。 当您发送经过数字签名的宏或文档时,证书和公钥也会随之一起发送。 证书由证书颁发机构颁发,与驾驶执照类似,也可以被吊销。 证书的有效期通常为一年,超过此时间后,签名人必须续订或获取新的签名证书才能确认身份。 https://support.microsoft.com/zh-cn/office/%E5%B0%86%E6%96%87%E5%AD%97%E7%BF%BB%E8%AF%91%E4%B8%BA%E4%B8%8D%E5%90%8C%E8%AF%AD%E8%A8%80-8186cd15-e7ac-4a16-8597-22bd163e8e96
8.什么是数字签名和证书?如何生成证书? 服务器将公钥A给CA(公钥是服务器的) CA用自己的私钥B给公钥A加密,生成数字签名A CA把公钥A,数字签名A,附加一些服务器信息整合在一起,生成证书,发回给服务器。 注:私钥B是用于加密公钥A的,私钥B和公钥A并不是配对的。 如何验证证书? https://www.jianshu.com/p/9db57e761255
9.如何给PDF文件做数字签名证书?如何给PDF文件做数字签名证书? PDF数字签名使得人们在创建 PDF 文件时能明确地向文件接受方证明文件签署人的真实身份,此真实身份是通过权威的第三方验证的,同时证明此签署的电子文件没有在网络传输过程中被非法篡改。 之前的教程分享,很多小伙伴都了解到如何为pdf插入签名,还不太清楚操作步骤的朋友可以看下这篇文章:https://www.foxitsoftware.cn/pdf-reader/zixun/816.html
10.什么是数字签名数字签名有哪些应用电子合同为了保证下载软件的安全,不是恶意的病毒,软件作者会对软件加上数字签名。用户在下载完成以后,验证数字签名就能识别出下载的是不是被篡改过的软件。 3. 公钥证书 验证数字签名的时候需要合法的公钥,但是如何才能知道自己拿到的公钥是合法的呢?这个时候就需要把公钥作为信息,对它加上数字签名,得到公钥证书。关于证书的问https://www.fadada.com/notice/detail-3759.html
11.数字签名与数字证书(3)发送方医生A利用私钥SK,采用对称加密算法DES对原文信息、数字签名 DSA及医生A数字证书的公钥 PBA加密得密文E。 (4)发送方医生A用接收方(患者)的公钥 PBB,采用RSA算法对对称密钥 SK加密,形成数字信封DE,就好像将对称密钥SK装到了一个用收方公钥加密的信封里。 https://cooc.cqmu.edu.cn/Course/KnowledgePoint/16065.aspx
12.数字签名与数字证书有何区别?尽管数字签名和数字证书被用作数字文档、软件、代码或其他传输数据的安全和认证措施,但它们还是有很大不同的。在本文,小编将深入跟大家探讨密钥数字签名与数字证书有何区别? 一、数字签名与数字证书的定义: 1、数字签名是一种数学技术,用于验证和验证数字文档、消息、软件或交易的真实性和完整性。它是盖章印章或手写https://www.hengxun.cn/news/content/4766.html
13.代码签名数字证书(含私钥)过期证书代码签名数字证书是软件开发和分发过程中一个关键的安全组件,尤其在确保用户信任和防止恶意软件方面。本文将深入探讨过期证书、过期数字签名的处理、强制签名工具以及数字签名证书的相关知识。 我们要理解什么是代码签名数字证书。这是一种由权威的证书颁发机构(CA)颁发的证书,用于验证软件的开发者身份和代码的完整性。它https://download.csdn.net/download/weixin_42696271/25531345
14.深圳市商事登记数字签名网银U盾/CA数字证书驱动程序下载提供深圳市场监督管理局商事登记工商注册、变更、注销等各项线上全流程业务的数字签名证书驱动下载,适用于商事登记的网银U盾、CA数字证书签名驱动程序下载。https://www.4tk.net/ca/index.html
15.华夏银行数字证书是一个经证书认证中心(CA)数字签名的包含公开密钥拥有者信息以及公开密钥的电子文件,包含用户身份信息、用户公钥信息以及身份验证机构数字签名数据。身份验证机构的数字签名可以确保证书信息的真实性,用户公钥信息可以保证数字信息传输的完整性,用户的数字签名可以保证数字信息的不可否认性。 https://wap.hxb.com.cn/wlyx/wsgryx/szzs/index.shtml
16.数字签名和数字证书的区别如何使用数字证书进行电子签名→MAIGOO摘要:数字签名和数字证书有什么区别?数字证书就是一组加密的数字,用于将公钥绑定到人或其他实体,如果没有证书,签名很容易被伪造。而数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。如何使用数字证书进行电子签名?下面来了解下。 https://www.maigoo.com/goomai/252978.html
17.什么是数字签名数字证书和时间戳?Entrust什么是数字证书? 为了将公钥与其关联用户(私钥的所有者)绑定,公钥基础结构 (PKI)使用数字证书。数字证书这种凭证有助于在交易中验证用户之间的身份。 就像护照可以证明一个人的国家公民身份一样,数字证书是为了确立生态系统中用户的身份。 由于数字证书用于识别向其发送了加密数据的用户,或用于验证信息签名者的身份,因https://www.entrust.cn/resources/learn/what-digital-signing-certificates-time-stamping
18.检验检测认证证书与报告数字签名在线验证严正声明:本平台仅对检验检测报告、认证证书电子签名的有效性进行验证,电子文档内容本身的真实性、准确性由其签名者负责。 检验检测认证证书与报告 电子签名在线验证 上传 验证 平台支持PDF电子文档在线验证 验证结果体现以下基本信息 文档是否有签名 文档签名者信息 http://yz.cnca.cn/ver-ep/ve/v/pdfveri.jsp
19.代码签名证书申请代码签名证书是对开发的代码软件进行的数字签名认证服务。 拥有代码签名的软件程序可以减少下载时弹出的安全警告,避免被系统拦截,并且保证代码完整性,使开发厂商信息对下载用户公开可见,从而建立良好的软件品牌信誉度。 查看价格联系客服 代码签名证书为软件开发商提供了一个解决方案,使得软件开发商能对其软件代码进行数字签https://www.shuzizhengshu.com/html/code-signing/
20.密码应用安全性评估要点之数字签名技术在线工具不可否认性(Non-Repudiation)需要解决的问题是:避免用户对自身发起的行为的抵赖,又称抗抵赖。常见的基于密码学技术的实现方式为基于公钥密码算法的数字签名机制。 2.数字证书及PKI体系 上文中提到,数字签名的过程是使用用户私钥对消息进行处理进而得到签名值的过程,而提到公私钥对就不得不了解作为基础技术支撑的数字证https://www.wetools.com/blog/629c929f1cf1b.html
21.验证数字签名,AdobeAcrobat如果签名无效或是使用自签名证书签名,此命令将不可用。如果验证时间等于当前时间,此命令也不可用。 更多此类内容 使用证书保护 PDF 数字身份证 签名PDF 在线PDF 工具:在线填写并签署 PDF 法律声明|在线隐私政策 共享此页面 链接已复制 此页面有用吗? 是,谢谢不是太有用https://helpx.adobe.com/cn/acrobat/using/validating-digital-signatures.html
22.文档签名证书DigiCert文档签名证书比公证人印章更安全(而且耗费的时间要少的多),文档签名证书能让个人和组织为文档和电子签名的来源、真实性和完整性建立信任。 通过DigiCert?文档签名证书订购,使用在全球受到Adobe Acrobat、Adobe Reader和DocuSign信任和认可的文档签名证书启用受公众信任的数字签名和电子印章。 https://www.digicert.com/cn/signing/document-signing-certificates