HTTPS原理

引言

这是一个面试必被问的问题,我面试的每一家公司,面试官几乎都问过这个。

HTTP的缺点

  • 通信使用明文(不加密),内容可能会被窃听。
  • 不验证通信方的身份,因此有可能遭遇伪装。
  • 无法证明报文的完整性,所以有可能已遭篡改。

加密技术

对称加密

加密和解密共用同一个秘钥的方式叫对称加密。
优点是加密解密效率高,缺点是不适合在网上传输(秘钥传输可能会被截获),秘钥维护麻烦(和不同主机通信可能对称秘钥都不一样,都需要保存)。
对称加密很有名的一个算法就是DES,由IBM在1971年提出,DES算法是分组加密算法的典型代表。
DES加密算法在加密前,先对整个明文进行分组。每一个组长64位,然后对每一个64位二进制数据进行加密处理,产生一组64位密文数据。最后将各组密文串接起来,即得到整个密文。秘钥的长度是64位,其中8位用于奇偶校验,因此秘钥实际长度56位。

非对称加密

加密秘钥和解密秘钥是不同的,是一个秘钥对,分为公钥和私钥。
一般有两种用法:公钥加密,私钥解密或者私钥加密,公钥解密。另外就是公钥无法推断私钥,私钥也无法推断公钥。
公钥加密,私钥解密,这个是加密。
私钥加密,公钥解密,这个是签名。当然一般不说私钥加密,公钥解密,一般说私钥签名,公钥验证签名。下文为了好理解,会出现私钥加密这样的表述。
非对称加密的一个很广泛的应用就是数字签名,什么是数字签名呢?
数字签名其实和现实生活中的签名,目的是一样的,就是证明这个文件你是确认过并承认的。数字签名可以防止抵赖,防止文件被篡改。举个例子,现在A向B发送一个文件,数字签名的过程是这样的。
数字签名过程
但是,B公司怎么知道拿到的签名和公钥就是A公司的呢?
为了解决这个问题,有了CA(Certificate Authority),CA的作用就相当于一个第三方认证机构。
A公司的公钥和私钥并不是自己生成的,而是先向CA申请,当然CA也有自己的公钥和私钥,CA的私钥一定是保密级别最高的,这是整个流程运作的基础,CA会用自己的私钥给A公司的公钥和私钥签名,A公司发给B公司的其实也是被CA签名的公钥。
B拿到A的公钥(被CA签名)后,先会使用CA的公钥解密,再将解密后的公钥去解密被A私钥签名的摘要。

HTTPS

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),是一种基于SSL/TLS的HTTP,即所有的HTTP数据都是在SSL/TLS协议封装之上传输的。HTTPS协议在HTTP的基础上,增加了SSL/TLS握手以及数据加密传输,也属于应用层协议。
SSL协议,是一种安全的传输协议,最初是由Netscape在1996年发布,由于一些安全的原因SSL v1.0和SSL v2.0都没有公开,直到1996年的SSL v3.0。TLS是SSL v3.0的升级版,目前市面上所有的HTTPS都是用TLS,而不是SSL。
TLS协议也有一个四次握手的过程,这个阶段是发生在TCP三次握手之后。先不展开说。
建立HTTPS通信的整个过程如下图:
建立HTTPS通信的过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值