文章转自 https://blog.csdn.net/dfsaggsd/article/details/50910999

SSL

1.        安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议。

2.    SSL协议的三个特性

Ø  保密:在握手协议中定义了会话密钥后,所有的消息都被加密。

Ø  鉴别:可选的客户端认证,和强制的服务器端认证。

Ø  完整性:传送的消息包括消息完整性检查(使用MAC)。

3.    SSL的位置

HTTPS

1.     HTTPS基于SSL的HTTP协议。

2.     HTTPS使用与HTTP不同的端口(,一个加密、身份验证层(HTTP与TCP之间))。

3.     提供了身份验证与加密通信方法,被广泛用于互联网上安全敏感的通信。

交互过程

客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。

1)    客户端请求建立SSL连接,并将自己支持的一套加密规则发送给网站。

2)    网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息

3)    获得网站证书之后浏览器要做以下工作:

Ø  验证证书的合法性

Ø  如果证书受信任,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。

Ø  使用约定好的HASH计算握手消息,

Ø  使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。

4)    网站接收浏览器发来的数据之后要做以下的操作:

Ø  使用自己的私钥将信息解密取出密码

Ø  使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。

Ø  使用密码加密一段握手消息,发送给浏览器

5)    浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手结束。

6)    使用随机密码和对称加密算法对传输的数据加密,传输。

4.     密与HASH算法如下:

1)     非对称加密算法:RSA,DSA/DSS,用于在握手过程中加密生成的密码。

2)     对称加密算法:AES,RC4,3DES,用于对真正传输的数据进行加密。

3)     HASH算法:MD5,SHA1,SHA256,验证数据的完整性。

5.     HTTP与HTTPS的区别:

1)     https协议需要申请证书。

2)     http是超文本传输协议,明文传输;https使用的是具有安全性的SSL加密传输协议。

3)     http端口80,;https端口443。

4)     http连接简单无状态;https由SSL+HTTP协议构件的可进行加密传输、身份验证的网络协议。

HTTPS协议,SSL协议及完整交互过程的更多相关文章

  1. Android Camera 通过V4L2与kernel driver的完整交互过程

    http://blog.chinaunix.net/uid-26215986-id-3552456.html 原文地址:Android Camera 通过V4L2与kernel driver的完整交互 ...

  2. SSH协议、HTTPS中SSL协议的完整交互过程

    1.(SSH)公私钥认证原理 服务器建立公钥:每一次启动sshd服务时,该服务会主动去找/etc/ssh/ssh_host*的文件 客户端通过ssh工具进行连接,如Xshell,SecureCRT 服 ...

  3. 聊聊HTTPS和SSL协议

    本文为转载,原文链接http://www.techug.com/https-ssl-tls,作者不详. 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 1. 大致了解几个基本术语(H ...

  4. 802.11协议帧格式、Wi-Fi连接交互过程、无线破解入门研究

    相关学习资料 Linux黑客大曝光: 第8章 无线网络 无线网络安全攻防实战进阶 无线网络安全 黑客大曝光 第2版 http://zh.wikipedia.org/wiki/IEEE_802.11 h ...

  5. wamp下安装https 实现 ssl 协议,主要是编写小程序通讯

    也不知道腾讯为啥要这个限制,是想卖他的服务器资源么 简单几句话 1 wamp3.0.X的版本不行,我折腾了一天半,放弃了,换成wamp2.5 一次通过 2 证书 去腾讯云申请,单独域名的可以申请免费的 ...

  6. Https协议:SSL建立过程分析(也比较清楚,而且有OpenSSL的代码)

    web访问的两种方式: http协议,我们一般情况下是通过它访问web,因为它不要求太多的安全机制,使用起来也简单,很多web站点也只支持这种方式下的访问. https协议(Hypertext Tra ...

  7. trust an HTTPS connection 安全协议 随机数 运输层安全协议 应用层安全协议 安全证书

    小结: 1.HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间) HTTPS(全称:Hyper Text Transfer Protocol over Secure ...

  8. 谈Delphi中SSL协议的应用(好多相关文章)

    摘要:本文主要介绍如何在Delphi中使用SSL协议.一共分为七个部分:(1)SSL协议是什么?(2)Delphi中如何使用SSL协议?(3)SSL客户端编程实例.(4)SSL服务端编程实例.(5)S ...

  9. 老陈---谈Delphi中SSL协议的应用[转]

    摘要:本文主要介绍如何在Delphi中使用SSL协议.一共分为七个部分:(1)SSL协议是什么?(2)Delphi中如何使用SSL协议?(3)SSL客户端编程实例.(4)SSL服务端编程实例.(5)S ...

随机推荐

  1. linux下使用gcc编译运行C/C++程序

    编译C  首先,程序编译过程有: 1.预处理(展开宏,头文件,检查代码是否有误) 2.编译(将.c转为汇编代码.s) 3.汇编(将汇编代码.s转为机器代码.o) 4.链接(将所有机器代码.o和库文件链 ...

  2. lucene 核心概念及入门

    lucene Lucene介绍及核心概念 什么是Lucene Lucene是一套用于全文检索和搜索的开放源代码程序库,由Apache软件基金会支持和提供.Lucene提供了一个简单却强大的应用程序接口 ...

  3. Java集合框架——jdk 1.8 ArrayList 源码解析

    前言:作为菜鸟,需要经常回头巩固一下基础知识,今天看看 jdk 1.8 的源码,这里记录 ArrayList 的实现. 一.简介 ArrayList 是有序的集合: 底层采用数组实现对数据的增删查改: ...

  4. 利用批处理文件删除系统托盘上的图标(适用于Windows各个版本)

    对于我这种强迫症患者来说,如果我已经删除了一些软件,但是系统托盘里面还有它,我会很难受.所以,没办法,必须想办法把它清除掉,还自己一片安宁!!!不知各位是否遇到过和我一样的问题,下面贴一段批处理文件的 ...

  5. 封装方法公共文件common.js

    /** * Created by Administrator on 2017/3/24. */ /** * 格式化日期 * @param dt 日期对象 * @returns {string} 返回值 ...

  6. python基础之数据的三大结构

    python的三大数据结构 1.顺序 2.分支 3.循环 # if语句联系# 如果age小于18岁,则打印信息“未成年”age = 17if age <= 18: print("未成年 ...

  7. mysql 之库, 表的简易操作

    一. 库的操作 1.创建数据库 创建数据库: create database 库名 charset utf8;   charset uft8  可选项 1.2 数据库命名规范: 可以由字母.数字.下划 ...

  8. 异步陷阱之IO篇

    很多教程和资料都强调流畅的用户体验需要异步来辅助,核心思想就是保证用户前端的交互永远有最高的优先级,让一切费时的逻辑通通放到后台,等到诸事完备,通知一下前端给个提示或者继续下一步.随着.NET发展,a ...

  9. logcat use

    将已经存在的工程导入到eclipse步骤: ①:首先复制当前工程所在的路径. ②:然后在eclipse,右键->Import->General->Existing Projects ...

  10. SDK Manager

    dx.bat :将所有的.class文件变成一个.dex文件. aapt:Android Application package tools 安卓应用的打包工具. adb:Android Debug ...