面试题-------SSL协议简介
SSL协议简介
SSL简介
Secure Socket Layer,为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
SSL协议提供的安全通道有以下三个特性:
机密性:SSL协议使用密钥加密通信数据。
可靠性:服务器和客户都会被认证,客户的认证是可选的。
完整性:SSL协议会对传送的数据进行完整性检查。
SSL的握手与密钥协商过程
基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程。
TLS/SSL握手过程
(1).client_hello
客户端发起请求,以明文传输请求信息,包含:版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩展字段等信息。
ClientHello 客户发送CilentHello信息,包含如下内容:
(1)客户端可以支持的SSL最高版本号
(2)一个用于生成主秘密的32字节的随机数(random_C)。(用于生成主密钥)
(3)一个确定会话的会话ID。
(4)一个客户端可以支持的密码套件列表。
(5)一个客户端可以支持的压缩算法列表。
(2).server_hello+server_certificate+sever_hello_done
l server_hello
服务端返回协商的信息结果,包括选择使用的协议版本 version,选择的加密套件,选择的压缩算法、随机数 random_S 等,其中随机数用于后续的密钥协商(用于产生主密钥);
l server_certificates
服务器端配置对应的证书链(公钥放在证书中),用于身份验证与密钥交换;
l server_hello_done
通知客户端
server_hello 信息发送结束;
(3).证书校验
客户端验证证书的合法性,如果验证通过才会进行后续通信,否则根据错误情况不同做出提示和操作,合法性验证包括如下:
证书链的可信性、证书是否吊销、有效期
、域名
(4).client_key_exchange+change_cipher_spec+encrypted_handshake_message
l client_key_exchange
合法性验证通过之后,客户端计算产生随机数字 Pre-master,并用证书公钥加密,发送给服务器;
l 此时客户端已经获取全部的计算协商密钥需要的信息:两个明文随机数 random_C 和 random_S 与自己计算产生的 Pre-master,计算得到协商密钥;enc_key=Fuc(random_C,
random_S, Pre-Master)
l change_cipher_spec
客户端通知服务器后续的通信都采用协商的通信密钥和加密算法进行加密通信;
l encrypted_handshake_message
结合之前所有通信参数的 hash 值与其它相关信息生成一段数据,采用协商密钥 session secret 与算法进行加密,然后发送给服务器用于数据与握手验证;
(5).change_cipher_spec+encrypted_handshake_message
l 服务器用私钥解密加密的 Pre-master
数据,基于之前交换的两个明文随机数 random_C 和
random_S,计算得到协商密钥:enc_key=Fuc(random_C,
random_S, Pre-Master);
l 计算之前所有接收信息的 hash 值,然后解密客户端发送的 encrypted_handshake_message,验证数据和密钥正确性;
l change_cipher_spec
验证通过之后,服务器同样发送 change_cipher_spec 以告知客户端后续的通信都采用协商的密钥与算法进行加密通信;
l encrypted_handshake_message
服务器也结合所有当前的通信参数信息生成一段数据并采用协商密钥 session secret 与算法加密并发送到客户端;
(6).握手结束
客户端计算所有接收信息的 hash 值,并采用协商密钥解密
encrypted_handshake_message,验证服务器发送的数据和密钥,验证通过则握手完成;
(7).加密通信
开始使用协商密钥与算法进行加密通信。
数字证书
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。
面试题-------SSL协议简介的更多相关文章
- 面试题-----ICMP协议简介
ICMP协议简介 l ICMP网际控制报文协议,通过它可以知道故障的具体原因和位置. l 由于IP不是为可靠传输服务设计的,ICMP的目的主要是用于在TCP/IP网络中发送出错和控制消息. l ...
- 【转】SSL协议、SET协议、HTTPS简介
一.SSL协议简介 SSL是Secure Socket Layer的缩写,中文名为安全套接层协议层.使用该协议后,您提交的所有数据会首先加密后,再提交到网易邮箱,从而可以有效防止黑客盗取您的用户名.密 ...
- 加密解密(4)SSL协议及HTTPS握手过程
SSL协议 简介 SSL (Secure Sockets Layer 安全套接层)是一个安全协议,它提供使用 TCP/IP 的通信应用程序间的隐私与完整性.因特网的 超文本传输协议 (HTTP)使用 ...
- HTTPS协议简介
一.HTTPS简介 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 HTTP 请求跳转成 HTTPS.本文重点介绍 HTTPS 协议, 并简单介绍部署全站 HTTPS 的意义. HTTPS ...
- HTTP 协议简介
HTTP 协议简介 博客分类: acl开发--HTTP协议篇 网络协议http协议 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是 ...
- SSL协议的握手过程
SSL握手的目的 第一,客户端与服务器需要就一组用于保护数据的算法达成一致. 第二,它们需要确立一组由那些算法所使用的加密密钥. 第三,握手还可以选择对客户端进行认证. SSL 握手概述 SSL 握手 ...
- 浅析nodeJS中的Crypto模块,包括hash算法,HMAC算法,加密算法知识,SSL协议
node.js的crypto在0.8版本,这个模块的主要功能是加密解密. node利用 OpenSSL库(https://www.openssl.org/source/)来实现它的加密技术, 这是因为 ...
- Fiddler--一、HTTP协议简介
在学习Fiddler之前,最好先学习一下HTTP协议. HTTP协议简介 什么是HTTP协议 超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端 ...
- MODBUS-RTU通讯协议简介
MODBUS-RTU通讯协议简介 什么是MODBUS? MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司 的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规 ...
随机推荐
- Java性能分析之线程栈详解与性能分析
Java性能分析之线程栈详解 Java性能分析迈不过去的一个关键点是线程栈,新的性能班级也讲到了JVM这一块,所以本篇文章对线程栈进行基础知识普及以及如何对线程栈进行性能分析. 基本概念 线程堆栈也称 ...
- hbase 知识点
hbase 教程:http://www.yiibai.com/hbase/ mac下hbase安装:https://www.jianshu.com/p/510e1d599123 HBase是建立在Ha ...
- nginx定制header返回信息模块ngx_headers_more
http://www.ttlsa.com/nginx/nginx-custom-header-to-return-information-module-ngx_headers_more/ 一. 介绍n ...
- php取两个整数的最大公约数算法大全
php计算两个整数的最大公约数常用算法 <?php//计时,返回秒function microtime_float (){ list( $usec , $sec ) = explode ( &q ...
- windows7 64位下git和tortoisegit的安装和使用
githttps://github.com/git-for-windows/git/releases tortoisegit安装下载https://tortoisegit.org/download/ ...
- Servlet容器请求处理
红色部分为本章所述模块 所讲述的请求流程模块,大家已经很清楚了.那怎么给大家去讲的更清晰,大家理解的更容易呢?当然是,带着问题去学习,吸收或许会更快些啦.:) 开篇之前,给大家提以下几个问题,这些问题 ...
- 关于seo优化的核心思想
简单说下,针对网页检索结果进行评估,主要是围绕精确率和召回率进行,具体如下:1.相关性:query与结果说的是不是一回事2.需求强度:抓住主要需求3.丰富程度:详细全面4.有效性:能否真正满足5.时效 ...
- jmeter 参数化方法
1.csv 看异步图书 JMeter实战60页
- WebForm Response和Request以及Cookie
Session:每一台电脑访问服务器,都会是独立的一套session,key值都一样,但是内容都是不一样的 以上所有内容,都跟cookies一样, 内置对象:用于页面之间的数据交互 为什么要使用这么内 ...
- Python 天气预报+微信
""" Description: 需要提供以下三个信息,在申请到的微信企业号当中可以找到 agentid corpid corpsecret Author:Nod Dat ...