深入浅出HTTPS

所需积分/C币:44 2018-10-30 10:37:11 6.23MB PDF
2
收藏 收藏
举报

什么是https、为什么要有https、https如何保障安全的、怎么实现https、https实战开发
2018/10/28 深入浅出 Https-eMa‖ 通俗的讲,TS、55L其实是类似的东西,SSL是个加密套件,负责 对HTTP的数据进行加密。5是55L的升级版。现在提刭Https,加密套 件基本指的是TS。 传输加密的流程 原先是应用层将数据直接给到TCP进行传输,现在改成应用层将数据 给到5/55L,将数据加密后,再给至TCP进行传输。 大致如图所示。 TCP/IP Model SSL/TLS Protocol 1. Application I Application Application SSL/TLS 2. Transport 2. Transport Fragmentation LEzmaressin1 3. Internet 3.Internet 4. Network 4. Network 就是这么回事。将数据加密后再传输,而不是任庄数据在复杂而又充 满危险的刈络上明文裸奔,在很大桯度上确保了数据的安全。这样的话,即 使数据被中问节点截获,坏入也看不懂。 怎么实现HTPS? 对安全或密码学基础有了解的司学,应该知道常见的加密于段。一般 来说,加密分为对称加密、非对称加密(也叫公开密钥加密 对称加密 对称加密的意恁就是,加密数据用的密钥,跟解密数据用的密钥是一 样羊的。 对称加密的优点在于加密、解密效率通常比较高。缺点在于,数据发 送方、数据接收方需要协商、共享同一把密钥,并确保密钥不泄露给其他 人。此外,对于多个有数据交换需求的个体,两两之间需要分配并维护一把 密钥,这个带来的成本基本是不可接受的。 http://www.dczou.com/viemall/592.html 3/13 2018/10/28 深入浅出 Https-eMa‖ 密钥 密钥 明文 密文 明文 加密 解密 常用的对称加密算法」 DES算法:AES算法(阿里支付) 非对称加密 非对称加密的意思就是,加密数据用的密钥(公钥),跟解密数据用 的密钥(私钥)是不一样的。 什么叫做公钥呢?其实就是字面上的意思一一公开的密钥,谁都可以查 到。因此非对称加密也叫做公开密钥加密。相对应的,私钥就是非公开 的密钥,一般是由站的管理员持有。 公钥、私钥两个有什么联系呢 简单的说就是,通过公钥加密的数据,只能通过私钥解开。通过私钥 加密的数据,只能通过公钥解开。 很多同学都知道用私钥能解开公钥加密的数据,但忽略了一点,私钥 加密的数捃,同样可以用公钥解密岀来。而这点对于理解HTPS的整套加 密、授权体系非常关键。 公钥 私钥 明文 密文 明文 加密 解密 常用的非对称加密算法:RSA算法:(RSA/RSA2),DES 举个非对称加密的例子 http://www.dczou.com/viemall/592.html 4/13 2018/10/28 深入浅出 Https-VeMa 登陆用户:小明 授权网站:某知名社交网站(以下简称XX) 小明都是某知名社交网站XX的用户,ⅩX出于安全考卮在登陆的地方用 了非对称加密。小明在登陆界面敲入账号、密码,点击登陆"。于是,浏览 器利用公钥对小明的账号密码进行了加密,并向ⅩX发送登陆请求。XX的登 陆授权程序通过私钥,将账号、密码解密,并验证通过。之后,将小明的个 人信息(含隐私),通过私钥加密后,传输回浏览器。浏览器通过公钥解密 数据,并展示给小明 1 ●步骤 小明输入账号密码-〉浏览器用公钥加密-〉请求发送给XX 步骤 ⅹX用私钥解密,验证通过-〉获取小明社交数据,用私钥加密 〉浏览器用公钥解密数据,并展示。 用非对称加密,就能解决数据传偷安全的问题了吗?前面特意強调了 下,私钥加密的数据,公钥是可以解开的,而公钥又是加密的。也就是 说,非对称加密只能保证单向数据传输的安全性。此外,还有公钥如何 分发/获取的问题。下面会对这两个问题进行进一步的探讨。 公开密钥加密两个明显的问题 前面举了小明登陆社交网站XX的例子,并提刭,单纯使用公开密钥加 宓存在两个比较明显的问题。 公钥如何获 22数据传输仅单向安全 问题一:公钥如何获取 浏览器是怎么获得XX的公钥的?当然,小明可以自己去网上查 XX也可以将公钥贴在自己的主页。然而,对于一个动不动就成败上干万的 社交网站来说,会给用户造成极大的不便利,毕党大部分用户都不知道"公 钥“是什么东西。 问题二:数据传翰仅单向安全 前面提到,公钥加密的数据,只有私钥能解开,于是小明的账号、密 码是安全了,半路不怕被拦截 http://www.dczou.com/viemall/592.html 5/13 2018/10/28 深入浅出 Https-eMa‖ 然后有个很大的问题:私钥加密的数据,公钥也能解开。加上公钥是公开 的,小明的隐私数据相当于在网上换了种方式裸奔。(中间代理服务器拿到 了公钥后,亳不犹豫的就可以解密小明的数据) 下面就分另针对这两个问题进行解答。 问题一:公钥如何获 这里要涉及两个非常重要的概念:证书、CA(证书颁发机构)。 可以暂时把它理解为网站的身份证。这个身份证里包含了很多信 息,其中就包含了上面提到的公钥。 也就是说,当小明、小王、小光等用户访问XX的时候,再也不用满 世界的找XX的公钥了。当他们访问XX的时候,ⅩX就会把证书发给浏览 器,告诉他们说,乖,用这个里面的公钥加密数据。 这里有个问题,所诮的"证书“是哪来的?这就是下面要提到的CA负 责的活了。 cA(证书颁发机构 强调两点 1.可以颁发证书的CA有很多(国内外都有)。 2.只有少数CA被认为是权威、公正的,这些CA颁发的证书,浏览 器才认为是信得过的。比如 Veri sign。(CA当己伪造证书的事情也不是没 发生过。。。 证书颁发的细节这里先不展开,可以先简单理解为,网站向CA提交了 申请,CA审核通过后,将证书颁发给网站,用户访问网站的时候,网站将 证书给到用户 至于证书的细节,同样在后面讲到。 问题二:数据传输仅单向安全 http://www.dczou.com/viemall/592.html 6/13 2018/10/28 深入浅出 Https-eMa‖ 上面提到,通过私钥加密的数据,可以用公钥解密还原。那么,这 是不是就意味着,网站传给用户的数据是不安全的? 答案是:是!!(三个叹号表示强调的三次方〕 看到这里,可能你心里会有这样想:用了 Https,数据还是裸奔,这 么不靠谱,还不如直接用HTTP来的省事。 但是,为什么业界对网站 Https化的呼声越来越高呢?这明显跟我们 的感性认识相违背咂。 因为: Https虽然用到了公开密钥加密,但司时也结合了其他手段, 如对称加密,来确保授权、加密传输的效率、安全性。 概括来说,整个简化的加密通信的流桯就是 上小眀访问XXX将自己的证书给到小眀(其实是给到浏览器 明不会有感知) 2浏览器从让书中拿全ⅩⅩ的公钥ACA的公钥解开数字证书 3浏览器生成一个只有自己的对称密钥B,用公钥A加密,并传给 ×(其实足有协商的过程,这里为了便于理解先简化 4XX通过私钥解密,拿到对称密钥 「。5浏览器、Ⅹ×之后的数居追信,都用密钥B进行加 注意:对于每个i问XX的用户,生成的对称密钥B理论上来说都是不 样的。比如小明、小王、小光,可能生成的就是B1、B2、B3 参考下图:(咻上原图出处) http://www.dczou.com/viemall/592.html 7/13 2018/10/28 深入浅出 Https-eMa‖ 音户端(浏占器 服务遄 1请求htps连接0 -回证书公} 产生随机(对)密钥0 使用公钥密钥加密0 4:发送加密后的对称密钥Q 5通过对称密钥加密的密文通信0 证书可能存在哪些问题 了解了 Https加密通信的流稈后,对于数据裸奔的疑虑应该基本打 消了。然而,细心的观众可能又有疑问了:怎么样确保证书有合法有效的? 证书非法可能有两种情况 1.证书是伪造的:压根不是CA颁发的 2.证书被篡改过:比如将ⅩX网站的公钥给替换了 举个例子 我们知道,这个世界上存在一种东西叫做代理,于是,上面小明登陆 XX网站有可能是这样的,小明的登陆请求先到了代理服务器,代理服务器 再将请求转发到的授叹服务器 1小明-邪恶的代理服务琴->登陆受权服务器 2小明<-邪恶的代理服务器<-登陆漫权康务器 然后,这个世界坏人太多了,某一天,代理服务器动了坏心思(也有 可能是被入侵),将小明的请求拦截了。同时,返回了一个非法的证书 http://www.dczou.com/viemall/592.html 8/13 2018/10/28 深入浅出 Https-eMa‖ 1小明->邪恶的代理服务器-x->登陆权服务器 2小明<-邪悲的代理服务器-x->登陆受权服务器 如果善良的小明相信了这个证书,那他就再次裸奔了。当然不能这 样羊,那么,是通过什么机制来防止这种事情的放生的呢。 下面,我们先来看看"证书有哪些內容,然后就可以大致猜刭是如何进 行预防的了 书简介 在正式介绍让书的格式前,先插播个小广告,枓普下数字签名和摘 要,然后再对证书进行非深入的介绍。 为什么呢?因为数字签名、摘要是证书防伪非常关键的武器。 数字签名与搞要 简单的来说,“摘要"就是对传输的内容,通过hash算法计算出一段 定长度的串(是不是联想到了文摘要)。然后,在通过CA的私钥对这 段摘要进行加密,加密后得到的结果就是数字签名"。(这里提到CA的私 钥,后面再进行介绍) 明文->hash运算→摘要→私钥加密→数字签名 结合上面内容,我们知道,这段数字签名只有CA的公钥才能够解密 接下来,我们再来看看神秘的证书“究竞包含了什么內容,然后就大 致猜刭是如何对非沄证书进行预防的了。 数字签名、摘要进一步了解可参考这篇文章。 王书格式 先无耻的贴上一大段内容,证书格式来自这篇不错的文章 《pen55L与55L数字证书概念贴》 内容非常多,这里我们需要关注的有几个点 http://www.dczou.com/viemall/592.html 9/13 2018/10/28 深入浅出 Https-eMa‖ 1.证书包含了颁发证书的机构的名字一CA 2.证书内容本身的数字签名(用cA私钥加密) 3证书持有者的公钥 4.证书签名用到的hash算法 此外,有一点需要补充下,就是 1.CA本身有自己的证书,江湖人称"根证书"。这个"根证书“是用 来证明CA的身份的,本质是一份普通的数字证书。 2.浏览器通常会内置大多数主流权威CA的根证书。 证书格式 1:证书版木号( Version) 1版本号指明X50证书的格式版本,现在的值可以为 23456 1):v1 3)2:V3 为将来的版本进行了预定义 72.证书序列号( Serial number) 8列号指定山A分配给证书的唯的”数字型标炽符”,当证书被取消时,实际 9上是将此证书的序列号放入山cA签发的RL中 1这也是序列号唯一的原因 11 123,签名算法标识符 Algorithm 13签名算法识片米指定HCA签发证书时所使用的"签名算汏"。算汏示识符用来 14 指定CA签发证书时所使用约 1)公开密钥算法 16 17 2)hash算法 example: sha256WithRSAEncryption 18须向国际名标准组织〔如IS0)注册 2 4.签发机构名(工 21此域用兴水识签发证书的CA的x,566DN(DN- Distinguished Name)名字。包 22 23 )国家(C) 2)省方(sT 25 3)地 4)组织机构 27 5)羊位部门(ou) 通月名(CN) 29 7)邮箱地均 3 31 5.有效期( Validity) 定证书的有效期,包括: 33 1)证书开始生效的∏期时间 34 2)证书失效的日期和时间 35每次使月证书时,需要榆查证书是否在有效期内 36 376,证书用户名5 ubject) 38 指定证有者的X580唯一名字。包括 48 1)国家(C) 2)省(ST) 41 3)地区(L 4)组织机构(o) 43 5)单位部门(0u) 45 6)通月名(CN) 7)邮箱地址 477.证书持有者公密钙信息( (Subject Public Key Info) 48证书持有者公开密钥信息域包含两个重要信息 49 1)证书寺有着的公开密钥的值 52法,2)公开密钥使用的算法乐识符。比标识符包含公开密钥算法和h35算 5 http://www.dczou.com/viemall/592.html 10/13

...展开详情
试读 13P 深入浅出HTTPS
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
北极的Coder 垃圾,垃圾,垃圾!
2019-01-23
回复
春夜喜雨 不是一本书,是一个博客的网页内容http://www.dczou.com/viemall/592.html,对个人的帮助不太大。
2018-12-03
回复
上传资源赚积分or赚钱
    最新推荐
    深入浅出HTTPS 44积分/C币 立即下载
    1/13
    深入浅出HTTPS第1页
    深入浅出HTTPS第2页
    深入浅出HTTPS第3页

    试读结束, 可继续读1页

    44积分/C币 立即下载 >