热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HTTPS学习笔记:(1)入门介绍

前言

HTTPS包含的知识体系过于庞大,很难通过一篇文章进行介绍,本系列笔记主要基于<>而做的一个读书笔记,通过阅读该书与自己的一些感悟从多个方面对HTTPS进行的总结。

关于快速入门,可以先看看:https://blog.csdn.net/eric_sunah/article/details/103144744

背景

随着互联网行业的发展,HTTP协议的因其轻便简单而收到广泛的应用,然而由于其都是基于TCP协议进行明文传输,所以安全问题可以说是HTTP协议最大的一大的短板,总结而言,HTTP的安全问题主要包含以下几个方面:

  • 可窃听:HTTP使用明文进行传输,因此传输内容可能很容易被窃听。
  • 可伪装:HTTP协议中不管是请求还是响应都不会对客户端和服务器的身份进行确认。通过中间人攻击的方式很容易伪装成通信的一端与另一端进行通信。
  • 可篡改:HTTP协议本身没有提供数据完整性的校验机制,因此很容易被中间人进行信息篡改。

由于上述问题,HTTPS应运而生。HTTPS可以简单理解为,运用SSL/TLS,PKI,密码学等安全机制来保障HTTP安全通信的技术集合,其主要解决了上述的几个问题:

  • 防止被窃听—加密:通过和SSL或TLS的组合使用,加密HTTP的通信内容。
  • 防止遭遇伪装—证书:通过证书确认通信双方的身份。证书可以由专门的第三方CA颁发,也可以自己给自己颁发(风险较大)。
  • 防止被篡改—摘要:通过对主体内容进行摘要计算,以防止信息篡改。
概念

HTTPS涉及到的概念较多,本文先对主要概念进行简单说明,后面将会对每个概念进行详细介绍。
主要概念如下:

  • SSL:SSL(Secure Sockets Layer)安全套接层,该协议由Netscape开发的。从OSI 7层模型的角度看是在TCP与HTTP两层中间插入的一层,用来确保上层HTTP的数据安全。从数据层面看,在传输的过程中,会将HTTP协议的内容包裹起来,以达到安全传输的目的。通过wireshark的抓包,可能更加清楚的了解该层的位置与包裹的方式.

HTTPS学习笔记:(1)入门介绍

  • TLS:TLS(Transport Layer Security)传输层安全协议。作用和SSL类似,可以理解为SSL 3的升级版,之所以改名,主要是为缓和微软与Netscape当时因浏览器之争而产生的矛盾。
  • 证书:证书也叫公开**证书,是由数字证书认证机构(CA,Certificate Authority)或其相关机构颁发用来确认身份的文件。
  • PKI:互联网公钥基础设施(public key infrastructure,PKI)
  • CA:证书颁发机构(certification authority或certificate authority,CA),是PKI实现成员间安全通信的一种模型。
  • 对称加密算法:用相同的秘钥进行加密,解密的算法称为对称加密算法,例如AES.该类算法的速度较快
  • 非对称加密算法:以公钥,私钥分别进行加密解密的方式称为非对称加密算法,该算法一般会比对称加密算法要慢
引入的问题

鱼翅熊掌不可兼得,在解决了HTTP安全问题的同时,也引入了以下几个问题:

  • 提高实施成本:根据证书的用途以及类型,通过CA签发证书的价格从免费-几百万/年不等。一个证书几百万,不信?看看下面阿里云上选择的一个土豪证书套餐的截图:
    HTTPS学习笔记:(1)入门介绍

  • 性能损耗:HTTPS在原有通信的基础上增加了TLS握手的处理流程,以及加密过程中涉及到数据的加密解密,因此会导致增加时延以及消耗更多系统资源

操作流程

HTTPS落地到业务的操作流程主要包括以下几步:

  1. 生成证书
    生成证书的大致流程为:确定证书类型->填写CSR->提交申请。不同的第三方机构流程可能会存在一定的差异。

证书可以从第三方供应商那边购买,也可以自己签发[如果某网站仅用自签名证书对外提供服务,安全性没保障不说,专业性也肯定受到质疑],常见的CA包括:GeoTrust,Symantec,GlobalSign,沃通等。公有云一会代理这些CA的销售渠道,例如:Amazon,腾讯云,阿里云等。例如:
HTTPS学习笔记:(1)入门介绍

  1. 证书配置
    管理员拿到证书后,就可以对web服务器进行配置了,不同的服务器配置方式不同,可参考:https://www.globalsign.cn/resources.shtml

  2. 按照协议传输

对配置了HTTPS的网站进行访问时,就按照SSL/TLS协议进行协商与数据传输了,本文不对协议的内容进行介绍,细节请参考后续文章。


推荐阅读
  • 深入解析HTTPS:保障Web安全的加密协议
    本文详细探讨了HTTPS协议在保障Web安全中的重要作用。首先分析了HTTP协议的不足之处,包括数据传输过程中的安全性问题和内容加密的缺失。接着介绍了HTTPS如何通过使用公钥和私钥的非对称加密技术以及混合加密机制,确保数据的完整性和机密性。最后强调了HTTPS的安全性和可靠性,为现代网络通信提供了坚实的基础。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 如何在服务器上配置SSL证书
    SSL证书是用于验证互联网上身份的一种数字凭证,通过启用HTTPS协议,确保用户与服务器之间的通信安全。本文将详细介绍如何在API和服务器上配置SSL证书,以提升网站的安全性和可信度。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • 针对HTTP协议在数据传输过程中的安全漏洞,HTTPS应运而生,通过加密传输通道来防止信息泄露和篡改。作为一种基于SSL/TLS协议的加密超文本传输协议,HTTPS不仅提升了数据的安全性,还广泛应用于各种敏感信息的传输场景,如网上银行、电子商务和在线支付等。 ... [详细]
  • 基于Web的Kafka管理工具Kafkamanager首次访问Web界面的详细配置指南(附图解)
    首次访问Kafkamanager Web界面时,需要对Kafka集群进行配置。这一过程相对简单,用户只需依次点击【Cluster】>【Add Cluster】,按照提示完成相关设置即可。本文将通过图文并茂的方式,详细介绍每一步的配置步骤,帮助用户快速上手Kafkamanager。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 在配置Nginx的SSL证书后,虽然HTTPS访问能够正常工作,但HTTP请求却会遇到400错误。本文详细解析了这一问题,并提供了Nginx配置的具体示例。此外,还深入探讨了DNS服务器证书、SSL证书的申请与安装流程,以及域名注册、查询方法和CDN加速技术的应用,帮助读者全面了解相关技术细节。 ... [详细]
  • 在iOS开发中,基于HTTPS协议的安全网络请求实现至关重要。HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer)是一种旨在提供安全通信的HTTP扩展,通过SSL/TLS加密技术确保数据传输的安全性和隐私性。本文将详细介绍如何在iOS应用中实现安全的HTTPS网络请求,包括证书验证、SSL握手过程以及常见安全问题的解决方法。 ... [详细]
  • 在日常的项目开发中,测试环境和生产环境通常采用HTTP协议访问服务。然而,从浏览器的角度来看,这种访问方式会被标记为不安全。为了提升安全性,当前大多数生产环境已经转向了HTTPS协议。本文将详细介绍如何在Spring Boot应用中配置SSL证书,以实现HTTPS安全访问。通过这一过程,不仅可以增强数据传输的安全性,还能提高用户对系统的信任度。 ... [详细]
author-avatar
横店东磁何静
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有