https就是在http上面加了一层SSL/TLS协议,在http站点上部署SSL/TLS数字证书就变成了https。
信任主机的问题
采用https的服务器必须从CA申请一个用于证明服务器用途类型的证书。该证书只有用于对应的服务器的时候,客户端才信任此主机。
所以所有的银行系统网站,关键部分应用都是https的。客户通过信任该证书,从而信任了该主机。
不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。
1、第三方可以获知通信内容。
2、第三方可以修改通信内容。
3、第三方可以冒充他人身份参与通信。
SSL/TLS协议
1、所有信息都是加密传播,第三方无法获知通信内容。
2、具有校验机制,一旦被篡改,通信双方会立即发现。
3、配备身份证书,放置身份被冒充
架设SSL安全站点关键要具备以下几个条件
1、需要从可信的证书办法机构CA获取服务器证书。
2、必须在WEB服务器上安装服务器证书。
3、必须在WEB服务器上启用SSL功能。
4、客户端(浏览器端)必须同WEB服务器信任同一个证书认证机构,即需要安装CA证书。
一、公钥私钥
1、公钥和私钥成对出现
2、公开的密钥叫公钥,只有自己知道的叫私钥
3、用公钥加密的数据只有对应的私钥可以解密
4、用私钥加密的数据只有对应的公钥可以解密
对称算法:加密过程和解密过程是对称的,用一个密钥进行加密和解密。
非对称加密:使用公私钥的算法
基本的运行过程
SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。
这里有两个问题。
如何保证公钥不被篡改?
解决方法:将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。
公钥加密计算量太大,如何减少耗用的时间?
解决方法:每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。
由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。
SSL/TLS协议的基本过程是这样的:
1、客户端向服务器端索要并验证公钥。
2、双方协商生成"对话密钥"。
3、双方采用"对话密钥"进行加密通信。