ssl加密过程
A. SSL工作原理,SSL加密原理,SSL证书怎么加密
SSL是用于验证和加密网络通信的加密协议的原始名称。正式地,SSL在前一段时间被称为TLS的更新协议所取代。
当您收到SSL证书时,您将其安装在您的服务器上。您可以安装一个中间证书,通过将它链接到CA的根证书来建立您的SSL证书的可信度。
根证书是自签名的,构成了基于X.509的公钥基础设施(PKI)的基础。支持用于安全Web浏览和电子签名方案的HTTPS的PKI依赖于根证书。在X.509证书的其他应用程序中,证书的层次结构证明了证书的颁发有效性。该层次结构称为证书“信任链”。
B. TLS加密过程
## SSL 证书类型
**certbot**
域名验证(domain validated, DV证书)
组织验证(organization validated,OV 证书):验证组织是否正确
扩展验证(extended validation EV证书):显示友好
根证书-》二级证书-》主站点
## TLS加密过程
1. 验证身份
2. 达成安全套件共识
3. 传递密钥
4. 加密通讯
HTTPS采用混合加密算法,即共享秘钥加密(对称加密)和公开秘钥加密(非对称加密)。
通信前准备工作:
A、数字证书认证机构的公开秘钥(CA公钥)已事先植入到浏览器里;
B、数字证书认证机构用自己的私有密钥对服务器的公开秘钥做数字签名,生成公钥证书,并颁发给服务器。
1、client hello
握手第一步是客户端向服务端发送 Client Hello 消息,这个消息里包含了一个客户端生成的随机数 Random1、客户端支持的加密套件(Support Ciphers)和 SSL Version 等信息。
2、server hello
服务端向客户端发送 Server Hello 消息,这个消息会从 Client Hello 传过来的 Support Ciphers 里确定一份加密套件,这个套件决定了后续加密和生成摘要时具体使用哪些算法,另外还会生成一份随机数 Random2。注意,至此客户端和服务端都拥有了两个随机数(Random1+ Random2),这两个随机数会在后续生成对称秘钥时用到。
3、Certificate
这一步是服务端将自己的公钥证书下发给客户端。
4、Server Hello Done
Server Hello Done 通知客户端 Server Hello 过程结束。
5、Certificate Verify
客户端收到服务端传来的公钥证书后,先从 CA 验证该证书的合法性(CA公钥去解密公钥证书),验证通过后取出证书中的服务端公钥,再生成一个随机数 Random3,再用服务端公钥非对称加密 Random3生成 PreMaster Key。
6、Client Key Exchange
上面客户端根据服务器传来的公钥生成了 PreMaster Key,Client Key Exchange 就是将这个 key 传给服务端,服务端再用自己的私钥解出这个 PreMaster Key 得到客户端生成的 Random3。至此,客户端和服务端都拥有 Random1 + Random2 + Random3,两边再根据同样的算法就可以生成一份秘钥,握手结束后的应用层数据都是使用这个秘钥进行对称加密。
为什么要使用三个随机数呢?这是因为 SSL/TLS 握手过程的数据都是明文传输的,并且多个随机数种子来生成秘钥不容易被破解出来。
C. ssl协议流程中使用加密的活动有哪些
对称加密,公钥加密,单向加秘,密钥加密,PKl。
SSL加密的过程之前有些过,此处不再赘述。SSL加密,在过程中实际使用了对称加密和非对称加密 的结合。主要的考虑是先使用非对称加密 进行连接,这样做是为了避免中间人攻击密钥被劫持,但是非对称加密 的效率比较低。所以一旦建立了安全的连接之后,就可以使用轻量的对称加密。
从SSL 协议所提供的服务及其工作流程可以看出,SSL协议运行的基础是商家对消费者信息保密的承诺,这就有利于商家而不利于消费者。在电子商务初级阶段,由于运作电子商务的企业大多是信誉较高的大公在司,因此这问题还没有充分暴露出来。但随着电子商务的发展,各中小型公司也参与进来,这样在电子支付过程中的单一认证问题就越来越突出。
D. 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访问过程需要加解密)。
E. 什么是SSL加密,什么是TLS加密
SSL加密是Netscape公司所提出的安全保密协议,在浏览器和Web服务器之间构造安全通道来进行数据传输,SSL运行在TCP/IP层之上、应用层之下,为应用程序提供加密数据通道,它采用了RC4、MD5以及RSA等加密算法,使用40 位的密钥,适用于商业信息的加密。
TLS是安全传输层协议。安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议上面。
(5)ssl加密过程扩展阅读:
SSL加密并不保护数据中心本身,而是确保了SSL加密设备的数据中心安全,可以监控企业中来往于数据中心的最终用户流量。
从某个角度来看,数据中心管理员可以放心将加密装置放在某个地方,需要使用时再进行应用,数据中心应该会有更合理的方法来应对利用SSL的恶意攻击,需要找到SSL加密应用的最佳实践。
TLS协议是可选的,必须配置客户端和服务器才能使用。主要有两种方式实现这一目标:一个是使用统一的TLS协议通信端口(例如:用于HTTPS的端口443)。另一个是客户端请求服务器连接到TLS时使用特定的协议机制(例如:邮件、新闻协议和STARTTLS)。
一旦客户端和服务器都同意使用TLS协议,他们通过使用一个握手过程协商出一个有状态的连接以传输数据。通过握手,客户端和服务器协商各种参数用于创建安全连接。
参考资料来源:网络-SSL加密技术
参考资料来源:网络-TLS
F. 基于国密算法SM2 SSL证书的https加密, 如何实现
SSL握手协议的过程
国密SSL握手协议过程如下:
(1)交换Hello消息来协商密码套件,交换随机数,决定是否会话重用;
(2)交换必要的参数,协商预主密钥
(3)交换证书信息,用于验证对方
(4)使用预主密钥和交换的随机数生成主密钥
(5)向记录层提供安全参数
(6)验证双方计算的安全参数的一致性、握手过程的真实性和完整性
G. SSL工作原理,SSL加密原理,SSL证书怎么加密
TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。
H. SSL加密技术的工作方式
Web服务器向浏览器/服务器发送其SSL证书的副本。浏览器/服务器检查它是否信任SSL证书。如果是,它会向Web服务器发送一条消息。Web服务器发回经过数字签名的确认以启动SSL加密会话。
I. SSL常见加密算法
一、加密算法常见分类
根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。
对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。
非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。
1)对称加密算法
DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。
3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;
2)非对称加密算法
RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);
ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
3)单向加密算法
BASE64 严格地说,属于编码格式,而非加密算法
MD5(Message Digest algorithm 5,信息摘要算法)
SHA(Secure Hash Algorithm,安全散列算法)
HMAC(Hash Message Authentication Code,散列消息鉴别码)
二 .特点
DES,3DES,AES 加密数据,只有一个密码,密钥长度不同。
PBE Password-based encryption 对称加密中基于密码加密,口令用户掌管不借助任何物理媒介,采用随机数杂凑多重加密保证数据安全。
RSA 即能用户数据加密也能用于数字签名,同时有公钥和私钥。数字签名的意义在于,对传输过来的数据进行校验确保传输过程中不被修改。
单向加密中MD5,SHA,HMAC为非可逆加密,单向散列一般用于产生信息摘要。通常作为加密的基础。单向加密主要用途为校验传输过程中是否被修改过。
三.算法比较
在管理方面:公钥密码算法只需要较少的资源就可以实现目的,在密钥的分配上,两者之间相差一个指数级别(一个是n一个是n2)。所以私钥密码算法不适应广域网的使用,而且更重要的一点是它不支持数字签名。
在安全方面:由于公钥密码算法基于未解决的数学难题,在破解上几乎不可能。对于私钥密码算法,到了AES虽说从理论来说是不可能破解的,但从计算机的发展角度来看。公钥更具有优越性。
-从速度上:AES的软件实现速度已经达到了每秒数兆或数十兆比特。是公钥的100倍,如果用硬件来实现的话这个比值将扩大到1000倍。
四、参考
http://www.willrey.com/support/ssl_DES.html
J. ssl会话建立的过程(原理)是什么
ssl会话建立过程主要就是加密和解密的过程。主要是利用了非对称加密来保证密码的安全,利用签名来保证证书和信息没有被修改。
首先是客户端和服务器端加密技术的沟通,统一后面通信适用的加密技术。
第二步是服务器将自己的身份以证书的方式发送给客户端。同时非对称加密的公钥则是附带在证书的信息中。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被串改。另外,证书还有个有效期。
第三部客户端发送自己的证书给服务器端。
到这里双方完成了非对称加密的key交换。
第四部是证书的验证工作,双方对对方的证书完成验证的工作。同时客户端会使用之前协商好的加密套件和session secret加密一段Finish的数据传送给服务端,此数据是为了在正式传输应用数据之前对刚刚握手建立起来的加解密通道进行验证。
第五部是最后一步,服务端在接收到客户端传过来的PreMaster加密数据之后,使用私钥对这段加密数据进行解密,并对数据进行验证,也会使用跟客户端同样的方式生成session secret,一切准备好之后,会给客户端发送一个ChangeCipherSpec,告知客户端已经切换到协商过的加密套件状态,准备使用加密套件和session secret加密数据了。之后,服务端也会使用session secret加密后一段Finish消息发送给客户端,以验证之前通过握手建立起来的加解密通道是否成功。