0

0

Java中用HTTPS的原因及优点是什么

WBOY

WBOY

发布时间:2023-04-17 22:19:01

|

1558人浏览过

|

来源于亿速云

转载

    1.HTTP

    在说 https 之前,我们先要了解 http,因为 http 是 https 通讯的基础。 http(hypertext transport protocol)超文本传输协议,它用于传输客户端和服务器端的数据。

     HTTP 使用很简单也很方便,但却存在以下 3 个致命问题:

    • 使用明文通讯,内容可以被窃听。

    • 不验证通讯方的真实身份,可能会遭到伪装。

    • 无法证明报文的完整性,很容易被篡改。

      立即学习Java免费学习笔记(深入)”;

    鉴于以上问题,所以现在的系统会使用 HTTPS 来替代 HTTP。

    2.HTTPS

    首先来说,HTTPS 并不是一种新的协议,而是在 HTTP 协议的基础上添加了加密机制 SSL(Secure Socket Layer)或 TLS(Transport Layer Security)。 HTTPS = HTTP + 加密 + 认证 + 完整性保护。

    SSL 和 TLS:

    SSL(Secure Socket Layer)最早是由浏览器开发厂商网景公司开发的,此公司开发了 SSL 3.0 及 3.0 之前的版本,之后便将 SSL 交给了 IETF(Internet Engineering Task Force)Internet 工程任务组的手中,IETF 以 SSL 3.0 为基础开发了 TLS 1.0,所以可以认为 TLS 是 SSL 的“新版本”。

    2.1 解决信任问题

    作为 HTTPS 来说,首先要解决的就是信任问题,也就是身份效验的问题,如果不解决信任问题就会存在服务器伪装,也就是“中间人攻击”的问题。 所谓的中间人攻击指的是,正常情况下本该是客户端和服务端直接进行交互的,但此处冲出来一个“坏人”(中间人),它包含在客户端和服务器端之间,用于盗取和篡改双方通讯的内容,

    如下图所示: 

    Java中用HTTPS的原因及优点是什么

     HTTPS 解决信任问题采用的是数字证书的解决方案,也就是服务器在创建之初,会先向一个大家都认可的第三方平台申请一个可靠的数字证书,然后在客户端访问(服务器端)时,服务器端会先给客户端一个数字证书,以证明自己是一个可靠的服务器端,而非“中间人”。 此时浏览器会负责效验和核对数字证书的有效性,如果数字证书有问题,那么客户端会立即停止通讯,如果没问题才会执行后续的流程,

    如下图所示: 

    Java中用HTTPS的原因及优点是什么

     有了数字证书之后,就可以验证服务器端的真实身份了,这样就解决了“中间人攻击”的问题,也解决了伪装的问题。

    2.2 解决明文传输和完整性问题

    虽然上面我们已经解决了信任问题,然而因为通讯双方是明文通讯的,所以在通讯时依然存在通讯内容被窃听的风险,此时应该怎么办呢? 于是我们想到,使用加密来解决信息暴露的问题。

    加密的分类

    加密主要分为两大类:对称加密和非对称加密。

    行盟APP1.0 php版
    行盟APP1.0 php版

    行盟APP是结合了通信和互联网的优势,加之云计算所拥有的强大信息资源,借助广大的终端传递服务,潜在的拥有巨大商机。她到底是什么,又有什么作用?她是一款手机应用软件;她是一款专门为企业服务的手机应用软件;她是一款能够将企业各种信息放入其中并进行推广传播的手机应用软件!只要轻轻一点,企业的简介,产品信息以及其他优势就能最快最大限度的透过手机展现在客户的眼前,一部手机,一个APP,你面对的将是一个6亿&

    下载
    • 在对称加密中,有一个共享秘钥,通过这把共享秘钥可以实现信息的加密和信息的解密,它的特点是加密和解密的速度很快,但因为共享秘钥的问题,一旦共享秘钥被截获,那么所谓的加密和解码也就是一纸空谈了。

    • 在非对称加密中,有一对秘钥:公钥和私钥,使用公钥可以加密信息,但不能解密信息,使用私钥可以解密信息。它的特点是服务器端保存私钥,不对外暴露,只将公钥发送给客户端,而其他人即使拿到公钥,也解密不了加密的信息,所以此方式更安全,但非对称加密的执行速度比较慢。

    那在 HTTPS 中要使用对称加密还是非对称加密呢? 使用对称加密,速度快,但不安全;使用非对称加密安全,但速度慢。 只有小孩做选择,成年人都要,所以 HTTPS 中既使用了非对称加密也使用了对称加密,它的整个交互流程是这样的: 

    Java中用HTTPS的原因及优点是什么

    Java中用HTTPS的原因及优点是什么

     HTTPS 执行流程如下:

    • 客户端使用 HTTPS 访问服务器端。

    • 服务器端返回数字证书,以及使用非对称加密,生成一个公钥给客户端(私钥服务器端自己保留)。

    • 客户端验证数字证书是否有效,如果无效,终止访问,如果有效:

      • 使用对称加密生成一个共享秘钥;

      • 使用对称加密的共享秘钥加密数据;

      • 使用非对称加密的公钥加密(对称加密生成的)共享秘钥。

      • 发送加密后的秘钥和数据给服务器端。

    • 服务器端使用私钥解密出客户端(使用对称加密生成的)共享秘钥,再使用共享秘钥解密出数据的具体内容。

    • 之后客户端和服务器端就使用共享秘钥加密的内容内容进行交互了。

    这样,HTTPS 既保证了安全性,同时又保证了高效性,可谓鱼和熊掌兼得。

    使用加密的方式也间接的保证了数据的完整性问题,如果是不完整的数据或有多余的数据,那么在解密时会报错,这样就能间接的保证数据的完整性了。

    相关文章

    java速学教程(入门到精通)
    java速学教程(入门到精通)

    java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    http500解决方法
    http500解决方法

    http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    429

    2023.11.09

    http请求415错误怎么解决
    http请求415错误怎么解决

    解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

    418

    2023.11.14

    HTTP 503错误解决方法
    HTTP 503错误解决方法

    HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

    2364

    2024.03.12

    http与https有哪些区别
    http与https有哪些区别

    http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    2115

    2024.08.16

    http与https有哪些区别
    http与https有哪些区别

    http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    2115

    2024.08.16

    SSL检测工具介绍
    SSL检测工具介绍

    SSL检测工具有SSL Labs、SSL Check、SSL Server Test、SSLMate、SSL/TLS Analyzer等。详细介绍:1、SSL Labs是一个由Qualys提供的在线SSL检测工具,可以评估服务器证书的部署情况、加密套件、协议支持等方面的安全性,它提供了一个详细的报告,包括证书的颁发者、有效期、安全性配置等;2、SSL Check等等。

    338

    2023.10.20

    C++ 设计模式与软件架构
    C++ 设计模式与软件架构

    本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

    8

    2026.01.30

    c++ 字符串格式化
    c++ 字符串格式化

    本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

    9

    2026.01.30

    java 字符串格式化
    java 字符串格式化

    本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

    8

    2026.01.30

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Kotlin 教程
    Kotlin 教程

    共23课时 | 3万人学习

    C# 教程
    C# 教程

    共94课时 | 8万人学习

    Java 教程
    Java 教程

    共578课时 | 53.5万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号