热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

了解HTTPS

HTTP的缺点通讯使用明文,内容可能会被窃听不验证通信方的身份,可能遭遇伪装无法证明报文的完整性,所以有可能被篡改HTTP+加密+认证+完整性保护HTTPS为了解决HTTP安全的问

HTTP的缺点

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

HTTP+加密+认证+完整性保护=HTTPS

为了解决HTTP安全的问题,我们需要在HTTP协议的基础上加入加密处理和认证等机制,这种加密及认证机制的HTTP称为HTTPS

HTTPS不是一种新协议,只是HTTP通信节后部分用SSL和TLS协议代替而已。
所谓HTTPS就是身披SSL协议外壳的HTTP!
《了解HTTPS》

采用SSL后,HTTP就拥有了HTTPS的加密,证书和完整性保护这些功能

SSL是独立于HTTP的协议,所以不光是HTTP协议,其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用,是一种广泛的网络安全技术。

加密技术

共享加密的问题

使用同一个密钥加密解密
《了解HTTPS》

在网络上转发密钥时,可能会被黑客截取密钥,加密也就没有意义了。

使用两把密钥的公开密钥加密

采用非对称的一对密钥,一把私有密钥,一把公开密钥,其中私有密钥不能让任何人知道,公开密钥可以随意发布。
发送方使用公开密钥进行加密处理,对方收到被加密的信息后,用自己的私有密钥进行解密。
《了解HTTPS》

要想根据密文和公有密钥来破解出原文是很困难的,这需要对离散对数进行求值,并非一件容易的事。

HTTPS采用混合加密

HTTPS采用共享密钥和公开密钥加密两种方式并用的混合加密机制,在密钥交换环节使用公开是密钥加密方式,之后建立通信交换报文阶段则使用共享密钥加密方式。

《了解HTTPS》

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

如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥?在公开密钥传输的过程中,如何确保公开密钥不会被攻击者给替换掉了?

为了解决上述问题,可以使用有数字证书认证机构和其相关机关颁发的公开密钥证书。数字证书认证机构处于客户端与服务端双方都可以信赖的第三方机构的立场上。首先,服务器的运营人员向数字证书认证机构提出公开密钥的申请,数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书绑定在一起。

服务器会将这份有数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式通信,公钥证书亦可以叫数字证书或证书。

接收到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦通过验证,客户端便可确认认证服务器的公开密钥是真实有效的数字证书认证机构,服务器的公开密钥是值得信赖的。

对于认证机关的公开密钥如何安全的转移给客户端,使用通信方式,安全转交是一件很困难的事,所以,大多数浏览器开发商发布版本时,会在内部植入常用的认证机关的公开密钥。

《了解HTTPS》

客户端证书

HTTPS还可以使用客户端证书,证明服务器正在通信的对方是合法的客户端。
列如,银行的网上银行就采用了客户端证书,在登录网银时不仅要求输入ID和密码,还会要求用户的客户端证书,以确认用户是否从特定的诊断访问。


推荐阅读
  • 分布式计算助力链力实现毫秒级安全响应,确保100%数据准确性
    随着分布式计算技术的发展,其在数据存储、文件传输、在线视频、社交平台及去中心化金融等多个领域的应用日益广泛。国际知名企业如Firefox、Google、Opera、Netflix、OpenBazaar等均已采用该技术,推动了技术创新和服务升级。 ... [详细]
  • 本文探讨了在不同场景下如何高效且安全地存储Token,包括使用定时器刷新、数据库存储等方法,并针对个人开发者与第三方服务平台的不同需求提供了具体建议。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 了解多域名SAN SSL证书及其工作原理
    本文介绍了多域名SAN SSL证书的概念及其工作方式,探讨其在现代网络安全中的重要性和应用。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 在Linux系统中使用EncFS实现文件夹加密
    为了保护个人隐私或敏感数据不被未经授权的访问,可以通过加密技术来增强安全性。本文介绍如何在Linux系统上使用EncFS工具创建和管理加密文件夹,以确保即使在系统登录状态下,特定文件夹中的数据也保持加密状态。 ... [详细]
  • 宝塔面板下启用HTTPS的详细指南
    本文提供了在宝塔面板环境中配置HTTPS的具体步骤,确保您的网站通信更加安全可靠。 ... [详细]
  • 本文探讨了在使用 MyBatis 进行批量数据处理时遇到的参数绑定异常问题,并提供了详细的解决方案。 ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • 计算机学报精选论文概览(2020-2022)
    本文汇总了2020年至2022年间《计算机学报》上发表的若干重要论文,旨在为即将投稿的研究者提供参考。 ... [详细]
author-avatar
诸子百家101_350
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有