HTTPS详解(读《图解HTTP》笔记)

2017-12-13  本文已影响0人  焱魔王

原创 转载请注明地址

今天由于在项目过程中遇到了一个https认证失败的问题(其实是由于我的部署配置不对导致的。。),于是翻看了一下《HTTP图解》一书的七八两章,虽然问题是由于失误产生的,但是学习的内容还是值得一记的。也算是没有白费这些看书的时间,下面的内容都是自己看书后的理解,如有不对之处,欢迎各路大神批评指正!鞠躬!

HTTPS

image.png

由上图可以看到,使用http协议在安全性上存在着巨大的不足。 为了加强HTTP协议的安全性,通过与SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)组合使用,加密HTTP的通信内容。由此就产生了HTTPS的概念,即与SSL或TLS组合使用的HTTP协议。

SSL不仅提供了加密处理,还能提供一种名为证书的手段,用于验证方身份。证书由第三方机构颁发,以证明客户端或服务端是真实存在的,防止恶意对象对服务器或客户端进行伪装造成安全问题,同时也能确定报文的完整性(即发出的报文与接收到的报文内容一致)。

综上所述HTTP+加密+认证+完整性保护=HTTPS。也可以说,HTTPS是披着SSL外壳的HTTP。

HTTPS加密

SSL采用公开密钥加密的处理方式对通信内容进行加密

  • 共享密钥加密 :加密和解密使用同一个密钥,也被称为对称密钥加密,使用此方式加密是必须将密钥一同发送给对方,其问题在于确保密钥传输的安全性难以保证。

  • 公开密钥加密:使用两把密钥加密,一把私钥,一把公钥。顾名思义,公钥则相当于共享密钥加密方式中的密钥,传输的信息都由公钥进行加密处理(单向函数加密);而私钥只能由公钥的发布方一人持有,否则此加密方式将失去意义,私钥用于对加密信息进行解密。此方式私钥无需进行传输,故无需担心私钥被盗。
    image.png
image.png
ps:公开密钥加密方式性能比共享密钥差。

HTTPS加密方式

HTTPS使用的加密方式为上述两种方式的混合方式:交换密钥环节使用公开密钥加密方式保证密钥的安全性,之后建立通信交换报文阶段使用共享密钥方式提高性能。



证明公开密钥正确性的证书

在公开密钥加密方式中,如何确定公钥是否被恶意攻击者替换十分重要。为解决这个问题,可以使用第三方权威数字证书验证机构和其相关机关颁发的数字证书。

image.png

可以确认客户端的客户端证书

客户端获取的用于验证客户端真实存在的证书,其使用方式和服务器证书相同。

自签名证书

使用OpenSSL这套开源程序,每个人都可以构建一套自己的认证机构,即自认证机构,使服务器可以自己给自己颁发证书,但该证书在互联网中没有作用,故被戏称为自签名证书。浏览器访问持有自签名证书的服务器时,会显示“无法确认连接安全性”或“该网站的安全证书存在问题”等警告消息。自签名证书无法消除伪装的可能性。

HTTPS安全通信机制



image.png

由上述内容总结一下HTTPS的安全通信

上一篇下一篇

猜你喜欢

热点阅读