过程:
Client Hello信号,客户端发送随机数字+自己可以支持的加密方法。
Server Hello
Server发送证书和公钥给客户端,并确定客户端和服务端使用的算法
Server发送算法所需的参数,告诉客户端要转换成对称秘钥
Client验证CA证书,并且交换参数
Q:ssl层加密握手,client端发送client hello时,为什么要带上一个随机数?这个随机数起什么作用?
Q:为什么Server端要转换成堆成秘钥,不转换会怎么样
使用非对称加密方式去建立连接,使用对称加密方式来传输数据
Q:为什么是这么设计
因为防止篡改,非对称加密是不可逆的,即私钥可以推出公钥,但公钥推不出私钥
Q:公钥和私钥,到底哪个是用来加密的,哪个是用来解密的
A:公钥用于加密;私钥用于解密
私钥用于签名;公钥用于验证
为了实现数据在网络传输中内容不公开,我们需要对数据进行数据加密。而加密的其中 一种方法是使用RSA算法,RSA的作用是生成一个公钥,和一个私钥。
公钥是公开的,私钥只能自己拥有,不然别人拿到了你的私钥,就能解密传输过来的数据了。
1.获取服务器发送过来的数据
那么首先,别人想传输数据给我,先用公钥去加密,然后通过网络传输过来,我再用私钥去解密
2.向服务器发送数据
向服务器发送数据,服务器需要验证这个数据的数据源是不是真的是我发送过去的而不是小明,那么就要用到数字签名