Https总结

1.HTTP协议的不足

 HTTP1.x在传输数据时,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份,存在的问题如下:

  • 通信使用明文(不加密),内容可能会被窃听;

  • 不验证通信方的身份,有可能遭遇伪装;

  • 无法证明报文的完整性,所以有可能已遭篡改

2.安全的HTTP版本应该具备的几个特征:

  • (1) 服务器认证(客户端知道它们是在与真正的而不是伪造的服务器通话);

  • (2) 客户端认证(服务器知道它们是在与真正的而不是伪造的客户端通话);

  • (3) 完整性(客户端和服务器的数据不会被修改);

  • (4) 加密(客户端和服务器的对话是私密的,无需担心被窃听);

  • (5) 效率(一个运行的足够快的算法,以便低端的客户端和服务器使用);

  • (6) 普适性(基本上所有的客户端和服务器都支持这些协议);


3.HTTPS的关键技术:

HTTPS协议的主要功能基本都依赖于TLS/SSL协议,

提供了身份验证、信息加密和完整性校验的功能,

可以解决HTTP存在的安全问题


4.使用具体的流程如下:

  • (1) 服务器的运营人员向数字证书认证机构(CA)提出公开密钥的申请;

  • (2) CA通过线上、线下等多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等;

  • (3) 如果信息审核通过,CA会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。
    证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构CA的信息、有效时间、证书序列号等信息的明文,同时包含一个签名;
    签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用CA的私钥对信息摘要进行加密,密文即签名;

  • (4) 客户端在HTTPS握手阶段向服务器发出请求,要求服务器返回证书文件;

  • (5) 客户端读取证书中的相关的明文信息,采用相同的散列函数计算得到信息摘要,然后,利用对应CA的公钥解密签名数据,对比证书的信息摘要,如果一致,则可以确认证书的合法性,即公钥合法;

  • (6) 客户端然后验证证书相关的域名信息、有效时间等信息;

  • (7) 客户端会内置信任CA的证书信息(包含公钥),如果CA不被信任,则找不到对应CA的证书,证书也会被判定非法。

在这个过程注意几点:

  • (1) 申请证书不需要提供私钥,确保私钥永远只能被服务器掌握;

  • (2) 证书的合法性仍然依赖于非对称加密算法,证书主要是增加了服务器信息以及签名;

  • (3) 内置CA对应的证书称为根证书;颁发者和使用者相同,自己为自己签名,叫自签名证书;

  • (4) 证书=公钥+申请者与颁发者信息+签名;


5.HTTPs的工作原理:
注意,为了更好的区分明文和密文,用【AA】代表AA被加密,AA 代表正常未加密

1.client 发出请求

2.server 收到请求,并自己生成一对密钥,即 公钥S 和 私钥S

3.server 把生成的 公钥S 传递给 client (除了 公钥S ,还有很多额外信息)

4.client 收到 公钥S后进行判断,若无效,弹出警告,否则生成一串随机数,我们称之为 私钥C ,然后 client 用 server 传过来的 公钥S 对该随机数加密,形成【私钥C】

5.client 把【私钥C】传递给 server

6.server 收到【私钥C】,用 私钥S 把【私钥C】解密成私钥C,然后把需要传递的数据用 私钥C 进行加密

7.server 把【数据】传递给 clien

8.client 收到【数据】,用 私钥C 解密,完成一波收割


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值