Java基础教程:HTTPS

Java基础教程:HTTPS

HTTP的缺点

  HTTP ,全称是超文本传输协议(Hypertext Transfer Protocol) ,它是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。它相当优秀和方便,到那时仍有这些不足:

  • 通信使用明文(不加密),内容可能会被窃听
  • 不验证通信方的身份,因此有可能遭遇伪装
  • 无法证明报文的完整性,所以有可能已遭篡改

  这些问题不仅在HTTP上出现,其他未加密的协议中也会存在这类问题。

 

HTTPS

  在目前大家正在研究如何防止窃听信息的几种对策中,最为普及的就是加密技术。HTTP协议中没有加密机制,但是可以通过SSL或TLS的组合使用,加密HTTP的通信内容。用SSL建立安全通信线路之后,就可以在这条线路上进行HTTP通信了。与SSL组合使用的HTTP被称为HTTPS或HTTP over SSL

证书机制

  在HTTP协议通信时,由于不存在确认通信方的处理步骤,任何人都可以发起请求。但如果使用SSL则可以。SSL不仅提供加密处理,而且还使用了一种成为证书的手段,可用于确定通信方。

  证书由值得信任的第三方机构颁发,用以证明服务器和客户端是实际存在的。另外,伪造证书从技术角度来说是异常困难的一件 事。所以只要能够确认通信方(服务器或客户端)持有的证书, 即可判断通信方的真实意图。

  

  通过使用证书,以证明通信方就是意料中的服务器。这对使用者个人来讲,也减少了个人信息泄漏为危险性。

 

 完整性校验

  SSL提供认证和加 密处理及摘要功能。所以说SSL===安全!

HTTPS的内核是HTTP

  HTTPS 并不是一项新的应用层协议,只是 HTTP 通信接口部分由 SSL 和 TLS 替代而已。通常情况下,HTTP 会先直接和 TCP 进行通信。在使用 SSL 的 HTTPS 后,则会先演变为和 SSL 进行通信,然后再由 SSL 和 TCP 进行通信。也就是说,HTTPS 就是身披了一层 SSL 的 HTTP

  

:SSL 是一个独立的协议,不只有 HTTP 可以使用,其他应用层协议也可以使用,比如 SMTP(电子邮件协议)Telnet(远程登录协议) 等都可以使用。

 

SSL/TLS

  TLS(Transport Layer Security)SSL(Secure Socket Layer) 的后续版本,它们是用于在互联网两台计算机之间用于身份验证加密的一种协议

  SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

[!]如何保证公钥不被篡改?

  将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。

[!]公钥加密计算量太大,如何减少耗用的时间?

  每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。

 简化理解版

 

 

 

参考资料

 

posted @ 2020-04-20 12:50  子烁爱学习  阅读(416)  评论(0编辑  收藏  举报