IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> https简介 -> 正文阅读

[网络协议]https简介


2022-03-18

说明

本博客每周五更新一次。
https是在原有http基础上增加ssl实现通信加密和用户身份认证,http协议数据明文传送,可以被网络工具拦截直接阅读,https是以密文形式传递,没有证书和算法,无法解密数据内容。
由于https通信过程中需要加密和解密,其效率低于http协议。

分享

详情

https加密文件

  • https认证文件主要包括三部分:公钥、私钥、证书(加密相关知识此处不做说明),一般称为CA证书,该证书可向机构申请或自己创建,自己创建的缺少公共认证,会有安全提醒,不影响使用,申请的短时间有免费注册平台如阿里云、腾讯云,长时间需要收费。

主流证书

一般主流的Web服务软件,通常都基于OpenSSL和Java两种基础密码库。

  • Tomcat、Weblogic、JBoss等Web服务软件,一般使用Java提供的密码库。通过Keytool工具,生成Java Keystore(JKS、keystore)格式的证书文件。
  • Apache、Nginx等Web服务软件,一般使用OpenSSL工具提供的密码库,生成PEM、KEY、CRT等格式的证书文件。
  • IBM的Web服务产品,如Websphere、IBM Http Server(IHS)等,一般使用IBM产品自带的iKeyman工具,生成KDB格式的证书文件。
  • 微软Windows Server中的Internet Information Services(IIS)服务,使用Windows自带的证书库生成PFX格式的证书文件。

编程语言需要的证书格式并不一致,Java采用jks或keystore,.Net采用pfx和cer,Php则采用pem和cer。
Java 证书工具为keytool,.Net 管理工具makecert

密钥库文件

所有的公钥和私钥同证书都会被存储在密钥库中,因为证书需要被签名, 签名必须使用非对称加密算法+HASH算法 所以一般是MD5和RSA 或者 SHA1和RSA

格式扩展名描述特点
JKS.jks/.ksJava Keystore密钥库的Java实现版本,provider为SUN密钥库和私钥用不同的密码进行保护
JCEKS.jceJCE Keystore密钥库的JCE实现版本,provider为SUN JCE相对于JKS安全级别更高,保护Keystore私钥时采用TripleDES
PKCS12.p12/.pfxPKCS #12个人信息交换语法标准1、包含私钥、公钥及其证书2、密钥库和私钥用相同密码进行保护
BKS.bksBouncycastle Keystore密钥库的BC实现版本,provider为BC基于JCE实现
UBER.ubrBouncycastle UBER Keystore密钥库的BC更安全实现版本,provider为BC

证书文件

格式扩展名描述特点
DER.cer/.crt/.rsaASN .1 DER用于存放证书不包含私钥,二进制格式
PKCS7.p7b/.p7rPKCS #7加密信息语法标准1、p7b以树状展示证书链,不含私钥
2、p7r为CA对证书请求签名的回复,只能用于导入
CMS.p7c/.p7m/.p7sCryptographic Message Syntax1、p7c只保存证书 2、p7m:signature with enveloped data 3、p7s:时间戳签名文件
PEM.pemPrintable Encoded Message1、该编码格式在RFC1421中定义,其实PEM是【Privacy-Enhanced Mail】的简写,但他也同样广泛运用于密钥管理 2、ASCII文件 3、一般基于base 64编码
PKCS10.p10/.csrPKCS #10 公钥加密标准1、证书签名请求文件 2、ASCII文件 3、CA签名后以p7r文件回复
SPC.pvk/.spcSoftware Publishing Certificate微软公司特有的双证书文件格式,经常用于代码签名,其中 1、pvk用于保存私钥 2、spc用于保存公钥

证书转换

在这里插入图片描述

https认证方式

  • https认证方式有两种,单向认证和双向认证,认证过程使用安全的非对称加密,完成认证使用对称加密。

单向认证

  • 认证流程如下图,仅对服务端认证,一般web服务使用该认证方式。
    在这里插入图片描述

B_公钥和B_私钥存储在服务端,一次完整请求流程如下:

  1. 客户端发起HTTPS请求,将SSL协议版本的信息发送给服务端。
  2. 服务端将包含公钥和签名的CA证书发送给客户端
  3. 客户端读取CA证书的明文信息,采用相同hash散列函数计算得到信息摘要(hash目的:验证防止内容被修改),用操作系统带的CA的公钥去解密签名(因为签名是用CA的私钥加密的),对比证书中的信息摘要。如果一致,则证明证书是可信的,从CA证书提取B_公钥
  4. 客户端生成一个随机数(密钥F),用B_公钥去加密这个随机数形成密文,发送给服务端。
  5. 服务端接收信息,用自己的B_私钥解密密文,得到了密钥F
  6. 后续服务端和客户端使用密钥F(对称加密)进行通信。

双向认证

  • 双向认证和单向认证原理类似,单向认证客户端需要认证服务端,双向认证增加服务端认证客户端。
    在这里插入图片描述

B_公钥和B_私钥存储在服务端,C_公钥和C_私钥存储在服务端,一次完整请求流程如下:

  1. 客户端发起HTTPS请求,将SSL协议版本的信息发送给服务端。
  2. 服务端将自身CA证书发送给客户端
  3. 客户端读取CA证书明文信息,采用相同hash散列函数计算得到信息摘要(hash目的:验证防止内容被修改),用操作系统带的CA的公钥去解密签名(因为签名是用CA的私钥加密的),对比证书中的信息摘要。如果一致,则证明证书是可信的,从CA证书提取B_公钥
  4. 客户端发送客户端证书给服务端,证书里面有客户端的公钥:C_公钥
  5. 客户端发送支持的对称加密方案给服务端,供其选择
  6. 服务端选择完加密方案后,用得到的C_公钥进行加密,并发送给客户端
  7. 客户端用C_私钥解密选好的加密方案,并生成一个随机数(密钥F),用服务端B_公钥加密密钥F,并将结果发送给服务端。
  8. 服务端和客户端使用密钥F完成后续通讯过程。

参考资料

  • https://www.cnblogs.com/yaphetsfang/articles/12858356.html
  • https://www.cnblogs.com/benwu/articles/4891758.html

总结

  • https是一种通过公钥、私钥、证书使用非对称加密完成认证,对称加密完成数据传输的通信协议,单向认证有中间人攻击可能,双认证相对安全,但需要客户端有自己的证书和是公钥、私钥,相对服务,所以web服务使用单向加密。
  • 网络通信协议是网络基础,身为程序员必学必会。加油。
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:30:49  更:2022-03-21 21:35:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:41:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码