一、加密方式
对称加密
只要一把密匙,即可以对内容加密,也可以对内容解密。
非对称加密
- 有两把密匙,一把公匙、一把私匙;公匙加密的内容只有私匙能加密;私匙加密的内容只有公匙能加密;
- 公匙用作公开;私匙私有
摘要
- 把一段内容通过hash算法加密,生成一个字符串,这个过程称为生成摘要。
- 这个过程是单向的,只能内容生成字符串;不能字符串反推内容
- 不同的内容生成不同的字符串
PS: 一般利用这个特性,来保证内容在传递前后没有被修改过(修改后摘要会变)
数字签名
也就是在摘要的基础上,再对摘要进行非对称加密;这样摘要就不改动了。
二、http 与 https
为什么会https 而不用(或少用http)?
- 两个字:安全
- http采用明文传输,在传输过程中,可以通过抓包获取信息内容,不安全
https怎么做到安全的?
简单来讲:就是在http协议层 和 tcp 传输层之间,套接一个安全层(tls/ssl)
具体请求过程呢?
- 第一步:客户端请求服务端,服务端回传证书
- 第二步:客户端验证证书真伪后,利用证书上服务端的公匙,对自己创建的一个对称加密密匙加密后,传给服务端
- 第三步:服务端拿到这个加密内容后,用自己的私匙解密加密内容,得到对称加密密匙
最后,双方通过这个协商出来的对称加密密匙通信
PS: 这个过程是一个协商出的过程,由一开始的非对称加密,到面的对称加密
证书上都有些啥内容?
- CA证书机构的名字
- 证书本身内容的数字签名
- 服务器端公匙
- 证书的hash加密算法
根证书
- 指证书机构本身也需要一个证书;证书自己这个机构是合法的
- 这个根证书就是指,证书机构CA自己的证书
- 浏览器会把这些CA机构的证书(根证书)内置到浏览器中
浏览器如何去鉴别从服务器端传回的证书?
- 如果证书名称,在内置的证书中压根不存在,非法
- 如果证书名称存在,但证书上数字签名,浏览器用该ca的公匙不能解密,非法
- 如果证书名称存在,对数字签名能解密,证书上服务器端公匙被替换,浏览器用证书上hash算法加密证书内容得到摘要,和数字签名解密后内容做对比,会不一致,非法
网友评论