HTTPS协议、流媒体协议、P2P协议和DNS协议学习总结

HTTPS协议

在一些网页访问时,需要进行加密,加密一般分为两种,即对称加密非对称加密

在对称加密算法中,加密和解密使用的密钥是相同的。在非对称加密算法中,加密使用的密钥和解密使用的密钥是不相同的。一把是公开的公钥,另一把是自己持有的私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。

对称加密算法相对非对称加密算法来说,效率较高

对称加密

对称加密相对来说,在互联网上传输时,收发两者使用同一个密钥进行加密和解密,但如果密钥本身被黑客截获,会非常不安全。

非对称加密

一般来说,非对称加密的私钥放在发送消息的设备处,不会在互联网上传播,保证了私钥的私密性,对应私钥的公钥,可以在互联网上随意传播。为了防止黑客模仿正常用户,获取网站的密钥信息,一般来说除了访问网站,客户端也都有自己的公钥和私钥。客户端给网站发送消息时,采用网站的公钥加密,网站给客户端发送消息时,采用客户端的公钥加密。

数字证书

非对称加密存在的问题是,如何将不对称加密的公钥给对方,一种是放在公网地址一种是建立连接时传给对方,但都存在的问题是,接收方如何家别传输得到的公钥是对的。需要具由权威部门颁发的证书

证书中包含公钥,证书所有者,以及证书的发布机构和有效期。

生成证书需要发起一个证书请求,然后将这个请求发给一个权威机构去认证,这个权威机构称为CACertificate Authority)。

证书请求通过命令生成后,将这个请求发给CA,CA会给证书卡一个章,称为签名算法。签名算法只有通过CA的私钥签名之后才行。

签名算法工作流程:一般是对信息做一个Hash计算,得到一个Hash值,这个过程是不可逆的,也就是说无法通过Hash值得出原来的信息内容。在把信息发送出去时,把这个Hash值加密后,作为一个签名和信息一起发出去。

验证证书流程:如果需要验证证书,需要CA的公钥,如果想要确定CA的公钥是对的,CA的公钥也需要更牛的CA给它签名,然后形成CA的证书。要想知道某个CA的证书是否可靠,要看CA的上级证书的公钥,能不能解开这个CA的签名。这样层层上去,直到全球皆知的几个著名大CA,称为root CA,做最后的背书。通过层层授信背书的方式,从而保证了非对称加密模式的正常运转。

Self-Signed Certificate,自己给自己签名。

HTTPS的工作模式

HTTPS总体思路上就是把非对称加密和对称加密结合起来,因为非对称加密在性能上不如对称加密,公钥私钥主要用于传输对称加密的秘钥,而真正的双方大数据量的通信都是通过对称加密进行的。

img

具体流程:

  • 登录网站时,由于是HTTPS,客户端发送Client Hello消息到服务器,以明文传输TLS版本信息、加密套件候选列表、压缩算法候选列表等信息。还有一个随机数,在协商对称密钥的时候使用。

  • 网站返回Server Hello消息, 告知客户端,服务器选择使用的协议版本、加密套件、压缩算法等,和一个随机数,用于后续的密钥协商。

  • 网站给客户端一个服务器端的证书

  • 客户端接收到证书后,会从自己信任的CA仓库中,用CA证书里面的公钥去解密网站的证书。如果成功,则说明网站是可信的。这个过程中可能会不断往上追溯CA、CA的CA、CA的CA的CA,直到一个授信的CA。

  • 证书验证完毕之后,网站可信,客户端计算产生随机数字Pre-master,发送Client Key Exchange,用证书中的公钥加密,再发送给服务器,服务器可以通过私钥解密出来。

  • 无论客户端还是服务器,都有了三个随机数,分别是自己的,对端的以及上步生成的Pre-Master随机数。通过这三个随机数,可以在客户端和服务器产生相同的对称密钥。

  • 生成对称密钥后,客户端发送一个Encrypted Handshake Message,将已商定好的参数等,采用协商密钥进行加密,发送给服务器用于数据与握手验证。

  • 同样,服务器也发送Encrypted Handshake Message的消息试试。当双方握手结束之后,即可通过对称密钥进行加密传输。

  • 上述过程只包含HTTPS的单向认证,也即客户端验证服务端的证书,是大部分的场景,也可以在更严格安全要求的情况下,启用双向认证,双方互相验证证书。

重放和篡改

对于黑客来说,有了加密和解密,截获的包无法打开,但其可以发送N次。通过Timestamp和Nonce随机数联合起来,做一个不可逆的签名来保证。Nonce随机数保证唯一,或者Timestamp和Nonce合起来保证唯一,请求只接受一次,服务器多次收到相同的Timestamp和Nonce,则视为无效。

流媒体协

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值