ssl的加密过程
A. ssl会话建立的过程(原理)是什么
ssl会话建立过程主要就是加密和解密的过程。主要是利用了非对称加密来保证密码的安全,利用签名来保证证书和信息没有被修改。
首先是客户端和服务器端加密技术的沟通,统一后面通信适用的加密技术。
第二步是服务器将自己的身份以证书的方式发送给客户端。同时非对称加密的公钥则是附带在证书的信息中。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被串改。另外,证书还有个有效期。
第三部客户端发送自己的证书给服务器端。
到这里双方完成了非对称加密的key交换。
第四部是证书的验证工作,双方对对方的证书完成验证的工作。同时客户端会使用之前协商好的加密套件和session secret加密一段Finish的数据传送给服务端,此数据是为了在正式传输应用数据之前对刚刚握手建立起来的加解密通道进行验证。
第五部是最后一步,服务端在接收到客户端传过来的PreMaster加密数据之后,使用私钥对这段加密数据进行解密,并对数据进行验证,也会使用跟客户端同样的方式生成session secret,一切准备好之后,会给客户端发送一个ChangeCipherSpec,告知客户端已经切换到协商过的加密套件状态,准备使用加密套件和session secret加密数据了。之后,服务端也会使用session secret加密后一段Finish消息发送给客户端,以验证之前通过握手建立起来的加解密通道是否成功。
B. HTTPS 加密算法过程
1、HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。
2、HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。
3、SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。
4、TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)。
如上图所示 HTTPS 相比 HTTP 多了一层 SSL/TLS。
1、对称加密
有流式、分组两种,加密和解密都是使用的同一个密钥。
例如:DES、AES-GCM、ChaCha20-Poly1305等
2、非对称加密
加密使用的密钥和解密使用的密钥是不相同的,分别称为:公钥、私钥,公钥和算法都是公开的,私钥是保密的。非对称加密算法性能较低,但是安全性超强,由于其加密特性,非对称加密算法能加密的数据长度也是有限的。
例如:RSA、DSA、ECDSA、 DH、ECDHE
3、哈希算法
将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多,且算法不可逆。
例如:MD5、SHA-1、SHA-2、SHA-256 等
4、数字签名
签名就是在信息的后面再加上一段内容(信息经过hash后的值),可以证明信息没有被修改过。hash值一般都会加密后(也就是签名)再和信息一起发送,以保证这个hash值不被修改。
C++音视频开发学习资料 :点击 音视频开发(资料文档+视频教程+面试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)
HTTP协议在浏览器/服务器间进行数据的传输是明文的,不做任何的加密,通俗来说,就是“裸奔”,这样会产生什么样的问题那,我们来举一个例子:
在这里插入图片描述
上述我们通过两个人物模仿了服务器和客户端的交互,我们可以看出,小明和小花之间进行数据通信的时候采用的是明文传输的、那么此时很有可能被中间人获取信息、并进行数据篡改,这种行为就叫 中间人攻击。
所以 HTTP 传输面临的风险有:
(1) 窃听风险:黑客可以获知通信内容。
(2) 篡改风险:黑客可以修改通信内容。
(3) 冒充风险:黑客可以冒充他人身份参与通信。
哈哈、此时你是不是不能很愉快的上网冲浪了呀,别担心,我们此时可以对明文进行加密:
这样是不是比原来安全多了呀!但是这样就足够安全了吗?显然不是的,如果小明和小花在第一次聊天的时候,信息被中间人截取到了,那么中间人是不是也就有密钥了,同样可以对数据进行加解密和修改了那
这可怎么办那? 加密的数据还是不安全的啊? 别急,上面我们采用的是对称加密(换句话说就是我们发送的密钥技能加密、也能解密,那么中间人只要拿到密钥消息对他而言就是透明的了),我们还可以采用非对称加密方式进行加密数据(非对称加密一般都会有一个私钥和公钥组成。可以通过公钥加密,私钥解密,也可以通过私钥加密,公钥解密两种方式) ,对密钥的传送在格外加一层保护,当小明和小花在建立通信的时候,小花会把公钥KEY发送给小明,当小明拿到公钥KEY 后,会自己生成一个 密钥 KEY2 , 并用 KEY 对KEY2 进行加密(此时小明用的是公钥加密)
在通信过程中,即使中间人一开始就获取到了公钥KEY ,但是他不知道私钥,就对数据无法进行解密,仍旧是没办法获取KEY2。这样加密后,数据是不是就安全多了呀。这种情况下就可以和妹子愉快的进行聊天了吗?别急、所谓道高一尺魔高一丈,常言道:流氓不可怕,就怕流氓有文化。这种状态下我们的数据,相当来说是比较安全的,但是如果此时中间人获取公钥后,发送给小明一个伪公钥,又会产生什么问题那?
好吧,说到这里,大家是不是快恨死这个中间人了啊,哈哈~~~还有据俗话别忘记了,魔高一尺道高一丈,对于这种情况。我们可以借助与第三方证书平台,证书平台具备产生证书的功能,服务器(小花)可以去证书机构申请证书,证书机构通过小花提供的信息(网址、机构、法人等、公钥),生成公钥和私钥(证书机构的),通过私钥进行数据的非对称加密生成证书、将证书颁发给小花。那么此时小花就可以在进行数据交互的时候,传递证书了。
小明只需要知道证书的发证机构、就可以很方便的获取到证书的公钥、从而对证书进行校验并获取公钥、然后进行后续的操作。
那么此时小伙伴是不是又有疑问了,如果 中间人 获取到证书、并伪造证书给小明、怎么破???
不错不错、如果大家有这个想法的话,说明大家都在认真思考了。那么我们假设中间人获取到了证书、中间人也可以在证书机构获取公钥,并通过证书机构公钥获取 服务器发送的公钥,中间人此时也可以自己生成公钥,并向证书机构申请证书、并发送伪证书给小明,但是因为证书是经过签名认证的,包含(网址、机构、法人等、公钥)等信息,小明在拿到伪证书后,通过证书公钥很容易就发现证书是不合法的(网址、法人的信息可定不符,否则申请不到证书的)。
上述我们分享的内容就是HTTPS的主体思想,HTTPS增加了SSL安全层,上述介绍的所有认证流程都是在SSL安全层完成验证的。今天我就分享HTTPS的实现原理就说这么多了。 ﹏
HTTPS 缺点:
(1)SSL 证书费用很高,以及其在服务器上的部署、更新维护非常繁琐。
(2)HTTPS 降低用户访问速度(多次握手)。
(3)网站改用HTTPS 以后,由HTTP 跳转到 HTTPS 的方式增加了用户访问耗时(多数网站采用302跳转)。
(4)HTTPS 涉及到的安全算法会消耗 CPU 资源,需要增加大量机器(https访问过程需要加解密)。
C. 域名用https加密的具体操作急用啊!!!
域名进行https加密需要申请并安装SSL证书。SSL证书申请流程如下:
第一步,生成并提交CSR(证书签署请求)文件
CSR文件一般都可以通过在线生成(或服务器上生成),申请人在制作的同时系统会产生两个秘钥,公钥CSR和密钥KEY。选择了SSL证书申请之后,提交订单并将制作生成的CSR文件一起提交到证书所在的CA颁发机构。
第二步,CA机构进行验证
CA机构对提交的SSL证书申请有两种验证方式:
第一种是域名认证。系统自动会发送验证邮件到域名的管理员邮箱(这个邮箱是通过WHOIS信息查询到的域名联系人邮箱)。管理员在收到邮件之后,确认无误后点击我确认完成邮件验证。所有型号的SSL证书都必须进行域名认证。
第二种是企业相关信息认证。对于SSL证书申请的是OV SSL证书或者EV SSL证书的企业来说,除了域名认证,还得进行人工核实企业相关资料和信息,确保企业的真实性。
第三步,CA机构颁发证书
由于SSL证书申请的型号不同,所验证的材料和方式有些区别,所以颁发时间也是不同的。
如果申请的是DV SSL证书最快10分钟左右就能颁发。如果申请的是OV SSL证书或者EV SSL证书,一般3-7个工作日就能颁发。
D. SSL工作原理,SSL加密原理,SSL证书怎么加密
TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。
E. SSL工作原理,SSL加密原理,SSL证书怎么加密
SSL是用于验证和加密网络通信的加密协议的原始名称。正式地,SSL在前一段时间被称为TLS的更新协议所取代。
当您收到SSL证书时,您将其安装在您的服务器上。您可以安装一个中间证书,通过将它链接到CA的根证书来建立您的SSL证书的可信度。
根证书是自签名的,构成了基于X.509的公钥基础设施(PKI)的基础。支持用于安全Web浏览和电子签名方案的HTTPS的PKI依赖于根证书。在X.509证书的其他应用程序中,证书的层次结构证明了证书的颁发有效性。该层次结构称为证书“信任链”。
F. HTTPS加密(握手)过程
第一步散弊纯:客户端会发起一个hello client请求,请求中会携带TLS版本信息、加密套件候选列表、压缩算法候选列表以及一个随机数。
第二步:服务端收到请求以后也会给客户端发一个server hello请求,请求中会告诉客户端它选择的协议版本、加密套件、压缩算法以及一个随机数。
第三步:服务端会给客户端发一个server certificate请求,里面包含服务端的数字证书,用于客户端进行校验。
第四步:服务端会给客户端发一个server hello done告诉客户端信息已发送完毕。
第五步:客户端收到证书以后进行校验获取到服务端的公钥。
第六步:客户端会将自己的数字证书发给服务端用于校验。
第七步:客户端计算出一个随机数pre-master,然后用公钥进行加密发送给服务器端。
第八步:服务端和客卜模户端都根据自己的随机数+对端的随机数+pre-master算出对称密冲咐钥,然后再根据对称密钥进行通信。
G. SSL工作原理,SSL加密原理,SSL证书怎么加密
安全套接字层(SSL)是一种用于保护Internet通信的协议。它为企业提供了一种在将数据发送给用户之前对其进行加密的方法,以防止第三方在传输过程中读取数据。