https对称加密
⑴ Https协议详解
本文内容主要讲解Https协议,其他网络知识点作为理解Https协议的辅助。
首先,需要简单知道网络协议的四个层次,即:网络接口层,网络层,传输层,应用层。
Http协议 是一种超文本传输协议,是客户端浏览器与服务器之前的 应用层 通信协议。
Http协议不提供数据加密,以明文的方式发送内容,容易被攻击截取信息,不适合用于传输一些敏感信息。
Https协议 是以安全为目标的Http通道,在Http的基础上加入SSL层,简单来说就是Http协议的安全版。
Https协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
在进行详细解释Https之前,我们需要先简单了解一些Https协议使用到贺桥返的关键技术。
对称加密 使用加密和解密使用相同密钥的加密算法进行加密,也叫私钥加密。常见的对称加密有: DES , AES 等。
非对称加密 与对称加密不同,使用非对称加密算法进行加密,需要两个密钥,即公钥和私钥。公钥和私钥是成对出现的,在加密和解密的过程中使用不同的密钥,所以也称为公钥加密。
数字摘要 采用单项Hash函数将需要加密的明文 摘要 成一串固定长度(128位)的密文,这个密文又称为数字指纹。不同的明文摘生成的数字指纹总是不同的,而同样的明文摘要生成的数字指纹必定一致。
数字摘要 是Https能确保数据完整性和防篡改的根本原因。
数字签名 是对 非对称加密 和 数字摘要 两项技术的应用。
它将 摘要信息 用发送者的私钥加密,与原文一起传送给接收者。
接收者只有使用发送者的公钥才能解密出被加密的 摘要信息 ;接着对接收到的原文用 数字摘要 生成 摘要信息 ;然后将两个 摘要信息 进行对比。若相同,说明收到的原文是完整的,在传输过程中没有被修改。因此,数字签名能够验证数据的完整性。
SSL 是安全套接层,用以保障数据传输的安全,利用数据加密技术确保数据在传输过程中不会被截取。
SSL又可分为两层:
SSL/TLS握手过程流程图:
两种恢复Session对消空话的方式: Session ID , Session ticket 。
客户端和服务器的每次对话都有一禅饥个编号。若对话中断,重连时只要客户端给出编号,并且服务器有该编号的记录,双方就可以使用已有的 对话密钥 重新建立连接,而不用重新走握手流程重新连接。
客户端发送一个服务器在上次对话中发送过来的Session ticket,其中包括对话的主要信息,如:对话密钥和加密方法等。这个Session ticket是加密的,只有服务器才能解密,服务器在解密Session ticket后就不用重新生成对话密钥了。
参考资料:
⑵ HTTPS 到底加密了些什么内容
https其实是有两部分组成:http + SSL / TLS,也就是在http上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看下图。
1. 客户端发起https请求
客户端发起https请求就是指用户在浏览器里输入一个https网址,然后连接到server的443端口。
2. 服务器端的配置
采用https协议的服务器必须要有一套SSL数字证书,需要向CA组织(如WoSign沃通CA)申请。这套SSL证书其实就是一对公钥和私钥。如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。
3. 传送证书
这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,证书过期时间等等。
4. 客户端解析证书
这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值。然后用证书对该随机值进行加密。就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。
5. 传送加密信息
这部分传送的是用SSL证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。
6. 服务段解密信息
服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。
7. 传输加密后的信息
这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。
8. 客户端解密信息
客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容。整个过程第三方即使监听到了数据,也束手无策。
⑶ HTTPS加密(握手)过程
第一步散弊纯:客户端会发起一个hello client请求,请求中会携带TLS版本信息、加密套件候选列表、压缩算法候选列表以及一个随机数。
第二步:服务端收到请求以后也会给客户端发一个server hello请求,请求中会告诉客户端它选择的协议版本、加密套件、压缩算法以及一个随机数。
第三步:服务端会给客户端发一个server certificate请求,里面包含服务端的数字证书,用于客户端进行校验。
第四步:服务端会给客户端发一个server hello done告诉客户端信息已发送完毕。
第五步:客户端收到证书以后进行校验获取到服务端的公钥。
第六步:客户端会将自己的数字证书发给服务端用于校验。
第七步:客户端计算出一个随机数pre-master,然后用公钥进行加密发送给服务器端。
第八步:服务端和客卜模户端都根据自己的随机数+对端的随机数+pre-master算出对称密冲咐钥,然后再根据对称密钥进行通信。
⑷ https的加密机制,怎么加密
HTTPS协议在通信时,首先会采用公钥加密的方式,把密钥进行公钥加密,然后传输给服务器,服务器使用私钥解密出密钥后,客户端和服务器即可建立起安全的访问通道。在接下来的通信就会采用速胡纳度更快的共享密笑漏钥加密的方式进行数据传输。这样HTTPS协议就既拥有公钥加密的安全性,同时也拥有了通用加密的高速的两个优点。
对称加密:加密和解密用同一个密钥,客户端对数据加密,服务端解密拿到数据
非对称加密:使用公钥和私钥,公钥加密的内容只能私钥解开,私钥加密的内容所有公钥都能解开;私钥只保存在服务器端,公钥可以发送给所有客户端,可以保证客户端通过公钥加密的内容中间裤升没人无法破解
⑸ HTTPS 加密了什么内容
一般来说,HTTPS 主要用途有三个:一是通过证书等信息确认网站的真实性;二是建立加密的信息通道;三是数据内容的完整性。
那么加密的信息通道又加密了哪些信息呢?
签发证书的 CA 中心会发布一种权威性的电子文档——数字证书,它可以通过加密技术(对称加密与非对称加密)对我们在网上传输的信息进行加密,比如我在 Pornhub 上输入:
账号:cbssfaw
密码:123djaosid
可是这个数据被黑客拦截盗窃了,那么加密后,黑客得到的数据可能就是这样的:
账号:…≤˙
密码:§
最后一个就是验证数据的完整性,当数据包经过无数次路由器转发后会发生数据劫持,黑客将数据劫持后进行篡改,比如植入羞羞的小广告。开启HTTPS后黑客就无法对数据进行篡改,就算真的被篡改了,我们也可以检测出问题。
对称加密与非对称加密
对称加密
对称加密是指加密与解密的使用同一个密钥的加密算法。小编初中的时候传纸条使用了同一套加密密码,所以我用的加密算法就是对称加密算法。
目前常见的加密算法有:DES、AES、IDEA等
非对称加密
非对称加密使用的是两个密钥,公钥与私钥,我们会使用公钥对网站账号密码等数据进行加密,再用私钥对数据进行解密。这个公钥会发给查看网站的所有人,而私钥是只有网站服务器自己拥有的。
目前常见非对称加密算法:RSA,DSA,DH等。
HTTPS=数据加密+网站认证+完整性验证+HTTP
通过上文,我们已经知道,HTTPS 就是在 HTTP 传输协议的基础上对网站进行认证,给予它独一无二的身份证明,再对网站数据进行加密,并对传输的数据进行完整性验证。
HTTPS 作为一种加密手段不仅加密了数据,还给了网站一张身份证。
实现HTTPS,可以淘宝:Gworg 获取HTTPS加密协议。
⑹ https如何进行加密传输
HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程的具体描述如下:
1.浏览器将自己支持的一套加密规则发送给网站。
2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
3.浏览器获得网站证书之后浏览器要做以下工作:
a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。
c) 使用约定好的HASH算法计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
4.网站接收浏览器发来的数据之后要做以下的操作:
a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。
b) 使用密码加密一段握手消息,发送给浏览器。
5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。
这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据,为后续真正数据的传输做一次测试。另外,HTTPS一般使用的加密与HASH算法如下:
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256