zoukankan      html  css  js  c++  java
  • 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),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。

     简化理解版

     

    参考资料

     

  • 相关阅读:
    P3704 [SDOI2017]数字表格
    CF 700 E. Cool Slogans
    杜教筛学习笔记
    [BOI2004]Sequence 数字序列(左偏树)
    [WC2007]剪刀石头布(最大流)
    [NOI2009]变换序列(二分图匹配)
    文理分科(最小割)
    上帝与集合的正确用法(欧拉定理)
    [HAOI2008]圆上的整点(数论)
    主席树学习笔记
  • 原文地址:https://www.cnblogs.com/MrSaver/p/12737082.html
Copyright © 2011-2022 走看看