https原理

8 篇文章 0 订阅

目录

写在前面

什么是HTTPS

加密

对称密钥加密

非对称密钥加密

HTTPS加密原理


写在前面

今天我们要讨论的主题是HTTPS,首先,我们要了解为什么会出现HTTPS?既然存在,就有它存在的必要性。我们都知道,HTTP协议是客户端和服务端进行通信的一种协议,而HTTP协议存在以下几个缺点:

1.通信采用明文传输(不加密),内容容易遭到窥视;

2.不验证通信方的身份,因此有可能遭到伪装;

3.无法证明报文的完整性,因此通信内容有可能被篡改;

正因为HTTP的诸多缺陷,才有了后面HTTPS诞生的必要性,HTTPS正是为了解决HTTP的诸多缺陷而诞生。

什么是HTTPS

刚才说了,HTTPS的产生就是为了解决HTTP协议存在的主要缺陷,而通过上面的介绍,我们知道HTTP协议的主要缺陷有:未加密,没认证身份和无法确保报文的完整性,所以我们可以用一句最简短的话讲明白HTTPS,那就是:HTTP + 加密 + 认证 + 完整性保护 = HTTPS。

加密

HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全传输层协议)的组合使用,加密HTTP的通信内容。

SSL的全称是Secure Sockets Layer,即安全套接层协议,主要任务是提供加密,身份认证信息完整性保护一种安全协议。SSL协议在1994年被Netscape发明,后来各个浏览器均支持SSL,其最新的版本是3.0。

TLS的全称是Transport Layer Security,即安全传输层协议,最新版本的TLS(Transport Layer Security,传输层安全协议)是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。在TLS与SSL3.0之间存在着显著的差别,主要是它们所支持的加密算法不同,所以TLS与SSL3.0不能互操作。虽然TLS与SSL3.0在加密算法上不同,但是在我们理解HTTPS的过程中,我们可以把SSL和TLS看做是同一个协议。

用SSL建立安全通信线路之后,就可以在这条线路上进行HTTP通信,与SSL组合使用的HTTP就是HTTPS(超文本传输安全协议)。我们都知道HTTP协议是属于应用层的一种协议,TCP协议是传输层的协议,使用HTTP协议进行通信时,HTTP直接和TCP连接,而当我们使用HTTPS进行通信时,即使用 HTTP + SSL 进行通信时,在应用层和传输层之间增加了一层安全层,即SSL。换句话说,当使用HTTPS进行通信时,HTTP协议发送的报文不再直接发送给TCP,而是先经过安全层,即经由SSL将报文加密再发送给TCP。

在采用SSL之后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能。我们先来了解一下加密方法。

对称密钥加密

加密和解密使用同一个密钥的方式称为对称密钥加密。对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密,常见的对称加密算法有DES、3DES、TDEA、Blowfish、RC5和IDEA。

使用对称密钥加密的方式进行加密时,必须将密钥发送给对方,可究竟怎样才能安全的移交?在互联网上发送密钥时,如果通信被窥视,那么密钥就有可能落入攻击者之手,同时也失去了加密的意义。另外还得设法安全的保管接收到的密钥。

由此,我们可以总结,对于对称密钥加密,其优点是:加密和解密速度快,效率高,适合于对大数据量进行加密其缺点是:密钥的安全移交和保管变得异常困难。

非对称密钥加密

非对称密钥加密可以很好的解决对称密钥加密的困境。其加密使用一对非对称的密钥,一把叫做公钥,另一把叫做私钥。私钥保存在服务端,不能让任何人知道,公钥则可以随意发布,任何人都可以获取。公钥和私钥成对的加密和解密,即若使用公钥加密,则必须使用私钥对密文进行解密,同理,若使用私钥加密,则必须使用公钥对密文进行解密。在非对称加密中使用的主要算法有:RSA、Elgamal、Rabin、D-H、ECC(椭圆曲线加密算法)等。

对于非对称密钥加密,其优点是:密钥安全性好,私钥无法获取;其缺点是:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

HTTPS加密原理

HTTPS = HTTP协议 + SSL/TLS协议,在HTTPS数据传输的过程中,需要用SSL/TLS对数据进行加密和解密,需要用HTTP对加密后的数据进行传输,由此可以看出HTTPS是由HTTP和SSL/TLS一起合作完成的。

HTTPS充分利用了对称密钥加密和非对称密钥加密二者的优势,为了兼顾安全与效率,同时使用了对称密钥加密和非对称密钥加密。在交换密钥环节使用非对称密钥加密方式,之后的建立通信交换报文阶段则采用对称密钥加密方式。即,正式通信的数据传输采用对称密钥加密,而对称密钥加密的密钥则采用非对称密钥加密的方式,由客户端经过非对称密钥加密的公钥进行加密后发送给服务端,服务端利用其独有的私钥进行解密拿到以后数据传输加密的密钥。如此结合二者,也不怕攻击者拿到由客户端发给服务端的密文,即使拿到了也没法解密,因为对称加密的密钥是经过非对称加密的公钥进行加密的,所以想要解密只能使用私钥进行解密,而私钥为服务端所独有,所以只有服务端才可以解密得到后续对数据加密的对称加密的密钥。

如此混合加密的方式,既提高了效率,又解决密钥无法安全移交的困境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值