`
ceasarje
  • 浏览: 79607 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

趣谈HTTPS

 
阅读更多
HTTPS 是我们常见的 HTTP 协议与某个加密协议的混合体,也就是 HTTP+S。这个 S 可以是 TLS(安全传输层协议)、也可以是 SSL(安全套接层),不过我更认可另一个抽象概括的说法,HTTP+Security。首先,HTTPS并不是这种加密技术的正式名称,HTTPS代表的是“在TLS/SSL上实现的HTTP协议”,因此实现加密的其实是位于HTTP下面的TLS/SSL层。我们看看TLS/SSL所实现的几个主要机制:
1. 证书:通过第三方权威证书颁发机构(如VeriSign)验证和担保网站的身份,防止他人伪造网站身份与不知情的用户建立加密连接。
2. 密钥交换:通过公钥(非对称)加密在网站服务器和用户之间协商生成一个共同的会话密钥。3. 会话加密:通过机制(2)协商的会话密钥,用对称加密算法对会话的内容进行加密。
4. 消息校验:通过消息校验算法来防止加密信息在传输过程中被篡改。通过上述机制,用户与网站之间的传输内容受到了保护,因此能够获得很高的安全性。
不过,任何密码学手段都不是绝对安全的,上面几个机制中其实都存在可能的风险:1. 证书:如果有人伪造证书,浏览器会发出警告,提示用户该网站的证书可能是伪造的,应该停止访问,但如果你无视浏览器的警告,你的会话信息就有可能被伪造者窃取。此外,如果第三方证书颁发机构遭到攻击,攻击者窃取了已颁发的证书密钥,就可以伪造相应的网站证书,完全骗过浏览器的安全机制,这样的例子的确曾经发生过。2. 密钥交换:RSA,这是一种最普遍使用的公钥加密算法,一般来说安全性很高。3. 会话加密:AES-256(CBC Mode),这是一种非常广泛使用的加密算法,采用256位密钥代表其安全性很高,如果采用128位密钥(AES-128)则安全性就差一些。4. 消息校验:SHA1,这是一种散列算法,SHA1的安全性比MD5要好,但如果采用SHA256则安全性会更好一些。上面很抽象是不是,我们用“传纸条”这个人人小时候都做过的事来形象的说明一下。HTTP假设你现在正坐在教室里上课,现在你非常想和走道旁的迷人的 TA 说一些话,一般这个时候你会用“传纸条”的方式来交流。而这个方式和 TCP/IP 协议基本的工作模式十分相像:通过小动作引起对方注意;对方以多种可能的方式(注视、肢体语言等)回应于你;你确认对方感知到你后,将纸条传给对方;对方阅读纸条;对方给予你阅读后的反应;怎么样,这个流程是不是很熟悉?如果你要传递纸条的 TA 距离你很远怎么办?HTTP 协议就是指你在纸条上写明你要传给的 TA 是谁,或者 TA 的座位在哪,接着只需要途径的同学拿到纸条后根据纸条上的指示依次将纸条传过去就 OK 了。这个时候问题来了:途径的同学完全可以观看并知道你在纸条上写了什么。这就是 HTTP 传输所面临的问题之一:中间人攻击,指消息传递的过程中,处在传递路径上的攻击者可以嗅探或者窃~听传输数据的内容。HTTPSHTTPS 针对这个问题,采用了“加密”的方式来解决。最著名原始的加密方法就是对称加密算法了,就是双方约定一个暗号,用什么字母替换什么字母之类的。现在一般采用一种叫 AES(高级加密算法)的对称算法。对称加密算法既指加密和解密需要使用的密钥 key 是一样的。AES 在数学上保证了,只要你使用的 key 足够长,破解几乎是不可能的(除非光子计算机造出来了)我们先假设在没有密钥 key 的情况下,密文是无法被破解的,然后再回到这个教室。你将用 AES 加密后的内容噌噌噌地写在了纸条上,正要传出去的时候你突然想到,TA 没有 key 怎么解密内容呀,或者说,应该怎么把 key 给TA?如果把 key 也写在纸条上,那么中间人照样可以破解窃~听纸条内容。也许在现实环境中你有其他办法可以把 key 通过某种安全的渠道送到 TA 的手里,但是互联网上的实现难度就比较大了,毕竟不管怎样,数据都要经过那些路由。于是聪明的人类发明了另一种加密算法——非对称加密算法。这种加密算法会生成两个密钥(key1 和 key2)。凡是 key1 加密的数据,key1 自身不能解密,需要 key2 才能解密;凡事 key2 加密的数据,key2 自身不能解密,只有 key1 才能解密。目前这种算法有很多中,最常用的是 RSA。其基于的数学原理是:两个大素数的乘积很容易算,但是用这个乘积去算出是哪两个素数相乘就很复杂了。好在以目前的技术,分解大数的素因确实比较困难,尤其是当这个大数足够大的时候(通常使用2的10次方个二进制位那么大),就算是超级计算机,解密也需要非常长的时间。现在就把这种非对称加密的方法应用在我们教室传纸条的场景里。你在写纸条内容之前先用 RSA 技术生成了一对密钥 k1 和 k2。你把 k1 用明文传了出去,路经也许有人会截取,但是没有用,k1 加密的数据需要 k2 才可以破解,而 k2 在你自己手中。k1 传到了目的人,目的人会去准备一个接下来准备用于对称加密(AES)的传输密钥 key,然后用收到的 k1 把 key 加密,传给你。你用手上的 k2 解出 key 后,全教室只有你和你的目的人拥有这个对称加密的 key,你们俩就可以尽情聊天不怕窃~听啦~这里也许你会有问题,为什么不直接用非对称加密来加密信息,而是加密 AES 的 key 呢?因为非对称加密和解密的平均消耗时间比较长,为了节省时间提高效率,我们通常只是用它来交换密钥,而非直接传输数据。然而使用非对称加密真的可以防范中间人攻击吗?虽然看上去很安全,但是实际上却挡不住可恶的中间人攻击。假设你是 A,你的目的地是 B,现在要途径一个恶意同学M。中间人的恶意之处在于它会伪装成你的目标。当你要和 B 完成第一次密钥交换的时候,M 把纸条扣了下来,假装自己是B并伪造了一个 key,然后用你发来的 k1 加密了 key 发还给你。你以为你和 B 完成了密钥交换,实际上你是和 M 完成了密钥交换。同事 M 和 B 完成一次密钥交换,让 B 以为和 A 你完成了密钥交换。现在整体的加密流程变成了A(加密链接1)->M(明文)->B(加密链接2)的情况了,这时候 M 依然可以知道A和B传输的全部消息。这个时候就是体现 HTTPS 和传纸条的区别了。在教室里,你是和一位与你身份几乎对等的的对象来通信;而在访问网站时,对方往往是一个比较大(或者知名)的服务者,他们有充沛的资源,或许他们可以向你证明他们的合法性。此时我们需要引入一个非常权威的第三方,一个专门用来认证网站合法性的组织,可以叫做 CA(Certificate Authority)。各个网站服务商可以向 CA 申请证书,使得他们在建立安全连接时可以带上 CA 的签名。而 CA 得安全性是由操作系统或者浏览器来认证的。你的 Windows、Mac、Linux、Chrome、Safari 等会在安装的时候带上一个他们认为安全的 CA 证书列表,只有和你建立安全连接的网站带有这些CA的签名,操作系统和浏览器才会认为这个链接是安全的,否则就有可能遭到中间人攻击。一旦某个 CA 颁发的证书被用于的非法途径,那么这个 CA 之前颁发过的所有证书都将被视为不安全的,这让所有 CA 在颁发证书时都十分小心,所以 CA 证书在通常情况下是值得信任的。

原文链接:http://www.jianshu.com/p/be7a20cc8468
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    三角形趣谈

    三角形趣谈

    014-趣谈网络协议014-趣谈网络协议

    HTTPS是HTTP的安全版本,通过SSL/TLS协议提供加密和身份验证,保护用户数据的安全。 FTP(文件传输协议)用于在网络上进行文件传输。SMTP(简单邮件传输协议)处理电子邮件的发送,而POP3或IMAP协议则用于接收邮件...

    计算机网络技术基础-趣谈网络协议.md

    计算机网络技术基础-趣谈网络协议.md

    趣谈Linux操作系统

    Linux操作系统是一种自由、开源的操作系统,它基于Unix系统设计,由林纳斯·托瓦兹在1991年首次发布。Linux操作系统的核心是内核,它负责管理系统的硬件资源,调度进程,以及确保多任务的顺利运行。...

    计算机发展史趣谈资料.pdf

    计算机发展史趣谈资料.pdf 计算机发展史趣谈资料.pdf文档提供了计算机发展的历史概述,从人类最早的计算工具到现代计算机的发明和发展,概括了计算机发展的历史进程。 计算工具的起源 人类最早的计算工具可以追溯...

    [详细完整版]趣谈大数据.pdf

    趣谈大数据 一、大数据的初步理解 似乎一夜之间,大数据(Big Data)变成一个IT行业中最时髦的词汇。 首先,大数据不是什么完完全全的新生事物,Google的搜索服务就是一个典型的大数据运用,根据 客户的需求,Google...

    趣谈网络协议 pdf .zip

    15HTTPS协议 16流媒体协议 17P2P协议 18DNS协议 19HTTPDNS 20CDN 21数据中心 23移动网络 24云中网络 25软件定义网络 26云中的网络安全 27云中的网络Qo 28云中网络的隔离GRE、VXLAN 29容器网络 30容器网络之Flannel ...

    05-趣谈网络协议.epub

    05-趣谈网络协议

    英语词源趣谈-英语学习好帮手

    《英语词源趣谈》这本资料正是为此目的而编撰,它通过趣味性的讲解,使枯燥的词汇学习变得生动有趣。 首先,词源学可以帮助我们理解词汇的形态变化。英语中的许多词汇都源于古英语、拉丁语、希腊语等其他语言,这些...

    趣谈数据结构(五).doc

    《趣谈数据结构(五)》探讨了计算机程序设计中的一个重要算法——递归。递归算法是一种较难理解和掌握的技巧,它通过过程自身调用来实现自我嵌套执行。递归执行的流程可以用图形化的方式来表示,就像图1所示,呈现...

    部编版第十七周 数字趣谈.doc

    1. 计数原则:在解决数字趣谈中的计数问题时,我们通常采用实验探究法和分类统计法。实验探究法是指通过实际操作或模拟实验来找出规律,例如例题1中通过列举3的倍数来找到在特定范围内的3的倍数个数。分类统计法则是...

    设计模式趣谈之我之见解

    在软件开发领域,设计模式是经验的结晶,是解决常见问题的最佳实践。本文将结合个人的理解,探讨设计模式的魅力,并以Java语言为例,提供一些实用的见解和教程。设计模式并非孤立存在,而是贯穿于整个软件开发过程,...

    英语词源趣谈

    里面有很多非常有趣的词源故事,可以帮助记忆和理解,轻松应对英语考试和学习

    数学趣谈 - 陈景润.pdf

    数学科普、陈景润、数论

    WELearn大学英语知识拓展:文化生活之旅——趣谈趣说.pdf

    WELearn大学英语知识拓展:文化生活之旅——趣谈趣说.pdf

    《电子入门趣谈》第8章-基于Matlab的信号处理GUI制作

    在《电子入门趣谈》第八章中,读者将接触如何利用Matlab进行数字信号处理图形用户界面(GUI)的设计。本章旨在帮助初学者通过实际操作加深对数字信号处理的理解,同时熟悉Matlab这一强大的工具。 ##### 任务要求: ...

    《京剧趣谈》课件语文六年级上册.pptx

    《京剧趣谈》是针对语文六年级上册的一份课件,主要探讨了中国的传统戏曲艺术——京剧。京剧,作为中国戏曲的代表,融合了歌唱、念白、舞蹈和武打等多种艺术形式,展现了高度的综合性。这篇课文通过深入浅出的方式,...

    趣谈助学贷款 .doc

    趣谈助学贷款 .doc

    各国手势趣谈.doc

    各国手势趣谈.doc

    模糊数学趣谈

    科普小品,介绍模糊数学的基本理论原理。

Global site tag (gtag.js) - Google Analytics