Https|Https — 客户端和服务器端的安全通信

1、互联网安全通信
在开放的互联网上,如果信息明文传输,会带来的风险有:
* 窃听风险:第三方可以获知通信内容
* 篡改风险:第三方可以修改通信内容
* 冒充风险:第三方可以冒充他人身份参与通信
【Https|Https — 客户端和服务器端的安全通信】所以需要通过 **SSL/TLS** 协议解决这三大风险
* 所有信息都是加密传播,第三方无法窃听
* 具有校验机制,一旦被篡改,通信双方会立刻发现
* 配备身份证书,防止身份被冒充
**SSL/TLS**的基本过程是
* 1、客户端向服务器端索要并验证公钥,客户端需要确认服务端的 身份, 这个时候就需要用到数字证书(链接下文)
* 2、双方协商生成"对话密钥”:在客户端发起请求的初始阶段,服务端提供数字证书,客户端验证,这个时候用到的是非对称加密(链接下文),非对称加密的性能消耗比较大,在初始阶段,通信双方交换随机数(共三个随机数,最后一个随机数客户端通过服务端的公钥加密后传给服务端),根据随机数计算出通信密钥,用对称加密方法通信
* 3、双方采用"对话密钥"进行加密通信,在通信过程中,通信内容是经过加密的,如果中途有修改,解密会出现问题,通信就不能正常进行了。在通信过程中,第三方没有对话密钥,所以即使监听到通信内容也不能解密。
2、数字证书 客户端索要服务端证书进行验证,是为了确保服务端身份是可信的,需要验证数字证书是由可信机构颁发的,证书中的域名与实际访问的域名一致。
数字证书由”证书中心"(certificate authority,简称CA)颁发,CA 担保服务端的身份,用CA的私钥对服务端的公钥进行加密,生成 数字证书(Digital Certificate),这样,客户端拿到证书后就会用 CA 的公钥进行解密,验证服务端的身份
3、非对称加密 公钥加密算法是计算机通信安全的基石。wiki中的解释是:公钥加密算法又称非对称加密,在这种密码方法学中,需要一对密钥,一个是私人密钥,另一个则是公开密钥。这两个密钥是数学相关。用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。最常见的是RSA算法。
在客户端服务端通信的模型中,客户端通过服务端的 公钥解密服务端的内容,可以确认服务端的身份,通过服务端的公钥加密需要保密传输的内容,只有服务端使用自己的私钥才能揭秘,保证了通信的安全。
#学习/安全

    推荐阅读