HTTPS协议学习总结
二:客户端与服务端如何建立HTTPS协议连接?
三:证书、加密协议、信息摘要、签名算法概念解释与关系梳理
四:低版本操作系统作为客户端发送HTTPS失败分析
五:参考资料
HTTPS协议有两部分组成:HTTP + SSL / TLS,一般来说,SSL主要完成两件事:身份认证和数据加密 ,身份认证保证客户端请求服务端是真实可信的,数据加密保证数据传递的安全性,SSL协议在TCP协议和HTTP协议之间(HTTP->SSL->TCP->IP),第一次身份认证采用非对称加密,后续握手环节采用对称加密机制(节省性能开支)。
1:Server部署HTTPS(通过WEB服务器导入证书),这份证书包含了一对公钥和私钥,Client请求 Server,Server响应给Client证书信息;
2:Client的TLS验证证书信息(颁发机构、有效期、公钥有效性),验证失败做安全提示,验证成功 则生成一个随机值,然后用证书对随机值加密,传给Server(随机值用于后续连接的加解密凭证);
3:Server用私钥解密得到随机值,然后把需要传递的数据通过该值做对称加密,后续的数据交换采 用同样方式处理;
3:SHA/SHA2
RSA256:
客户端证书和TLS协议在WEB服务器配置,客户端证书也可以用程序自定义生成和使用,信息摘算法在操作系统的组件中(WIN系统:Win32 crypto service CryptSignHash 函数)。
国际惯例是2016年1月1日起停止签发SHA1签名算法的各种证书,低版本操作系统(XP2003 SP2内、 Server2003 SP2内)不支持SHA256信息摘要算法,客户端请求服务端(使用SHA2)就会超时错误,解决方案是给客户端系统打补丁(KB968730或KB938397或SP3补丁);
HTTPS协议学习总结的更多相关文章
- HTTPS协议学习笔记
在前一段时间准备面试的时候,面试官反复提到了HTTPS这个协议.我只是单纯的知道,HTTPS是安全的应用层协议 是HTTP更安全的版本,通过对称密钥加密.但是具体的其他的,可能我不太了解.今天就专门抽 ...
- HTTPS协议学习
http的缺点:(其他一些未加密的协议中也存在) 通信使用明文(不加密),内容可能会被窃听 不验证通信方的身份,因此有可能遭遇伪装 无法证明报文的完整性,所以有可能已遭篡改 TCP/IP是可能被窃听的 ...
- 网络协议学习笔记(六)http和https
概述 之前讲解了传输层的相关知识,现在讲解一下关于应用层的知识,主要是大家所熟悉的http和https,这2中是咱们最熟悉的协议了,但是也是最不熟悉的协议. HTTP协议:看个新闻原来这么麻烦 HTT ...
- https、ssl、tls协议学习
一.知识准备 1.ssl协议:通过认证.数字签名确保完整性:使用加密确保私密性:确保客户端和服务器之间的通讯安全 2.tls协议:在SSL的基础上新增了诸多的功能,它们之间协议工作方式一样 3.htt ...
- 深入理解http/https协议
深入理解HTTP协议(转) http协议学习系列 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(Wo ...
- HTTP协议学习
面试过程中又一个常见的问题,http协议,因为做服务器开发如果用http协议的话,现在各种开源软件都封装好了,python中只需要简单的继承定义好的类,重写get或者post等方法,几行代码就可以搭建 ...
- http协议学习系列
深入理解HTTP协议(转) http://www.blogjava.net/zjusuyong/articles/304788.html http协议学习系列 1. 基础概念篇 1.1 介绍 H ...
- HTTPS的学习
HTTPS的学习总结 HTTPS学习总结 简述 HTTPS对比HTTP就多了一个安全层SSL/TLS,具体就是验证服务端的证书和对内容进行加密. 先来看看HTTP和HTTPS的区别 我用AFN访问 ...
- 关于HTTP协议学习(三)
一,目录结构 HTTPS HTTP/2 HTTP 安全 HTTP 面试 HTTP 爬虫 HTTP 资源 HTTP 抓包工具及教程 Chrome HTTP 插件 HTTP 代理服务器 HTTP 图书 二 ...
随机推荐
- getsockopt/setsockopt 函数说明
[ getsockopt/setsockopt系统调用] 功能描述: 获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选 ...
- 【Hadoop学习】Apache HBase项目简介
正在撰写,稍后来访……
- 让一个WebRole支持多个站点
在参考Configure a Web Role for Multiple Web Sites和Tips for Publishing Multiple Sites in a Web Role两篇文章后 ...
- HW6.3
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- Android 开发Project中各个目录和文件的介绍
如上图标号: 存放java文件的文件夹“src”: 由aapt工具根据应用中的资源文件自动生成的R.java文件,以及buildConfiger.java文件,这两个文件最好不要去修改: 存放各种资源 ...
- setResult()设置无效,onActivityResult没有被调用
情况1 呃,被坑了几个小时,后来发现,在调用setResult的时候,requestCode随便传了个Activity的RESULT_OK,而这个常量的值是-1,导致onActivityResult没 ...
- Android实例-操作sqlite数据之自建导航(XE8+小米2)
相关资料: 源文:http://blog.sina.com.cn/s/blog_77691fb90101g9hh.html help://embarcadero.rs_xe5/rad/Mobile_T ...
- 异步网页采集利器CasperJs
在采集网页中,我们会经常遇到采集一些异步加载页面的网页,我们通常用的httpwebrequest类就采集不到了,这个时候我们通常会采用webbrowser来辅助采集,但是.net下自带的webbrow ...
- Go: using a pointer to array
下面的不是指针指向数组,而是指针指向Slice I'm having a little play with google's Go language, and I've run into someth ...
- iOS开发Block的使用
Block 是从 iOS4引入的,在日常开发中,会经常用到Block.特别是在多线程中,Block的用处更广泛.而且,Block不仅可以接收参数,其本身也可以作为参数,因此,Block的功能非常强大. ...