HTTPS相关介绍

目录

一、HTTPS概述

二、HTTPS的优缺点

三、自签名认证

四、CA签名认证        

五、证书标准


一、HTTPS概述

HTTPS协议是由 HTTP 加上TLS/SSL协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。

二、HTTPS的优缺点

优点

  1. 使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
  2. HTTPS 协议是由 SSL+HTTP构建的可进行加密传输、身份认证的网络协议,要比 HTTP安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性。
  3. HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

缺点

  1. 相同网络环境下,HTTPS 协议会使页面的加载时间延长近 50%,增加 10%到 20%的耗电。此外,HTTPS 协议还会影响缓存,增加数据开销和功耗。
  2. HTTPS 协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用。

三、自签名认证

        身份验证和密钥协商是HTTPS的基础功能,前提是服务器掌握着对应的私钥,但无法确保服务器身份的合法性,因为公钥并不包含服务器的信息,存在安全隐患。

        证书中间人攻击:

HTTPS相关介绍_第1张图片

四、CA签名认证        

        解决上述身份验证问题的关键是确保获取的公钥途径是合法的,能够验证服务器的身份信息,为此需要引入权威的第三方机构CA。简单的说,CA是整个安全机制的重要保障,我们平时用的证书就是由CA机构颁发,其实就是用CA的私钥给用户的证书签名,然后在证书的签名字段中填充这个签名值,浏览器在验证这个证书的时候就是使用CA的公钥进行验签。

        CA使用的具体流程:

HTTPS相关介绍_第2张图片

CA的主要作用:

  1. 颁发证书,颁发证书其实就是使用CA的私钥对证书请求签名文件进行签名。具体做法如下:
    signature = RSA(PriKey_CA, Hash(message))
  2. 颁发的证书浏览器要信任,浏览器只需要用CA的公钥进行验签成功就表示这个证书是合法可信的,这就需要浏览器内置CA的公钥,也就是内置CA的证书。一般来说,操作系统都会内置权威CA的证书,有的浏览器会使用操作系统内置的CA证书列表,有的浏览器则自己维护的CA证书列表,比如Firefox。

五、证书标准

        数字证书的格式普遍采用的是X.509国际标准, X.509是密码学里公钥证书的格式标准。X.509证书已应用在包括TLS/SSL在内的众多网络协议里,同时它也用在很多非在线应用场景里,比如电子签名服务。X.509证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构CA的签名,也可以是自签名)。对于一份经由可信的证书签发机构签名或者可以通过其它方式验证的证书,证书的拥有者就可以用证书及相应的私钥来创建安全的通信,对文档进行数字签名。

  1. 证书的编码格式

X.509标准的证书文件具有不同的编码格式:PEMDER

PEM,全称Privacy Enhanced Mail,以文本格式存储,其文本内容大概如下:-----BEGIN CERTIFICATE----- Base64编码过的证书数据 -----END CERTIFICATE-----通常,PEM格式可以存储公钥、私钥、证书签名请求等数据。

Apache和Nginx服务器偏向于使用这种编码格式。

DER,全称Distinguished Encoding Rules,以二进制存储,因此文件结构无法直接预览。

DER格式也可以存储公钥、私钥、证书签名请求等数据。Java和Windows应用偏向于使用这种编码格式。

  1. 文件扩展名

不同的扩展名可以分为以下几类:

证书:存放数字证书,X.509标准,后缀名pem、der、crt或cer。

密钥:用来存放一个RSA公钥或私钥,这类文件不是X.509标准,但是是PEM或DER格式。后缀名key。

证书+密钥:可同时存放证书和RSA公钥,后缀名pem、der、p12。

证书请求:并不是证书,而是证书签名请求。后缀名csr。

你可能感兴趣的:(#,Nginx,https,网络协议,http)