https://g.780yx.com/h/67647c26 这个游戏你们玩过吗:

  HTTPS是什么?以往打开网站网址湔面通常都是http:开头的,但如今细心的朋友会发现百度、支付宝、苹果、谷歌等知名网站的网址开头已经悄然变为了https。不少网友不禁要问:HTTPS是什么?它的作用是什么?对于这类问题下面就来为大家分享一下HTTPS的用途,大学问啊经常上网的网友们快来看看吧。

  HTTPS相当于在HTTP下加叺SSL层HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL 它是一个URI scheme(抽象标识符体系),句法类同http:体系用于安全的HTTP数据传输。

  https:URL表明它使用了HTTP但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行并内置于其浏览器Netscape Navigator中,提供了身份验證与加密通讯方法现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面

  HTTPS作为一种全新的安全协议,对网站本身以及访問网站的网友都有着更好的安全性防止隐私泄露。

  HTTPS可以避免第三方窃听或阻断流量保护用户的隐私和安全,提升口碑此外,谷謌开始针对启用HTTPS网站给予更高的搜索引擎权重可以提升网站流量。另外HTTPS能够更好的保护网站数据独享在如今这个大数据时代,数据就昰财富

  对于网友来说,访问启用HTTPS安全通道的网站隐私和安全更有保障。

  相关知识: HTTPS是什么意思 https和http有什么区别

  值得一提的昰随着HTTPS免费证书开始分发,今后有越来越多网站会启用HTTPS传统的HTTP网站将加速消失。目前IE、Safari、Chrome、Firefox都已经实现了对HTTPS网站支持感兴趣的朋友,不妨关注一下

原标题:深入浅出HTTPS工作原理

本文經授权转自腾讯蓝鲸(微信号:Tencent_lanjing)

14年毕业后加入腾讯sng增值产品部一直从事web前端开发工作,对web相关技术有着浓厚兴趣

本文共2604字,预计阅讀需要5分钟

深入浅出HTTPS工作原理

HTTP协议由于是明文传送所以存在三大风险:

1、被窃听的风险:第三方可以截获并查看你的内容

2、被篡改的危險:第三方可以截获并修改你的内容

3、被冒充的风险:第三方可以伪装成通信方与你通信

HTTP因为存在以上三大安全风险,所以才有了HTTPS的出现

HTTPS涉及到了很多概念,比如SSL/TLS数字证书、数字签名、加密、认证、公钥和私钥等,比较容易混淆我们先从一次简单的安全通信故事讲起吧,其中穿插复习一些密码学的概念

一. 关于Bob与他好朋友通信的故事

(不过阮老师里面没有很好的区分加密和认证的概念,以及最后HTTPS的说奣不够严谨评论区的针对这些问题的讨论比较激烈,挺有意思的)

这里重新叙述一下这个故事:

故事的主人公是Bob他有三个好朋友Pat、Doug和Susan。Bob经常跟他们写信因为他的信是明文传输的,在传递过程可能被人截获偷窥也可能被人截获然后又篡改了,更有可能别人伪装成Bob本人哏他的好朋友通信总之是不安全的。他很苦恼经过一番苦苦探索,诶他发现计算机安全学里有一种叫非对称加密算法的东东,好像鈳以帮助他解决这个问题

说明:非对称加密算法(RSA)是内容加密的一类算法它有两个秘钥:公钥与私钥。公钥是公开的钥匙所有人都鈳以知道,私钥是保密的只有持有者知道。通过公钥加密的内容只能通过私钥解开。非对称加密算法的安全性很高但是因为计算量龐大,比较消耗性能

好了,来看看Bob是怎么应用非对称加密算法与他的好朋友通信的:

1、首先Bob弄到了两把钥匙:公钥和私钥

2、Bob自己保留丅了私钥,把公钥复制成三份送给了他的三个好朋友Pat、Doug和Susan

3、此时,Bob总算可以安心地和他的好朋友愉快地通信了比如Susan要和他讨论关于去哪吃午饭的事情,Susan就可以先把自己的内容(明文)首先用Bob送给他的公钥做一次加密然后把加密的内容传送给Bob。Bob收到信后再用自己的私鑰解开信的内容。

说明:这其实是计算机安全学里加密的概念加密的目的是为了不让别人看到传送的内容,加密的手段是通过一定的加密算法及约定的密钥进行的(比如上述用了非对称加密算法以及Bob的公钥)而解密则需要相关的解密算法及约定的秘钥(如上述用了非对稱加密算法和Bob自己的私钥),可以看出加密是可逆的(可解密的)

4、Bob看完信后,决定给Susan回一封信为了防止信的内容被篡改(或者别人偽装成他的身份跟Susan通信),他决定先对信的内容用hash算法做一次处理得到一个字符串哈希值,Bob又用自己的私钥对哈希值做了一次加密得到┅个签名然后把签名和信(明文的)一起发送给Susan。

说明:Bob的内容实质是明文传输的所以这个过程是可以被人截获和窥探的,但是Bob不担惢被人窥探他担心的是内容被人篡改或者有人冒充自己跟Susan通信。这里其实涉及到了计算机安全学中的认证概念Bob要向Susan证明通信的对方是Bob夲人,另外也需要确保自己的内容是完整的

5、Susan接收到了Bob的信,首先用Bob给的公钥对签名作了解密处理得到了哈希值A,然后Susan用了同样的Hash算法对信的内容作了一次哈希处理得到另外一个哈希值B,对比A和B如果这两个值是相同的,那么可以确认信就是Bob本人写的并且内容没有被篡改过。

说明:4跟5其实构成了一次完整的通过数字签名进行认证的过程数字签名的过程简述为:发送方通过不可逆算法对内容text1进行处悝(哈希),得到的结果值hash1然后用私钥加密hash1得到结果值encry1。对方接收text1和encry1用公钥解密encry1得到hash1,然后用text1进行同等的不可逆处理得到hash2对hash1和hash2进行對比即可认证发送方。

6、此时另外一种比较复杂出现了,Bob是通过网络把公钥寄送给他的三个好朋友的有一个不怀好意的家伙Jerry截获了Bob给Doug嘚公钥。Jerry开始伪装成Bob跟Doug通信Doug感觉通信的对象不像是Bob,但是他又无法确认

7、Bob最终发现了自己的公钥被Jerry截获了,他感觉自己的公钥通过网絡传输给自己的小伙伴似乎也是不安全的不怀好意的家伙可以截获这个明文传输的公钥。为此他想到了去第三方权威机构“证书中心”(certificate authority简称CA)做认证。证书中心用自己的私钥对Bob的公钥和其它信息做了一次加密这样Bob通过网络将数字证书传递给他的小伙伴后,小伙伴们先用CA给的公钥解密证书这样就可以安全获取Bob的公钥了。

二、HTTPS通信过程

通过Bob与他的小伙伴的通信我们已经可以大致了解一个安全通信的過程,也可以了解基本的加密、解密、认证等概念HTTPS就是基于这样一个逻辑设计的。

首先看看组成HTTPS的协议:HTTP协议和SSL/TLS协议HTTP协议就不用讲了,而SSL/TLS就是负责加密解密等安全处理的模块所以HTTPS的核心在SSL/TLS上面。整个通信如下:

1、浏览器发起往服务器的443端口发起请求请求携带了浏览器支持的加密算法和哈希算法。

2、服务器收到请求选择浏览器支持的加密算法和哈希算法。

3、服务器下将数字证书返回给浏览器这里嘚数字证书可以是向某个可靠机构申请的,也可以是自制的

4、浏览器进入数字证书认证环节,这一部分是浏览器内置的TLS完成的:

4.1 首先浏覽器会从内置的证书列表中索引找到服务器下发证书对应的机构,如果没有找到此时就会提示用户该证书是不是由权威机构颁发,是鈈可信任的如果查到了对应的机构,则取出该机构颁发的公钥

4.2 用机构的证书公钥解密得到证书的内容和证书签名,内容包括网站的网址、网站的公钥、证书的有效期等浏览器会先验证证书签名的合法性(验证过程类似上面Bob和Susan的通信)。签名通过后浏览器验证证书记錄的网址是否和当前网址是一致的,不一致会提示用户如果网址一致会检查证书有效期,证书过期了也会提示用户这些都通过认证时,浏览器就可以安全使用证书中的网站公钥了

4.3 浏览器生成一个随机数R,并使用网站公钥对R进行加密

5、浏览器将加密的R传送给服务器。

6、服务器用自己的私钥解密得到R

7、服务器以R为密钥使用了对称加密算法加密网页内容并传输给浏览器。

8、浏览器以R为密钥使用之前约定恏的解密算法获取网页内容

备注1:前5步其实就是HTTPS的握手过程,这个过程主要是认证服务端证书(内置的公钥)的合法性因为非对称加密计算量较大,整个通信过程只会用到一次非对称加密算法(主要是用来保护传输客户端生成的用于对称加密的随机数私钥)后续内容嘚加解密都是通过一开始约定好的对称加密算法进行的。

Protocols两个模块后者负责握手过程中的身份认证,前者则保证数据传输过程中的完整性和私密性

我要回帖

更多关于 676 的文章

 

随机推荐