前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >揭秘HTTPS(网络编程安全一)

揭秘HTTPS(网络编程安全一)

原创
作者头像
花花与Java
修改2020-12-09 10:21:06
8020
修改2020-12-09 10:21:06
举报
文章被收录于专栏:架构

HTTPS和HTTP是什么关系?HTTPS加密流程是什么?Websocket项目中如何集成SSL?阿里云如何进行HTTPS开发。

一 HTTP和HTTPS概述

1.1 HTTP协议

  1. 概述

HTTP的第一个版本只能传输超文本标记语言(HTML)文件,因此被称为超文本传输协议。

  1. 特征

a 是一个请求响应无状态的应用层协议。

b 基于TCP/IP协议族传输(明文)数据,所有的WWWW都必须遵守这个标准。

上图解释

代码语言:txt
复制
域名:表示网站中不同的页面。

通信协议:浏览器和服务器之间沟通的语言。
  1. HTTP发展史

1.2 HTTPS

HTTPS(中文名是超文本安全协议)是在HTTP基础下加入SSL层,SSL就是加密详细内容(数据加密和身份认证)。

即可以理解为对HTTP升级版,在数据传递前进行数据加密。

  1. HTTPS和HTTP之间区别
代码语言:txt
复制
1、https协议需要申请CA,证书,http不需要证书

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的加密传输

5、http直接与四层交互,https先给安全层交互,然后在与四层交互

二 加密原理和算法刨析

2.1 SSL和TLS

  1. 概述

SSL(安全套接字协议),及继任者TLS(传输层安全)为网络通信提供安全及数据完整性

的一种安全协议。SSL和TLS在传输层和应用层之间对网络连接进行加密。

  1. TLS(传输层安全)历史
代码语言:txt
复制
a 前身是SSL,最初几个版本(SSL1.0、SSL2.0、SSL3.0)。        

b 1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有TLS1.0、TLS1.1、TLS1.2三个版本。 

c TLS1.3改动会比xia较大,目前还未大规模推广,目前使用最广泛的是TLS 1.2。   

2.2 加密详解

2.2.1 概述

访问www.taobao.com

  1. 访问流程

上图说明

a 通过先向服务器获取公钥。

b 产生对称加密的密钥。

c 公钥加密对称密钥后传递给服务端。

d 服务端用私钥解密,获取对称加密的密钥。

e 客户端对数据用对称密钥加密然后传给服务端。服务端用对称密钥解密获取原数据。

代码语言:txt
复制
总结:在数据传输过程用对称加密,因为对称加密效率高。客户端产生的对称密钥传递给服务端。

      为了保证对称密钥的安全性,所以对对称密钥进行非对称加密传给服务端。然后服务端就

      获取对称密钥。
  1. 加密算法解析

建立一个密码体制,需要五个空间组成(上图描述)

代码语言:txt
复制
明文M:加密前或解密后的信息;

密文C:明文加密后的信息;

密钥K:由加密密钥和解密密钥组成;

加密E:从明文到密文的变换;

解密D:从密文到明文的变换

2.2.2 加密算法

2.2.2.1 对称加密
  1. 描述

也叫单钥加密,是指加密和解密是使用相同的密钥。

  1. 优势

加密、解密运算速度快,效率高。代表算法:AES算法、DES算法、RC4,3DES 、Triple-DES, RC2等;

  1. 特点
代码语言:txt
复制
发送端和接收端共享相同的密钥才能通信,一定程度上保证了安全。               
代码语言:txt
复制
对于枚举攻击,密码长度越长越难以破解  
  1. 案例

0010101010101010 明文

0001010001001011 秘钥

0011111011100001 密文(异或后)

0010101010101010 明文(解密后)

2.2.2.2 非对称加密
  1. 描述

加密和解密的密钥不一样,分别称为公钥和私钥。公钥和算法是公开的,私钥是保密的。

  1. 优缺

运算性能比较低、加密数据长度有限、安全性超强。例如:RSA、DSA、ECDSA、 DH、ECDHE;

  1. 特点

只有特定主机才有私钥,保证数据安全。

解决对称加密的密钥多管理不方便问题。

  1. 对称和非对称区别

对称加密效率高,但是在密钥管理上和密钥交换的时候,安全性不能保障。所以网络环境二者混合使用。

2.2.2.3 散列加密
  1. 描述

算法是不可逆的,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值。

却不能通过这个hash值重新获得目标信息。

  1. 常见算法

MD5、SHA-1、SHA-2、SHA-256 等

2.3 CA证书

  1. 定义

CA证书顾名思义就是由CA(Certification Authority,也叫“证书授权中心”)机构发布的数字证书。

  1. 证书包含内容

颁发者、使用者、版本、签名算法、使用者、公钥、指纹、指纹算法等等。

  1. 编码格式

X.509规范中一般推荐使用PEM格式来存储证书相关的文件。证书文件的文件名后缀一般为 .crt 或 .ce

对应私钥文件的文件名后缀一般为 .key。证书请求文件的文件名后綴为 .csr 。有时候也统一用pem作为

文件名后缀。

  1. 证书(浏览了解下)
代码语言:txt
复制
版本号(Version Number):CA证书一个规范的版本号,目前为版本3,值为0x2;

序列号(Serial Number):由CA维护的,为它所发的每个证书分配一个序列号,用来追踪和撤销证

书。只要拥有签发者信息和序列号,就可以唯一标识一个证书,最大不能过20个字节;

签名算法(Signature Algorithm):数字签名所采用的算法,如:

sha256-with-RSA-Encryption

ccdsa-with-SHA2S6;

颁发者(Issuer):发证书单位的标识信息,如 ” C=CN,ST=Beijing, L=Beijing,

O=org.example.com,CN=ca.org。example.com ”;

有效期(Validity): 证书的有效期很,包括起止时间。

服务器提供服务器的公钥给ca机构,生成证书,证书一般包含以下内容:

代码语言:txt
复制
◆Issuer (证书的发布机构)

◆Valid from , Valid to (证书的有效期)

◆Public key (公钥)

◆Subject (主题,使用者)

◆Signature algorithm (签名所使用的算法)

◆Thumbprint, Thumbprint algorithm (指纹以及指纹算法)
  1. 证书生成流程
代码语言:txt
复制
把Issuer (证书的发布机构),Public key (公钥),Subject (主题),Valid from,Valid

to(证书的有效期)等信息以明文的形式写到证书里面作为内容,然后用一个指纹算法(淘宝是sha1)计算

出这些数字证书内容的一个指纹(也就是签名),并把指纹和指纹算法用自己的私钥进行加密,然后生成

证书

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 HTTP和HTTPS概述
    • 1.1 HTTP协议
      • 1.2 HTTPS
      • 二 加密原理和算法刨析
        • 2.1 SSL和TLS
          • 2.2 加密详解
            • 2.2.1 概述
            • 2.2.2 加密算法
          • 2.3 CA证书
          相关产品与服务
          云服务器
          云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档