SSL(Secury Sockets Layer)中文名是安全套接层协议,利用数据加密技术保障网络上的数据传输安全。我们都知道HTTP协议,是现在应用最广泛的网络协议,可它是不安全的。还好有HTTPS协议,即安全版的超文本传输协议。其实HTTPS的实现主要依赖于SSL,即在HTTP中加入了SSL层。

关于SSL的工作原理,前文提到SSL是利用了数据加密技术来保障网络数据传输安全的。数据加密技术分为对称加密和非对称加密,常用的用户名/密码加密就是对称加密,SSL则是采用了非对称加密。非对称加密技术是利用一对公钥和私钥来实现的,公钥可以公开但是私钥要保护起来。利用公钥加密的数据只能利用对应的私钥来解密,同样,利用私钥加密的数据只能利用公钥来解密。非对称加密解密过程大致是这样的:假设A与B要传输数据,首先他们都要获得对方的公钥,A先用B的公钥加密数据再用自己私钥加密数据,加密后将数据传输给B,由于只有用B的私钥和A的公钥才能解密即保证了数据传输的安全性又能确定这份数据是A发过来的相当于有A的签章。B拿到加密后的数据先用A的公钥解密再用自己的私钥解密,从而得到明文数据。类似于数字证书的签章与验章。

SSL的握手过程可以理解为一个客户端和服务器获得各自公钥的过程。SSL的握手都是由客户端发起的,过程大致如下:

1.客户端发送消息到服务端,里面携带了客户端的SSL版本、支持的密码对以及支持的数据压缩方法等信息。服务器收到消息也后返回一个消息,携带了选择的密码对和数据方法和一个X.509 V3的SSL数字证书,里面有服务器的公钥。V3版本是需要客户端也验证这个数字证书的。

2.客户端收到消息后,会立即发送一个“数字证书请求”消息给服务端。服务端收到消息后会立即回复一个消息,里面有客户端支持的数字证书类型和可以接受的CA(签章机构)名称。这其实是一个数字证书验证的过程。

3.客户端收到消息后,如果验证不通过,发送一个“没有数字证书”消息,这仅仅是一个警告消息,客户端会让用户自担风险。客户端仍然会用服务器的公钥加密自己的公钥发送给服务器,如果数字证书验证通过,这其中也加密了客户端数字证书。

这样客户端和服务器都知道了对方的公钥,就可以进行数据传输了。

SSL认证有单向和双向两种。

单向认证过程大致如下:

1.客户端发送消息给服务器,服务器收到消息后用自己的私钥加密消息,带上自己公钥一起回复给客户端。

2.客户端收到加密后的消息和服务器的公钥后,即用该公钥解密消息,再用服务器的公钥加密数据发送给服务器,服务器收到消息后用自己的私钥解密数据。

单向认证是不需要客户端的公钥私钥的,即不需要客户端认证。

双向认证过程大致如下:

1.客户端用自己的私钥加密消息并和自己公钥一起发给服务器,服务器收到消息后,先用客户端公钥解密数据,回复消息时候用自己的私钥加密消息并和自己的公钥一起回复。

2.客户端收到加密消息后,可以用服务器的公钥解密,然后发送消息给服务器,先用服务器的公钥加密,再用自己的私钥加密。服务器收到消息后可以用客户端的公钥和自己的私钥解密。

我的理解是双向认证是第一次交互单层加密,第二次交互双层加密。

关于SSL安全套接层协议相关推荐

  1. SSL(Secure Sockets Layer)安全套接层协议详解

    SSL(Secure Sockets Layer)安全套接层协议详解 SSL简介 SSL历史发展 1.诞生 2.更名 3.发展 SSL协议结构 SSL协议结构详解 SSL警告协议 SSL修改密文协议 ...

  2. SSL安全套接层分析

    简介 SSL(Secure Sockets Layer 安全套接层),及其继任者TLS(Transport Layer Security 传输层安全),是为网络通信提供安全及数据完整性的一种安全协议. ...

  3. 安全套接字层协议SSL

    一.安全套接字层协议SSL简介 安全套接字层协议是用于服务器之上的一个加密系统,它可以确保在客户端和服务端之间传输的数据是安全和加密的.要是服务器和客户端使用SSL进行安全通信,服务器必须有: 1.密 ...

  4. 安全套接层Secure Sockets Layer,SSL

    http://zh.wikipedia.org/wiki/%E5%AE%89%E5%85%A8%E5%A5%97%E6%8E%A5%E5%B1%82 安全套接层(Secure Sockets Laye ...

  5. SSL协议和SET协议

    SSL协议和SET协议 --三.安全电子交易的协议 --目前的安全电子交易协议主要有两种,即安全套接层(SSL)协议和安全电子交易(SET)协议. --1.SSL协议 --SSL协议由Netscape ...

  6. OSI网络七层模型和各层协议总结

    OSI网络七层模型: 7应用层: 规定通信协议:为用户的应用程序和各种网络服务之间提供相应的接口 (协议) 常见网络服务:www.Email.FTP, 6表示层: 把己方要发送的数据信息,翻译成对方表 ...

  7. OSI七层协议模型及其协议

    文章目录 一.OSI七层模型是什么?其协议有哪些? 二.TCP/IP四层协议,TCP/IP五层协议,OSI七层协议是什么? 一.OSI七层模型是什么?其协议有哪些? 二.TCP/IP四层协议,TCP/ ...

  8. 网络中的七层协议与TCP/IP五层模型

    socket(套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程 ...

  9. 网络七层协议 五层模型 TCP连接 HTTP连接 socket套接字

    socket(套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程 ...

最新文章

  1. jar打包命令-指定主类一次搞定!
  2. 最年轻院士入职浙大,近两年浙大引进45位高层次人才~
  3. ajax将数据显示在class为content的标签中_python selenium:自动化爬取某鱼数据
  4. ctr 平滑_CTR平滑的原理,包懂!!!附代码
  5. 12333新农合网上查询_新农合医保查询缴费平台|新农村医疗保险网上缴费平台
  6. linux服务器指示灯,【转】明明白白你的Linux服务器——故障篇 | 旺旺知识库
  7. fopen、fwrite使用
  8. C 语言,你真的懂递归了吗?
  9. Linux Shell脚本入门教程系列之(八)Shell printf命令详解
  10. CloudFoundry基础知识之理论篇
  11. 1078. Hashing (25)-PAT甲级真题
  12. 【Java开发规范】hashCode 和 equals 的处理规则
  13. linux三剑客应用到工作中,LINUX 三剑客老大(AWK) 日常工作总结(示例代码)
  14. Strtus2入门简单框架搭建
  15. 怎么从零开始自己做网站?
  16. ios 纯代码怎么适配ipad_iPad横竖屏下的代码适配
  17. 手机上有哪些可以记录生日倒计时天数的软件?
  18. 联机棋类游戏《憋尿罐》实现源码
  19. acs包括哪几种_描写分为哪几种分别是什么
  20. 跨考计算机复试自我介绍,跨考生复试自我介绍

热门文章

  1. 使用html tidy转换出现error:can't open,Notepad++使用Tidy2格式化HTML文档的具体方法
  2. 麒麟系统开发笔记(十):在国产麒麟系统上使用gdb定位崩溃异常方法流程以及测试Demo
  3. 给JIRA的工作流的每一个动作设置权限
  4. android 网格界面,Android界面布局(4)—网格布局
  5. iOS 里RGB 配色 UIColor colorWithRed
  6. vue3组件篇 Select
  7. 飞信调试获取首次登陆验证码
  8. 变容二极管调频器实现线性调频的条件是变容二极管的结电容变化指数γ为
  9. 如何给没网的台机(pve)装rtl8821cu无线网卡驱动
  10. BibTeX 生成自定义的参考文献