为什么需要SSL?
- 明文不安全
- 明文传输的用户名和密码被侦听到
- 实验:使用wireshark抓包
- Phishing(钓鱼攻击):
- http://item.taobao.com/
- http.//item.taobao/auction.com/
什么是SSL?
- 1994.网景公司(Netscape)
- SSL位于传输层之上,应用层之下
- 具有良好的接口,为上层应用提供服务
- e.g.
- http→https
- ftp→sftp
SSL的功能:在通信双方之间提供保密性和完整性
- 服务器认证
- 用户身份认证(Phishing)
- 加密通信(明文传输)
SSL协议
- SSL握手协议:建立通信双方的可靠连接
- 验证服务器
- 验证用户(可选)
- 选择加密算法
- 确定会话密钥
- SSL记录协议:传输数据块
SSL工作过程
验证
- 网站提供证书,浏览器验证
加密
- 协商会话算法和会话密钥
证书
- 获得证书过程
- 服务器向CA提交证书请求
- CA验证公司身份有效,向服务器签发证书
- 证书中包含:
- 证书颁发者
- 证书所有者(申请证书的公司或机构,如服务器域名)
- 证书所有者的公钥
- 公钥↔私钥:加解密的密钥是可以互换的,不论用哪个密钥加密,另一个密钥都可以实现解密(通过公钥加密的内容只能通过私钥解密,通过私钥加密的的内容只能通过公钥解密)
- 公钥
(1)定义:公开的密钥
(2)说明:任何人都可以使用公钥进行加密,把密文发给公钥的所有者
- 私钥
(1)说明:只有私钥的拥有者可对公钥加密内容进行解密(网站需保管好自己的私钥)
- 只要服务器将自己的公钥发出去,任何用户都可以使用这个公钥把自己想发给服务器的信息加密,譬如可以传一下生成加密密钥(对称密钥)的参数。服务器收到这个加密的参数信息之后,就可以使用自己的私钥解密,然后和用户协商出来一个对称密钥,用于之后的会话加密。
-
-
- 证书有效期
- ……
数字签名(公钥加密,私钥签名)
非对称加密的应用,数字签名是只有信息的发送者才能产生的内容,这段内容同时验证信息的产生者以及保证信息内容没有被篡改- 使用私钥加密没有保密性可言
- 使用私钥加密的内容,只有公钥可以解开
- 用公钥解开私钥加密的内容,说明了密文是由公钥所有者加密,也相当于公私钥所有者在公开声明“这段信息是我发出去的”,即签名,起担保作用
- CA机构给服务器签发证书:服务器把自己的证书提交给CA机构,CA验证后使用自己的私钥给该证书签名(私钥加密)
- 服务器把加密后的证书交给浏览器
- 浏览器本身已保存相关CA信息(包括CA公钥)。浏览器收到服务器的证书后,使用CA的公钥给该证书解密,如果解密成功,而且证书中的域名和浏览器中的域名相对应,那么说明该网站是真正的网站
证书签发流程(整理、必考)
- 在此之后,浏览器和服务器进行密钥协商。
- 因为浏览器成功解密了服务器的证书,而证书中包含服务器的公钥,所以浏览器可以使用服务器的公钥对协商数据进行加密。
A:因为RSA的加密和解密过程都是幂乘运算,而幂乘运算非常消耗内存,所以改采用对称加密算法(位操作)进行数据传输。 *注:RSA算法一般只用于身份认证、密钥协商,很少用于数据加密。
非对称加密
甲:任意想一个三位数,然后把这三位数乘以91,把乘积的末三位告诉我。 乙:193。 甲:乙想的数是123。 | ||
原理:abc | , | |
例:123 | ||
X(11193)乘以11的末三位是什么,只与X的末三位有关 |
- 从密码学的角度来看,相当于是“对方”和“我”两人要交换一个信息123。
- 但是网络是不安全的,所以“对方”首先用密钥91来乘以123。然后将加密出来的数据193在网络上传输。“我”收到密文之后,使用另一个密钥11来解密。
- 在这个系统中,加解密的密钥是不同的,就是非对称加密。
e.g. 浏览器.管理证书 |