HTTPS学习笔记

  1. 云栖社区>
  2. 博客>
  3. 正文

HTTPS学习笔记

技术小牛人 2017-11-15 15:36:00 浏览925
展开阅读全文

1、对称加密算法与非对称加密算法

    (1)对称加密算法中,加密秘钥和解密秘钥相同,也就是加密和解密使用同一个密钥

    (2)非对称加密算法中,加密秘钥和解密秘钥不同

2、公钥密码体制

        公钥密码体制包含公钥、私钥、加密算法三部分,由公钥加密的内容只能由私钥解密。通常,把公钥和加密算法公开,私钥自己保留。它也是一种非对称加密方式。

3、RSA加密算法

        RSA是一种公钥加密算法,RSA的公钥和私钥都可以用来加密和解密,但是用其中一个加密后的内容必须用另一个才能解密。

4、消息摘要

        消息摘要可以将任意长度的消息的短消息,改过程不可逆,消息摘要通常用在数字签名中。

5、使用公钥机制存在问题

        用于公钥是公开的,客户端无法判断改公钥是否是他希望访问的服务器的公钥,其中存在冒用的风险

6、数字证书

        现实世界中,每个人可以有一张***来证明自己的身份,在***上有签发机关、有效期限、还有个人的相关信息。我们信任***签发机关即政府机构的公信力,因此只要验证***是有效的,就可以相信这个人和***上的描述一致。同理,数字证书就是网络世界中个人或者组织的一个***,其签证机关是正式管理机构CA。CA用自己私钥对用户身份信息进行签名,改签名和用户身份信息一起就组成了数字证书。数字证书中主要包括用户的公钥、姓名、正式机构、证书有效期、数字签名等等。总结起来就是:证书是谁发的?发给谁?证书有效期多少?

7、如果通过证书验证用户身份

    (1)用CA公钥解密证书中的数字签名得到消息摘要

    (2)用哈希算法对证书红用户信息做消息摘要

    (3)比较这两个消息摘要是否相同,如果相同,则可以信任改证书,从而可以信任该证书中的公钥及用户身份

8、HTTPS交互过程简述

        简单的来讲,就是使用非对称加密算法保证对称加密密钥的安全传递,然后使用对称加密来保证数据传输过程中的安全性。 

        HTTPS的基础是SSL/TLS,SSL/TLS协议的基本过程是这样的:

        (1)客户端向服务器端索要并验证公钥

        (2)双方协商“会话秘钥”

        (3)双方使用“会话秘钥”通信

        既然,用到了公钥密码体制,如何保证公钥不会被篡改呢?

        使用数字证书,只要证书是可信的,公钥就是可信的。

        稍微具体一点的过程是这样的:

        (1)客户端问候

        客户端向服务端发送请求,发送的主要内容包括:支持的协议及版本、支持的加密算法、生成一个随机数

        (2)服务端问候

        服务端响应的内容主要包括:确认的协议及版本、确认的加密算法、服务器证书、生成一个随机数

        (3)客户端回应

        客户端校验发过来的证书,然后客户端客户端使用第1步和第2步中的随机数再生成一个随机数,我们称之为premaster_secret,然后由这三个随机数生成会话秘钥,称之为master_secret。最后用证书中的公钥将premaster_secret加密发给服务端。

        (4)服务端回应

            服务端收到premaster_secret之后,计算会话秘钥,秘钥交换协商成功,最后服务器给客户端一个回应,此后的同学就使用这个会话密码进行对称加密。


参考:

HTTPS研究(2)—分解HTTPS连接建立过程

SSL/TLS协议运行机制的概述

    

本文转自   手不要乱摸  51CTO博客,原文链接:http://blog.51cto.com/5880861/1754847

网友评论

登录后评论
0/500
评论
技术小牛人
+ 关注