转自:微点阅读 https://www.weidianyuedu.com

什么是SSL协议?

SSL协议是一种安全传输协议,SSL是SecureSocketLayer的缩写,即安全套接层协议。该协议最初由Netscape企业发展而来,目前已经成为互联网上用来鉴别网站和网页浏览者的身份,以及在浏览器使用者及网页服务器之间进行加密通讯的全球化标准协议。由于SSL技术已建立到了所有主要的浏览器和WEB服务器程序当中,因此,仅需安装数字证书,或服务器证书就可以激活服务器功能了。

SSL协议能够对信用卡和个人信息提供较安全的保护。SSL是对计算机之间整个会话进行加密的协议。在SSL中,采用了公开密钥和私有密钥两种加密方法。

SSL协议的优势在于它是应用层协议确立无关的。高层的应用协议如HTTP、FTP、Telnet等能透明地建立于SSL协议之上。其在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证我们在互联网上通信的安全。

SSL协议提供的安全服务有:

1)认证用户和服务器,确保数据发送到正确的客户机和服务器;

2)加密数据以防止数据中途被窃取;

3)维护数据的完整性,确保数据在传输过程中不被改变。

SSL的主要目的是在两个通信应用程序之间提供私密信和可靠性。这个过程通过3个元素来完成:

1、握手协议。

握手协议负责协商被用于客户机和服务器之间会话的加密参数。当一个SSL客户机和服务器第一次开始通信时,它们在一个协议版本上达成一致,选择加密算法,选择相互认证,并使用公钥技术来生成共享密钥。

2、记录协议。

记录协议用于交换应用层数据。应用程序消息被分割成可管理的数据块,还可以压缩,并应用一个MAC(消息认证代码);然后结果被加密并传输。接受方接受数据并对它解密,校验MAC,解压缩并重新组合它,并把结果提交给应用程序协议。

3、警告协议。这个协议用于指示在什么时候发生了错误或两个主机之间的会话在什么时候终止。

下面我们来看一个使用WEB客户机和服务器的范例。WEB客户机通过连接到一个支持SSL的服务器,启动一次SSL会话。支持SSL的典型WEB服务器在一个与标准HTTP请求(默认为端口80)不同的端口(默认为443)上接受SSL连接请求。当客户机连接到这个端口上时,它将启动一次建立SSL会话的握手。当握手完成之后,通信内容被加密,并且执行消息完整性检查,知道SSL会话过期。SSL创建一个会话,在此期间,握手必须只发生过一次。当SSL会话过程中出现了问题或端口设置出了问题,就会造成无法使用SSL连接现象。

SSL握手过程步骤:

步骤1:SSL客户机连接到SSL服务器,并要求服务器验证它自身的身份。

步骤2:服务器通过发送它的数字证书证明其身份。这个交换还可以包括整个证书链,直到某个根证书权威机构(CA)。通过检查有效日期并确认证书包含有可信任CA的数字签名,来验证证书。

步骤3:服务器发出一个请求,对客户端的证书进行验证。但是,因为缺乏公钥体系结构,当今的大多数服务器不进行客户端认证。

步骤4:协商用于加密的消息加密算法和用于完整性检查的哈希函数。通常由客户机提供它支持的所有算法列表,然后由服务器选择最安全的加密算法。

步骤5:客户机和服务器通过下列步骤生成会话密钥:

a. 客户机生成一个随机数,并使用服务器的公钥(从服务器的证书中获得)对它加密,然后发送到服务器上

b. 服务器用更加随机的数据(从客户机的密钥可用时则使用客户机密钥;否则以明文方式发送数据)响应。

c. 使用哈希函数,从随机数据生成安全密钥。

SSL协议的优点是它提供了连接安全,具有3个基本属性:

l 连接是私有的。在初始握手定义了一个密钥之后,将使用加密算法。对于数据加密使用了对称加密(例如DES和RC4)。

l 可以使用非对称加密或公钥加密(例如RSA和DSS)来验证对等实体的身份。

l 连接时可靠的。消息传输使用一个密钥的MAC,包括了消息完整性检查。其中使用了安全哈希函数(例如SHA和MD5)来进行MAC计算。

对于SSL的接受程度仅仅限于HTTP内。它在其他协议中曾被表明可以使用,但还没有被广泛应用。

什么是SSL协议 SSL协议的实现方式相关推荐

  1. Https协议/SSL协议

    前言 Https协议是以安全为目标的Http通道,也就是Http的升级安全版.主要是在Http下加入了SSL层(现在主流SSL/TLS),SSL是Https协议的安全基础,Https默认端口号443 ...

  2. 【计算机网络】网络安全 : 运输层安全协议 ( 安全套接字层 SSL | 运输层安全 TSL | SSL 服务 | SSL 安全会话建立流程 )

    文章目录 一.运输层安全协议 二.运输层使用 SSL 前后对比 三.SSL 与 TSL 对比 四.SSL 服务 五.SSL 安全会话建立过程 一.运输层安全协议 运输层安全协议 : ① 安全套接字层 ...

  3. HTTP协议SSL协议HTTPS协议

    文章目录 1.HTTP协议 1.1.HTTP 简介 1.2.HTTP 消息结构 1.3.HTTP 请求方法 1.4.HTTP 响应头信息 1.5.HTTP 状态码 1.6.HTTP协议的优点与缺点 2 ...

  4. 【转】SSL/TLS/WTLS协议原理

    1 SSL(Secure Socket Layer)是netscape公司设计的主要用于web的安全传输协议.这种协议在WEB上获得了广泛的应用. 2 IETF(www.ietf.org )将SSL作 ...

  5. 安全套接字层协议SSL

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

  6. c++使用OpenSSL基于socket实现tcp双向认证ssl(使用TSL协议)代码实现

    相信各位对OpenSSL库已经不陌生了,目前笔者使用这个库实现了RSA.AES加解密和tcp的双向认证功能,下面来看tcp的双向认证. 1.什么是双向认证 简单说双向认证就是:客户端认证服务端是否合法 ...

  7. springboot集成邮箱配置ssl或tls协议

    使用背景 一般基本配置邮箱,默认使用的端口为25端口,使用这个端口不需要我们去配置ssl或tls协议一般都能成功发送邮件.使用中会有一些服务器屏蔽禁用25端口,如阿里服务器.此时就需要切换端口为465 ...

  8. 网络协议--SSL/TLS

    一.简介 SSL(Secure Socket Layer 安全套接层)最初是由网景公司(Netscape)研发,在SSL更新到3.0时,被IETF(互联网工程任务组)标准化后写入RFC, IETF对S ...

  9. WebRTC的ICE之Dtls/SSL/TLSv1.x协议详解

    WebRTC的ICE之Dtls/SSL/TLSv1.x协议详解 WebRTC的ICE之Dtls/SSL/TLSv1.x协议详解 WebRTC的ICE之Dtls/SSL/TLSv1.x协议详解 前言 一 ...

  10. 通过wireshack深刻认识SSL和FTP协议

    通过wireshack这款工具,只够直观的学习,更进一步能够深入了解网络协议. 本文主要涉及内容: FTP的21(传输控制),20(数据)端口 SSL的四次握手过程,公私钥签名并加密的过程 SMTP邮 ...

最新文章

  1. php java session共享_php 函数session_id()思考。实现同服务器下session共享
  2. Docker容器原理及相关知识
  3. 一起来造一个RxJava,揭秘RxJava的实现原理
  4. 创建springboot多模块项目
  5. 西宁a货翡翠,孝感a货翡翠
  6. 使用脚本删除ios工程中未使用图片
  7. python(条件语句和基本数据类型)
  8. 【jQuery笔记Part1】09-jQuery操作css-尺寸
  9. 图书馆管理系统(C语言实现)
  10. 单片机c语言程序设计实训100例 代码,单片机C语言程序设计实训100例——基于8051+Proteus仿真[1]...
  11. 华为服务器系统图标,华为云 服务器图标 visio
  12. TeamViewer三种许可证的区别是什么?
  13. 【编程笔试】美团2021校招笔试-通用编程题第9场(附思路及C++代码)
  14. 英语语法——句子分类
  15. VIA 威盛VL162新款switch数据切换芯片。方案设计
  16. html按钮超链接到微信,技巧|教你给微信聊天文字加上超链接,装逼小技能!...
  17. java 线程池控制多线程_Java多线程开发系列之四:玩转多线程(线程的控制1)...
  18. java 根据点画不规则封闭图形
  19. python 计算给定日期是该年的第几天数
  20. 英语磁带与计算机磁带区别,小学英语教材配听力磁带 家长:谁还用复读机?...

热门文章

  1. (Java) 实现打印菱形图案
  2. 时间复杂度分析:递归算法
  3. IM多人聊天-群聊头像合成方法
  4. 如何制作和发布网页(上)
  5. STM32 之三 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序)
  6. 加路由时提示Network is unreachable的一种解决方法
  7. UML(一)六大关系
  8. 【CTDB】什么是CTDB(Cluster Trivial Database)
  9. 【matlab】 matlab的输入和输出
  10. L1 批判思维 - 独立思考- 破除思维误区 1.1为什么我们很难独立思考