HTTPS协议

一、什么是HTTPS?

HTTPS的语法、语义仍然是HTTP,但把下层的协议由TCP/IP换成了SSL/TLS,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护,默认端口为443
在这里插入图片描述
HTTPS相对于HTTP具有机密性、完整性、身份认证和不可否认的特性

机密性:对数据的保密,只能由可信的人访问,对其他人是不可见的

完整性:数据在传输过程中没有被窜改,完整地保持着原状

身份认证:确认对方的真实身份,保证消息只能发送给可信的人

不可否认:不能否认自己已经发生过的行为

二、加密算法

1、对称加密

对称加密是指加密和解密时使用的密钥都是同一个,是对称的。只要保证了密钥的安全,那整个通信过程就可以说具有了机密性
在这里插入图片描述
对称算法还有一个分组模式的概念,也叫块加密,一次加密明文中的一个块。是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组

2、非对称加密

对称加密有一个很大的问题:如何把密钥安全地传递给对方,简称密钥交换。因为在对称加密算法中只要持有密钥就可以解密。如果你和网站约定的密钥在传递途中被黑客窃取,那就可以在之后随意解密收发的数据,通信过程也就没有什么机密性可言了

非对称加密有两个密钥,一个叫公钥,一个叫私钥。两个密钥是不同的,公钥可以公开给任何人使用,而私钥必须严格保密

公钥和私钥存在单向性,公钥加密后只能用私钥解密,反过来,私钥加密后也只能用公钥解密

非对称加密可以解决密钥交换的问题。网站秘密保管私钥,在网上任意分发公钥,想要登录网站只要用公钥加密就行了,密文只能由私钥持有者才能解密。而黑客因为没有私钥,所以就无法破解密文
在这里插入图片描述

3、混合加密

虽然非对称加密没有密钥交换的问题,但因为它们都是基于复杂的数学难题,运算速度很慢

TLS中使用混合加密的方法,在通信刚开始的时候使用非对称加密,首先解决密钥交换的问题,用随机数产生对称算法使用的会话密钥,再用公钥加密。因为会话密钥很短,通常只有16字节或32字节,所以慢一点也无所谓

对方拿到密文后用私钥解密,取出会话密钥。这样,双方就实现了对称密钥的安全交换,后续就不再使用非对称加密,全部使用对称加密
在这里插入图片描述
这样混合加密就解决了对称加密算法的密钥交换问题,而且安全和性能兼顾,完美地实现了机密性

混合加密其实就是用非对称加密,加密对称加密的私钥。对称加密的密钥又是会话级的随机数,一次会话一个私钥,就算被破解了也只是破解了一个会话

三、摘要算法

摘要算法是采用单项Hash函数将需要加密的明文摘要成一串固定长度(128位)的密文,这一串密文称为数字摘要,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。数字摘要是HTTPS能确保数据完整性和防篡改的根本原因
在这里插入图片描述
摘要算法保证了数字摘要和原文是完全等价的。所以,只要在原文后附上它的摘要,就能够保证数据的完整性

但摘要算法不具有机密性,如果明文传输,那么黑客可以修改消息后把摘要也一起改了,网站还是鉴别不出完整性

所以,真正的完整性必须建立在机密性上,在混合加密系统里用会话密钥加密消息和摘要,这样黑客就无法得知明文,也就没有办法动手脚了
在这里插入图片描述

四、数字签名

数字签名技术就是对非对称密钥加解密和数字摘要两项技术的应用,它将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用Hash函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性

因为非对称加密效率太低,所以私钥只加密原文的摘要,这样运算量就小了很多,而且得到的数字签名也很小,方便保管和传输

数字签名的过程如下:

明文 --> hash运算 --> 摘要 --> 私钥加密 --> 数字签名

在这里插入图片描述
数字签名的作用

  • 能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名,解决了身份认证的问题
  • 数字签名能确定消息的完整性

只要你和网站互相交换公钥,就可以用签名验签来确认消息的真实性,因为私钥保密,黑客不能伪造签名,就能够保证通信双方的身份

比如,你用自己的私钥签名一个消息“我是小明”。网站收到后用你的公钥验签,确认身份没问题,于是也用它的私钥签名“我是某宝”。你收到再用它的公钥验一下,也没问题,这样你和网站就都知道对方不是假冒的,后面就可以用混合加密进行安全通信了

五、数字证书和CA

对于请求方来说,它怎么能确定它所得到的公钥一定是从目标主机那里发布的,而且没有被篡改过呢?亦或者请求的目标主机本本身就从事窃取用户信息的不正当行为呢?这时候,我们需要有一个权威的值得信赖的第三方机构(一般是由政府审核并授权的机构)来统一对外发放主机机构的公钥,只要请求方这种机构获取公钥,就避免了上述问题的发生

CA对公钥的签名认证是有格式的,包含序列号、用途、颁发者、有效时间等等,把这些打成一个包再签名,完整地证明公钥关联的各种信息,形成数字证书

CA签发的证书分DV、OV、EV三种,区别在于可信程度。DV是最低的,只是域名级别的可信。OV是企业型,需要审核域名管理权限和企业名称、地址、电话等信息等的真实性。EV是最高的,经过了法律和审计的严格核查,可以证明网站拥有者的身份

小一点的CA可以让大CA签名认证,但链条的最后也就是Root CA,就只能自己证明,这个就叫自签名证书或者根证书
在这里插入图片描述
有了这个证书体系,操作系统和浏览器都内置了各大CA的根证书,上网的时候只要服务器发过来它的证书,就可以验证证书里的签名,顺着证书链一层层地验证,直到找到根证书,就能够确定证书是可信的,从而里面的公钥也是可信的

验证证书的有效性

1)证书颁发的机构是伪造的:浏览器不认识,直接认为是危险证书

2)证书颁发的机构是确实存在的,于是根据CA名,找到对应内置的CA根证书、CA的公钥。用CA的公钥,对伪造的证书的摘要进行解密,发现解不了,认为是危险证书.

3)对于篡改的证书,使用CA的公钥对数字签名进行解密得到摘要A,然后再根据签名的Hash算法计算出证书的摘要B,对比A与B,若相等则正常,若不相等则是被篡改过的

4)证书可在其过期前被吊销,通常情况是该证书的私钥已经失密。较新的浏览器如Chrome、Firefox、Opera和Internet Explorer都实现了在线证书状态协议(OCSP)以排除这种情形:浏览器将网站提供的证书的序列号通过OCSP发送给证书颁发机构,后者会告诉浏览器证书是否还是有效的

1、2点是对伪造证书进行的。3是对于篡改后的证书验证,4是对于过期失效的验证

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邋遢的流浪剑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值