Secure Sockets Layer 安全套接层
不使用SSL/TLS,信息会以明文传播,带来了三个风险。
1、窃听风险
2、篡改风险
3、冒充风险
SSL/TLS就是为了解决这三个问题,希望达到
所有信息都是加密传播
具有检验机制,一旦被篡改,通信双方会被发现
配备身份证书,防止身份被冒充
目前使用的主流是TLS 1.0,接下来是SSL 3.0
基本运行过程
基本思路:采用公钥加密法,客户端先向服务器端索要公钥,然后公钥加密信息,服务器收到密文后,用自己的私钥解密。
1、如何保证公钥不被篡改
将公钥放在数字证书中,只要证书是可信的,公钥就是可信的。
2、公钥加密计算量太大,如何减少耗用时间?
每一次session,客户端和服务端都生成一个对话秘钥(session key),用它来加密信息。由于对话秘钥是对称加密的,所以运算速度非常快。而服务器公钥只用于加密“对话秘钥本身”,这样就减少了加密运算的消耗时间。
(个人感觉非常巧妙。。。)
所以SSL/TLS的基本运行过程是这样的:
1、客户端向服务端索要并验证公钥。
2、双方协商生成“对话秘钥” session key
3、双方采用session key进行加密通信。
前两步又称为握手阶段
过程比较复杂,包括SSL版本确认,随机数、支持的加密方法、包含公钥的数字证书等等
网友评论