参考文章:https://segmentfault.com/a/1190000002554673
SSL:(Secure Socket Layer,安全套接字层)
TLS:(Transport Layer Security,传输层安全协议)
相关英语解释:
record layer 记录层
handshake layer 握手层
CipherSuites 密码套件
fragmentation 碎片
session 阶段
compression 压缩
authentication 认证
Change cipher spec 更改密码规则
SSL位于传输层与应用层之间,用于Web浏览器和服务器之间的身份认证和加密数据传输。同时SSL可以分成两层,ssl记录层和ssl握手层。ssl记录层位于可靠的传输之上(比如TCP),提供压缩,认证,加密等功能。ssl握手层位于ssl记录层之上,提供数据传输前的身份验证,协商算法,交换密钥等功能。
TLS用于两个应用程序之间提供保密性和数据完整性。可以理解为是ssl的后续版本,也是由两层组成,tls记录层,和tls握手层,同理,tls记录层位于可靠的传输协议之上。
综上所述,SSL/TLS提供的服务有:
1.认证用户和服务器,确保消息发送正确
2.加密数据,防止被窃取
3.保证数据传输的完整性
补充数据传输在OSI七层模型中的流程:
信息 ——>应用层包头(相关应用使用的协议,来规定应用如何去通信)——>表示层包头(决定数据编码格式,如图片的编码格式,视频等等)——>会话层包头(两端实体建立会话,包括意外终端该如何解决,断点续传么)——>传输层包头(切割文件为小段,标注端口与应用程序,流量设置等等)——>网络层包头(解决如何到达目的地的问题,路由选择)——>数据链路层包头(找到机器具体的位置,根据机器的网卡等上网设备)——>物流层(将上方的一切,编码成01的比特流传输)——>
同理,接受方就是一层一层的解开包头,最后到应用层,展现信息给相关用户。
补充加密方式:非对称加密
我理解的非对称加密方式:(个人理解,有错误请指出)
AB两人要通信,A先生成两个钥匙,一个是公钥,一个是私钥,B再生成两个钥匙,一个公钥,一个私钥。
然后A和B要通信,A向B发送一个信息,内容是“我准备和你通信,这个是我的公钥”,这个信息上有A的公钥。
接着,B收到了信息,同时也有了A的公钥,B回复A:“我收到了你的信息和钥匙,我把我的公钥也给你”
就这样,A有A的私钥和B的公钥,B有B的私钥和A的公钥。
这样就算是建立了加密通道。(个人理解)
于是,开始了正式通信:
A发送信息:“这是我的账号密码”,同时因为A有B的公钥,所以A用B的公钥给信息加密,这个加密后的信息,只有B的私钥才能解密。而拥有B私钥的只有一个人,那就是B本人。所以,即使A发给B的加密信息被截取了,中间人也没办法解密,因为他没有B的私钥,没办法解密B的公钥加密过后的信息。
B接收到A的信息后,用自己的私钥开始解密。得到A的账号密码。反过来,由于B有A的公钥,所以B也可以用同样的方法发送加密信息。
嗯,结合了上面的图,我这样理解实际上还是存在一些问题的,但是应该就是这样的道理,只不过不是说一定A和B都有一对密钥。但是A和B之间的算法比较复杂,目前,这样理解更适合我。