HTTPS
HTTPS = HTTP + SSL/TLS
由于HTTP通信时“明文”的特点,在整个网络传输中数据透明,容易被任何人在链路中截取,进行修改或伪造报文,导致数据可信性岌岌可危,因此在HTTP基础之上诞生了为安全而生的HTTPS;HTTPS并未修改HTTP而是在应用层与传输层之间添加了一层,原有直接应用层传递给传输层数据改为传递给SSL/TLS层,SSL/TLS对数据进行加密后添加SSL/TLS头在传递给传输层进行数据传输。
SSL/TLS
SSL(Secure Sockets Layer)安全套接层,由网景公司1994年发明,IETF在1999年对SSL正式标准化,并改名为TLS(Transport Layer Security)传输层安全;目前主流三个版本分别为2006发布的1.1、2008年发布的1.2、2018年发布的1.3
摘要算法
把任意长度数据压缩为固定长度、且独一无二的“摘要”字符串,如同为这串数据生成一个数字指纹。加密的数据中,任意改动都会影响生的的摘要差异,在数据传输中可把摘要和明文一起加密传输,在接收端接收到后,进行解密后,对明文在进行计算“摘要”,和传输过来的摘要进行对比,故此可确保数据是否已被篡改。
摘要算法不是加密算法,不能用于加密(不可逆),只能用于放篡改验证,
常见的算法为:MD5、SHA1、SHA2、SHA1 256、SHA512
对称加密算法
对称加密特点是算法公开、计算量小、加密速度快、加密效率高。常见加密算法有AES、DES等
非对称加密算法
非对称加密存在俩个秘钥,即为“公钥”“私钥”,公钥用于公开使用,私钥严格保密与服务器;非对称加密可以解决秘钥交换问题。
加密过程
SSL/TLS使用混合加密,把对称加密机非对称加密结合使用,取长补短,能保证完成高效加密,又可完成秘钥交换。
- 客户端向服务器发送自己支持秘钥交换算法列表
- 服务端相应其中一种最安全的加密套件,返回CA证书
- 客户端验证服务器是否合法,并生成一个随机数,根据协商好的加密算法生成随机秘钥,在根据CA证书拿到的公钥进行加密发送给服务器
- 服务端根据私钥进行解密,拿到秘钥
- 使用对称加密算法进加密双线传输
数字证书
数字证书主要用来浏览器证明身份,同时数字证书中包含公钥
数字证书组成:
- CA信息
- 公钥用户信息
- 公钥
- 权威机构的签名
- 有效期
浏览器验证数字证书
有了CA签名过的数字证书,当浏览器访问服务器时,服务器会返回数 字证书给浏览器。浏览器收到证书后会对数字证书进行验证。 首先浏览器读取证书中相关的明文信息,采用CA签名时相同的hash函 数计算得到信息摘要A,再利用对应的CA公钥解密数字签名数据得到信 息摘要B,如果
摘要A和摘要B一致,则可以确认证书时合法的
数字证书的申请和验证
申请步骤
- 生成自己的公钥和私钥,服务器自己保留私钥
- 向CA机构提交公钥,公司,域名信息等待认证
- CA机构通过线上,线下多种途径验证你提交信息的真实性,合法性
-
- 信息审核通过,CA机构则会向你签发认证的数字证书,包含了公 钥,组织信息,CA信息,有效时间,证书序列号,同时生成一个签 名;
签名步骤: hash( 你用于申请证书所提交的明文信息 )=信息摘要;CA 再使用私钥对 信息摘要进行加密,密文就是证书的数字签名

浙公网安备 33010602011771号