https与http的区别(学习笔记)

参考文章

http存在的问题

1.http明文传输,传输过程中可能被截获、修改。
2.http不会验证用户身份,用户双方可以被伪造。
3.http不会验证报文的完整性。

https的组成

https是http协议的扩展,由http和SSL(安全套接字层)组成。
https的定义:

HTTPS 是一个在计算机世界里专门在两点之间安全的传输文字、图片、音频、视频等超文本数据的约定和规范。端口号为:443 HTTP端口号为80

https的功能

  • 加密,保证数据不会被监听
  • 数据一致性,保证数据的完整和有效性。
  • 身份认证,防止中间人攻击。

https的实现过程

1.RSA 的运算速度非常慢,而 AES 的加密速度比较快,而 TLS 正是使用了这种混合加密方式。在通信刚开始的时候使用非对称算法,比如 RSA、ECDHE ,首先解决密钥交换的问题。然后用随机数产生对称算法使用的会话密钥(session key),再用公钥加密。对方拿到密文后用私钥解密,取出会话密钥。这样,双方就实现了对称密钥的安全交换。(实现了机密性)

2.摘要算法,其实你可以把摘要算法理解成一种特殊的压缩算法,它能够把任意长度的数据压缩成一种固定长度的字符串,这就好像是给数据加了一把锁。
MAC 的全称是message authentication code,它通过 MAC 算法从消息和密钥生成,MAC 值允许验证者(也拥有秘密密钥)检测到消息内容的任何更改,从而保护了消息的数据完整性。
HMAC 是 MAC 更进一步的拓展,它是使用 MAC 值 + Hash 值的组合方式,HMAC 的计算中可以使用任何加密哈希函数,例如 SHA-256 等。(实现了数据完整性)

3.数字签名,私钥加密,公钥解密。使用私钥再加上摘要算法,就能够实现数字签名,从而实现认证。(实现了身份验证)

总结

HTTPS 协议其实非常简单,RFC 文档很小,只有短短的 7 页,里面规定了新的协议名,默认端口号443,至于其他的应答模式、报文结构、请求方法、URI、头字段、连接管理等等都完全沿用 HTTP,没有任何新的东西。
也就是说,除了协议名称和默认端口号外(HTTP 默认端口 80),HTTPS 协议在语法、语义上和 HTTP 一样,HTTP 有的,HTTPS 也照单全收。

你可能感兴趣的:(计算机网络,https)