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之后,计算会话秘钥,秘钥交换协商成功,最后服务器给客户端一个回应,此后的同学就使用这个会话密码进行对称加密。
参考: