一、什么是HTTP

说起HTTP,大家应该都知道,这是互联网上应用最为广泛的一种网络协议,全称是Hyper Text Transfer Protocol(超文本传输协议)。它是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。这个模型是早期Web成功的大功臣,因为它大大提高了网络传输的效率。

HTTP是一种应用层协议。同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。但它凭借着自身独有的优势,大力推动了www万维网的发展和普及。因此,早在1990年时,http就成为了www的支撑协议,万维网上所有的网站域名都是以http开头的,就算你自己不输入这四个字符,系统也会自动帮你补全。

二、什么是HTTPS

然而,今天的你,打开浏览器上网时会发现,很多网站的域名上,已经不再是http开头了,取而代之的是https。这是什么意思呢?

HTTPS全称是Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,即超文本传输安全协议。简单说来,它是HTTP的安全加强版,用于保护所传输的信息内容。HTTPS协议的主要有两个作用:一是建立一个信息安全通道,来保证数据传输的安全;另外就是确认网站的真实性。

如果要对比一下,HTTP与HTTPS二者之间的区别大致如下:

  • HTTPS是具有安全性的SSL加密传输协议,确保信息传输的安全性;HTTP是明文传输协议,没有安全性可言;
  • HTTPS需要用到SSL证书,一般免费证书较少,因而需要一定费用;而HTTP不用;
  • HTTPS与HTTP使用的是完全不同的连接方式,用的端口也不一样,前者是443,后者是80;
  • HTTPS基于传输层,HTTP基于应用层;
  • HTTPS在浏览器显示绿色安全锁,HTTP没有显示;

三、什么是SSL

OK,上面又出现了一个新概念,SSL,这是个什么鬼?

SSL全称是Secure Sockets Layer,即安全接层,是一种标准协议,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保隐私数据的安全性和完整性,防止被截取及窃听。

1、SSL协议

SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议提供的安全通道有以下三个特性:

  • 机密性:SSL协议使用密钥加密通信数据;
  • 可靠性:服务器和客户都会被认证,客户的认证是可选的;
  • 完整性:SSL协议会对传送的数据进行完整性检查;

SSL协议可分为两层:

  • SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
  • SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

2、SSL证书

SSL证书就是遵守SSL协议,由受信任的CA机构颁发的数字证书。使用SSL证书有许多好处:

  • 保障服务器和浏览器之间的通信安全;
  • 验证网站的真实身份,区别于钓鱼欺诈网站;
  • 加密用户的敏感信息以确保安全;
  • 提高SEO搜索引擎排名;
  • 提升用户对网站的信任;
  • 有助于提高网站的在线销售业绩;

所以,话题回到HTTPS上,我们可以这么理解:HTTPS=HTTP+SSL,即HTTPS的安全基础是SSL。如果想要建立HTTPS连接,则首先必须从受信任的证书颁发机构(CA)机构注册 SSL证书。安装SSL证书后,网站地址栏HTTP后面就会多一个“S”,还有绿色安全锁标志。

四、什么是TLS

随着SSL的发展,从1.0版本升级到2.0版本,再升级到3.0版本。此时,IETF组织(Internet Engineering Task Force,Internet工程任务组)对其进行了规划化处理,将其升级为了另外一种新的协议,称之为TLS(Transport Layer Security,传输层安全性协议),目的是为互联网通信提供安全及数据完整性保障。它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本,可以理解为SSL 3.1。

TLS协议主要解决如下三个网络安全问题:

  • 保密(message privacy),保密通过加密encryption实现,所有信息都加密传输,第三方无法嗅探;
  • 完整性(message integrity),通过MAC校验机制,一旦被篡改,通信双方会立刻发现;
  • 认证(mutual authentication),双方认证,双方都可以配备证书,防止身份被冒充;

TLS协议可以分为两部分:

  • 记录协议(Record Protocol):通过使用客户端和服务端协商后的秘钥进行数据加密传输。
  • 握手协议(Handshake Protocol):客户端和服务端进行协商,确定一组用于数据传输加密的秘钥串。

TLS协议的优势是与高层的应用层协议(如HTTP、FTP、Telnet等)无耦合。应用层协议能透明地运行在TLS协议之上,由TLS协议进行创建加密通道需要的协商和认证。应用层协议传送的数据在通过TLS协议时都会被加密,从而保证通信的私密性。

玩转信息安全之【从HTTP到HTTPS,从SSL到TLS】相关推荐

  1. HTTPS、SSL、TLS三者之间的联系和区别

    本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金. SSL(Secure Socket Layer 安全套接层)是基于HTTPS下的一个协议加密层,最初是由网景公司(Netscape)研发,后 ...

  2. 翻译: 漫画HTTPS原理四 解析概念HTTPS、SSL、TLS

    漫画HTTPS原理五部曲 翻译: 漫画HTTPS原理一 为什么我们需要HTTPS 翻译: 漫画HTTPS原理二 了解对称和非对称加密 翻译: 漫画HTTPS原理三 浏览器和互联网之间的秘密握手 翻译: ...

  3. HTTP、HTTPS、SSL、TLS之间的关系

    目录 HTTP HTTPS SSL TLS HTTP 在标准的HTTP中,所有信息都是以明文发送 这里包括所输入的任何文本信息,这些信息都是通过公共的互联网进行传输. 明文传输,因此很容易遭受到黑客的 ...

  4. 一文读懂HTTP, HTTPS, SSL和TLS

    目录 名词介绍 HTTP: HTTPS: SSL: TLS: HTTPS实现原理 一.为什么要用HTTPS ? 二.HTTPS 怎么实现的? 数字证书 CA (Certificate Authorit ...

  5. 【拜读】HTTPS和SSL/TLS 协议

    声明:原文实在写得太棒了,本人情不自禁对其转载并作了相应整理,原文链接见文末. HTTPS.SSL.TLS术语: HTTP的用途: 首先,HTTP 是一个网络协议,是专门用来帮你传输 Web 内容滴. ...

  6. 聊聊HTTPS和SSL/TLS协议

    要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 1. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 2. 大致了解 HTTP 和 TCP 的关系(尤其是"短连接 ...

  7. 聊聊 HTTPS 和 SSL/TLS 协议

    原文:http://www.techug.com/post/https-ssl-tls.html 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.S ...

  8. 浅谈 HTTPS 和 SSL/TLS 协议的背景与基础

    来自:编程随想   >> 相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 ...

  9. 【转】聊聊HTTPS和SSL/TLS协议

    要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 1. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 2. 大致了解 HTTP 和 TCP 的关系(尤其是"短连接 ...

最新文章

  1. 关于NLPIR应用在KETTLE中的探索
  2. CTF web题总结--SSRF
  3. leetcode 12 ,13 Integer to Roman amp;amp;Roman to Integer 罗马与阿拉伯数组转换
  4. 【CodeVS - 3639】(树的重心模板,裸题)
  5. 手机MODEM 开发(23)---Modem1 NVRAM基础知识总结
  6. 用pythonturtle写名字_结婚请帖怎么写
  7. 利用Seaborn库进行简单的画图
  8. c# 对象json互相转换_Go语言进阶之路(六):内置JSON库和开源库gjson
  9. pr cpu100%_PR插件Beauty Box安装教程
  10. 【转】斐讯K2刷华硕固件教程
  11. 分布式系统的完整介绍
  12. openssl生成RSA格式及pkcs1与pkcs8格式互相转换
  13. 【新星计划】如何写好你的博客,涨粉技巧总结
  14. 每日一题#10-22 Ransomware
  15. DirectX函数总结2
  16. 洛谷P1433 吃奶酪--Java解法(货郎担问题)
  17. 计算机三级有必要考吗?计算机三级有哪些科目?
  18. 对核函数(kernel)最通俗易懂的理解
  19. 服装服饰行业SCRM-VIP会员营销解决方案
  20. ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步5屏带中文显示改进版

热门文章

  1. was java sdk_关于WAS9单独安装SDK的问题?
  2. linux测试磁盘io脚本,脚本分享:Linux下磁盘io测试
  3. 使用SpringBoot Admin监控SpringCloud微服务
  4. Vue 进阶 (二)
  5. sql不替换uid的更新数据语句
  6. 在SuSE10.1上安装Oracle10g
  7. 《防患未然:实施情报先导的信息安全方法与实践》——2.8 小结
  8. 在C++中反射调用.NET(二)
  9. 【图的DFS】图的DFS非递归算法
  10. 代码规范(一)——java篇