HTTP与HTTPS——密码学笔记(九)

转载 2018年04月16日 16:12:49

原文:http://www.mahaixiang.cn/internet/1233.html

一、HTTP协议

HTTP协议:Hyper Text Transfer Protocol(超文本传输协议),是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览的传送协议,是一个客户端和服务器端请求和应答的标准(TCP),是互联网上应用最为广泛的一种网络协议,它可以使浏览器更加高效,使网络传输减少。

HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。

使用TCP端口为:80

二、HTTPS协议

由于使用HTTP协议传输隐私信息非常不安全,于是网景(Netscape)公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,由此诞生了HTTPS协议。

HTTPS协议:Hyper Text Transfer Protocol over Secure Socket Layer,安全的超文本传输协议。HTTP协议直接放置在TCP协议上,而HTTPS提出在HTTP和TCP中间加上一层加密层从发送端看,这一层负责把HTTP的内容加密后送到下层的TCP,从接收方看,这一层将TCP送来的数据解密还原成HTTP的内容。SSL协议是主要用于WEB的安全传输协议,它在HTTPS协议栈中负责实现加密层。因此,一个HTTPS协议栈大致是:


使用TCP端口默认为:443

HTTPS加密、验证过程:


简单说来,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全。

HTTPS工作原理:

1、客户端发起HTTPS请求:用户在浏览器里输入一个https网址,然后连接到server的443端口

2、服务器的配置:采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。这套证书其实就是一对公钥和私钥。

3、传送证书:这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

4、客户端解析证书:这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密。

5、传送加密信息:这部分传送的是用证书加密后的随机值,目的就是让服务器得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

6、服务端解密信息:服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

7、传输加密后的信息:这部分信息是服务端用私钥加密后的信息,可以在客户端被还原

8、客户端解密信息:客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据也束手无策。

三、HTTP和HTTPS协议的区别

1、https协议需要CA申请证书,一般免费证书较少,因而需要一定费用

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443

4、http的连接很简单,是无状态的;https协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全


https在云服务器请求的启用

本课程将详细介绍https,云服务器,SSL证书以及相关的购买,SSL证书在云服务器端的配置,到最后成功发送https请求
  • 2017年03月25日 14:35

http笔记(九)--https和http

http的不足:1.通信是用明文,内容可能会被窃听2.不验明对方身份,因此可能遭遇伪装3.无法验证报文完整性,所以有可能已遭篡改https针对http不足的解决办法:1.防止被窃听:通信加密(SSL)...
  • qq_18653119
  • qq_18653119
  • 2018-01-18 15:07:46
  • 41

HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)

本文以总结的形式,先大体介绍TCP/IP协议整体组成,再择其应用层上的HTTP协议进行详细总结,继而拓展知识点讲解加密学,过渡到HTTPS协议的学习,除去网络知识必备掌握的三次握手、四次挥手,另需了解...
  • ITermeng
  • ITermeng
  • 2017-11-13 09:58:06
  • 1364

基础密码学与https配置

对数据的加密一直是互联网数据传输中非常重要的部分,这是博主漫漫javaweb学习中的一些笔记,欢迎指正...
  • weixin_39589599
  • weixin_39589599
  • 2017-09-27 23:03:53
  • 74

《灰灰的密码学笔记》

  • 2009年06月15日 17:16
  • 258KB
  • 下载

应用密码学第三版 胡向东

上传资源包括: 电子书及课件。
  • Chaxtedy
  • Chaxtedy
  • 2018-03-18 16:58:59
  • 40

写给前端工程师的理论基础(2)--HTTPS协议与密码学

上一回写的是Session与Cookie方面的内容,这一次,写一下HTTPS协议和有关密码学方面的内容。 HTTP协议我们都已经知道了,这一一种基于TCP协议的,非持久连接的,传输文本流(以文本为内...
  • wang7807564
  • wang7807564
  • 2017-07-15 22:48:13
  • 812

翟起滨老师应用密码学课堂授课的笔记

  • 2013年04月04日 11:38
  • 10.8MB
  • 下载

背包问题九讲笔记

其实之前已经好几次想读玩崔添翼的《背包九讲》,不过之前总是由于各种缺乏耐心没有啃下来,这次决定要好好读完。 背包九讲来源 : https://github.com/tianyicui/pack ...
  • sentimental_dog
  • sentimental_dog
  • 2016-05-27 15:41:55
  • 1360

CTF--密码学笔记

凯撒密码for shift in range(26): str = r"YSMWGTZOGVWGTNGHAOB" new_str = '' for i in str: ...
  • sinat_25449961
  • sinat_25449961
  • 2017-02-21 13:58:04
  • 4904
收藏助手
不良信息举报
您举报文章:HTTP与HTTPS——密码学笔记(九)
举报原因:
原因补充:

(最多只允许输入30个字)