百度搜索关键字只支持关键字与和非运算,或运算不支持吗?

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}
微博"第一网红"张大奕赴美上市,王思聪却不看好,现在网红那

如果没有那你至少也听说过张大奕、大金、虫虫、左娇娇、管阿姨这些网红的名字。她们都是从“如涵”孵化絀的网络红人“如涵”共孵化113位KOL,..

}

百度在2015年即完成HTTPS改造那大型网站的HTTPS改造中都有哪些实践经验,学院君特分析这篇干货满满系列内容转自百度运维博客。3Hl免费资源网

1 前言3Hl免费资源网

百度已经于近日上線了全站 HTTPS 的安全搜索默认会将 HTTP 请求跳转成 HTTPS。本文重点介绍 HTTPS 协议, 并简单介绍部署全站 HTTPS 的意义3Hl免费资源网

HTTPS 可以认为是 HTTP + TLS。HTTP 协议大家耳熟能详叻目前大部分 WEB 应用和网站都是使用 HTTP 协议传输的。3Hl免费资源网

TLS 是传输层加密协议它的前身是 SSL 协议,最早由 netscape 公司于 1995 年发布1999 年经过 IETF 讨论和規范后,改名为 TLS如果没有特别说明,SSL 和 TLS 说的都是同一个协议3Hl免费资源网

HTTP 和 TLS 在协议层的位置以及 TLS 协议的组成如下图:3Hl免费资源网

TLS 协议主偠有五部分:应用数据层协议,握手协议报警协议,加密消息确认协议心跳协议。3Hl免费资源网

TLS 协议本身又是由 record 协议传输的record 协议的格式如上图最右所示。3Hl免费资源网

TLS1.2 和 TLS1.1 暂时没有已知的安全漏洞比较安全,同时有大量扩展提升速度和性能推荐大家使用。3Hl免费资源网

需偠关注一点的就是 TLS1.3 将会是 TLS 协议一个非常重大的改革不管是安全性还是用户访问速度都会有质的提升。不过目前没有明确的发布时间3Hl免費资源网

同时 HTTP2 也已经正式定稿,这个由 SPDY 协议演化而来的协议相比 HTTP1.1 又是一个非常重大的变动能够明显提升应用层数据的传输效率。3Hl免费资源网

百度使用 HTTPS 协议主要是为了保护用户隐私防止流量劫持。3Hl免费资源网

HTTP 本身是明文传输的没有经过任何安全处理。例如用户在百度搜索关键字了一个关键字比如“苹果手机”,中间者完全能够查看到这个信息并且有可能打电话过来骚扰用户。也有一些用户投诉使用百度时发现首页或者结果页面浮了一个很长很大的广告,这也肯定是中间者往页面插的广告内容如果劫持技术比较低劣的话,用户甚臸无法访问百度3Hl免费资源网

这里提到的中间者主要指一些网络节点,是用户数据在浏览器和百度中间传输必须要经过的节点比如 WIFI 热点,路由器防火墙,反向代理缓存服务器等。3Hl免费资源网

在 HTTP 协议下中间者可以随意嗅探用户搜索内容,窃取隐私甚至篡改网页不过 HTTPS 昰这些劫持行为的克星,能够完全有效地防御3Hl免费资源网

总体来说,HTTPS 协议提供了三个强大的功能来对抗上述的劫持行为:3Hl免费资源网

1  內容加密。浏览器到百度服务器的内容都是以加密形式传输中间者无法直接查看原始内容。3Hl免费资源网

2  身份认证。保证用户访问的是百度服务即使被 DNS 劫持到了第三方站点,也会提醒用户没有访问百度服务有可能被劫持3Hl免费资源网

3,  数据完整性防止内容被第三方冒充或者篡改。3Hl免费资源网

那 HTTPS 是如何做到上述三点的呢下面从原理角度介绍一下。3Hl免费资源网

4.1 内容加密3Hl免费资源网

加密算法一般分为两种对称加密和非对称加密。所谓对称加密(也叫密钥加密)就是指加密和解密使用的是相同的密钥而非对称加密(也叫公钥加密)就是指加密和解密使用了不同的密钥。3Hl免费资源网

图 2 对称加密3Hl免费资源网 图 3 非对称加密3Hl免费资源网

对称内容加密强度非常高一般破解不了。泹存在一个很大的问题就是无法安全地生成和保管密钥假如客户端软件和服务器之间每次会话都使用固定的,相同的密钥加密和解密肯定存在很大的安全隐患。如果有人从客户端端获取到了对称密钥整个内容就不存在安全性了,而且管理海量的客户端密钥也是一件很複杂的事情3Hl免费资源网

非对称加密主要用于密钥交换(也叫密钥协商),能够很好地解决这个问题浏览器和服务器每次新建会话时都使用非对称密钥交换算法协商出对称密钥,使用这些对称密钥完成应用数据的加解密和验证整个会话过程中的密钥只在内存中生成和保存,而且每个会话的对称密钥都不相同(除非会话复用)中间者无法窃取。3Hl免费资源网

非对称密钥交换很安全但同时也是 HTTPS 性能和速度嚴重降低的“罪魁祸首”。想要知道 HTTPS 为什么影响速度为什么消耗资源,就一定要理解非对称密钥交换的整个过程3Hl免费资源网

下面重点介绍一下非对称密钥交换的数学原理及在 TLS 握手过程中的应用。3Hl免费资源网

4.1.1 非对称密钥交换3Hl免费资源网

在非对称密钥交换算法出现以前对稱加密一个很大的问题就是不知道如何安全生成和保管密钥。非对称密钥交换过程主要就是为了解决这个问题使得对称密钥的生成和使鼡更加安全。3Hl免费资源网

密钥交换算法本身非常复杂密钥交换过程涉及到随机数生成,模指数运算空白补齐,加密签名等操作。3Hl免費资源网

常见的密钥交换算法有 RSAECDHE,DHDHE 等算法。它们的特性如下:3Hl免费资源网

RSA:算法实现简单诞生于 1977 年,历史悠久经过了长时间的破解测试,安全性高缺点就是需要比较大的素数(目前常用的是 2048 位)来保证安全强度,很消耗 CPU 运算资源RSA 是目前唯一一个既能用于密钥交換又能用于证书签名的算法。3Hl免费资源网

DH:diffie-hellman 密钥交换算法诞生时间比较早(1977 年),但是 1999 年才公开缺点是比较消耗 CPU 性能。3Hl免费资源网

ECDHE:使用椭圆曲线(ECC)的 DH 算法优点是能用较小的素数(256 位)实现 RSA 相同的安全等级。缺点是算法实现复杂用于密钥交换的历史不长,没有经過长时间的安全攻击测试3Hl免费资源网

DHE:不支持 ECC。非常消耗 CPU 资源3Hl免费资源网

建议优先支持 RSA 和 ECDH_RSA 密钥交换算法。原因是:3Hl免费资源网

2  目前還有至少 20% 以上的客户端不支持 ECDHE,我们推荐使用 RSA 而不是 DH 或者 DHE因为 DH 系列算法非常消耗 CPU(相当于要做两次 RSA 计算)。3Hl免费资源网 需要注意通常所說的 ECDHE 密钥交换默认都是指 ECDHE_RSA使用 ECDHE 生成 DH 算法所需的公私钥,然后使用 RSA 算法进行签名最后再计算得出对称密钥3Hl免费资源网

非对称加密相比对稱加密更加安全,但也存在两个明显缺点:3Hl免费资源网

1  CPU 计算资源消耗非常大。一次完全 TLS 握手密钥交换时的非对称解密计算量占整个握掱过程的 90% 以上。而对称加密的计算量只相当于非对称加密的 0.1%如果应用层数据也使用非对称加解密,性能开销太大无法承受。3Hl免费资源網

2  非对称加密算法对加密内容的长度有限制,不能超过公钥长度比如现在常用的公钥长度是 2048 位,意味着待加密内容不能超过 256 个字节3Hl免费资源网

所以公钥加密目前只能用来作密钥交换或者内容签名,不适合用来做应用层传输内容的加解密3Hl免费资源网

非对称密钥交换算法是整个 HTTPS 得以安全的基石,充分理解非对称密钥交换算法是理解 HTTPS 协议和功能的关键3Hl免费资源网

下面分别通俗地介绍一下 RSA 和 ECDHE 在密钥交换过程中的应用。3Hl免费资源网

RSA 算法的安全性是建立在乘法不可逆或者大数因子很难分解的基础上RSA 的推导和实现涉及到了欧拉函数和费马定理忣模反元素的概念,有兴趣的读者可以自行百度3Hl免费资源网

RSA 算法是统治世界的最重要算法之一,而且从目前来看RSA 也是 HTTPS 体系中最重要的算法,没有之一3Hl免费资源网

RSA 的计算步骤如下:3Hl免费资源网

4,  求出了 e和 d,假设明文 m = 135密文用 c 表示。那么加解密计算如下:3Hl免费资源网

实際应用中(n,e) 组成了公钥对,(n,d)组成了私钥对其中 n 和 d 都是一个接近 22048的大数。即使现在性能很强的 CPU想要计算 m≡c^d mod(n),也需要消耗比较大的计算资源和时间3Hl免费资源网

公钥对 (n, e) 一般都注册到了证书里,任何人都能直接查看比如百度证书的公钥对如下图,其中最末 6 个数字(010001)换算成 10 进制就是 65537也就是公钥对中的 e。e 取值比较小的好处有两个:3Hl免费资源网

2  加大 server 端的破解难度。e 比较小私钥对中的 d 必然会非常大。所鉯 d 的取值空间也就非常大增加了破解难度。3Hl免费资源网

那为什么 (n,e) 能做为公钥公开甚至大家都能直接从证书中查看到,这样安全吗分析如下:3Hl免费资源网

由于 ed≡1 mod ?(n),知道了 e 和 n想要求出私钥 d,就必须知道?(n)而?(n)=(p-1)*(q-1),必须计算出 p 和 q 才能确定私钥 d但是当 n 大到一定程度时(仳如接近 2^2048),即使现在最快的 CPU 也无法进行这个因式分解即无法知道 n 是由哪个数 p 和 q 乘出来的。所以就算知道了公钥整个加解密过程还是非常安全的。3Hl免费资源网

介绍完了 RSA 的原理那最终会话所需要的对称密钥是如何生成的呢?跟 RSA 有什么关系3Hl免费资源网

以 TLS1.2 为例简单描述一丅,省略跟密钥交换无关的握手消息过程如下:3Hl免费资源网

而 master secrect 包含了六部分内容,分别是用于校验内容一致性的密钥用于对称内容加解密的密钥,以及初始化向量(用于 CBC 模式)客户端和服务端各一份。从上式可以看出把 premaster_key 赋值给 secret,”master key”赋值给 label浏览器和服务器端的两個随机数做种子就能确定地求出一个 48 位长的随机数。3Hl免费资源网

至此浏览器侧的密钥已经完成协商。3Hl免费资源网

5  服务端使用私钥解密嘚到 premaster_secrect。又由于服务端之前就收到了随机数 1所以服务端根据相同的生成算法,在相同的输入参数下求出了相同的 master secrect。3Hl免费资源网

RSA 密钥协商握手过程图示如下:3Hl免费资源网

图 6 RSA 密钥协商过程3Hl免费资源网

可以看出密钥协商过程需要 2 个 RTT,这也是 HTTPS 慢的一个重要原因而 RSA 发挥的关键作鼡就是对 premaster_secrect 进行了加密和解密。中间者不可能破解 RSA 算法也就不可能知道 premaster_secrect,从而保证了密钥协商过程的安全性3Hl免费资源网

ECDHE 算法实现要复杂佷多,主要分为两部分:diffie-hellman 算法(简称为 DH)及 ECC(椭圆曲线算术)他们的安全性都是建立在离散对数计算很困难的基础上。3Hl免费资源网

简单介绍一下 dh 算法的实现先介绍两个基本概念:3Hl免费资源网

离散对数:对任意整数 b 和素数 p 的本原根 a,存在唯一的指数 i 满足:3Hl免费资源网

则称 i 是 b 嘚以 a 为底的模 p 的离散对数3Hl免费资源网

理解这两个概念,dh 算法就非常简单了示例如下:3Hl免费资源网

上述公式中的 Ys,Yc,P, a, 都是公开信息,可以被Φ间者查看只有 Ks,Kc 作为私钥没有公开,当私钥较小时通过穷举攻击能够计算出共享密钥,但是当私钥非常大时穷举攻击肯定是不可行嘚。3Hl免费资源网

DH 算法有一个比较大的缺陷就是需要提供足够大的私钥来保证安全性所以比较消耗 CPU 计算资源。ECC 椭圆曲线算术能够很好的解決这个问题224 位的密钥长度就能达到 RSA2048 位的安全强度。3Hl免费资源网

ECC 的曲线公式描述的其实不是椭圆只是跟椭圆曲线周长公式形似才叫椭圆曲线加密算术。ECC 涉及到了有限域、群等近世代数的多个概念就不做详细介绍了。3Hl免费资源网

ECC 安全性依赖于这样一个事实:3Hl免费资源网

上式看起来非常简单但有如下约束条件:3Hl免费资源网

1,  Q 是一个非常大的质数p, k, q 都是椭圆曲线有限域上的离散点。3Hl免费资源网

2  有限域定义叻自己的加法和乘法法则,即使 kQ 的运算也非常复杂3Hl免费资源网

1,  定义一个满足椭圆方程的有限域即挑选 p, a, b 满足如下方程:3Hl免费资源网

由仩面描述可知,只要确定 p, a, b 就能确定一条有限域上的椭圆曲线由于不是所有的椭圆曲线都能够用于加密,所以 p, a, b 的选取非常讲究直接关系曲线的安全性和计算速度。3Hl免费资源网

Openssl 实现的也是 FIPS 推荐的 256 位素数域上的椭圆曲线参数定义如下:3Hl免费资源网

简单介绍了 ECC 和 DH 算法的数学原悝,我们看下 ECDHE 在 TLS 握手过程中的应用3Hl免费资源网

同样以 TLS1.2 为例,简单描述一下过程:3Hl免费资源网

5  浏览器接收 server_key_exchange 之后,使用证书公钥进行签名解密和校验获取服务器端的 ECDH 临时公钥,生成会话所需要的共享密钥3Hl免费资源网

至此,浏览器端完成了密钥协商3Hl免费资源网

8,  服务器苼成会话所需要的共享密钥3Hl免费资源网

图示如下:3Hl免费资源网

4.1.2 对称内容加密3Hl免费资源网

非对称密钥交换过程结束之后就得出了本次会话需要使用的对称密钥。对称加密又分为两种模式:流式加密和分组加密流式加密现在常用的就是 RC4,不过 RC4 已经不再安全微软也建议网站盡量不要使用 RC4 流式加密。3Hl免费资源网

分组加密以前常用的模式是 AES-CBC但是 CBC 已经被证明容易遭受BEAST和LUCKY13 攻击。目前建议使用的分组加密模式是 AES-GCM不過它的缺点是计算量大,性能和电量消耗都比较高不适用于移动电话和平板电脑。3Hl免费资源网

4.2 身份认证3Hl免费资源网

身份认证主要涉及到 PKI 囷数字证书通常来讲 PKI(公钥基础设施)包含如下部分3Hl免费资源网

End entity:终端实体,可以是一个终端硬件或者网站3Hl免费资源网

CA:证书签发机構。3Hl免费资源网

RA:证书注册及审核机构比如审查申请网站或者公司的真实性。3Hl免费资源网

CRL issuer:负责证书撤销列表的发布和维护3Hl免费资源網

Repository:负责数字证书及 CRL 内容存储和分发。3Hl免费资源网

申请一个受信任的数字证书通常有如下流程:3Hl免费资源网

1  终端实体生成公私钥和证书請求。3Hl免费资源网

2  RA 检查实体的合法性。如果个人或者小网站这一步不是必须的。3Hl免费资源网

3  CA 签发证书,发送给申请者3Hl免费资源网

目前百度使用的证书是 X509v3 格式,由如下三个部分组成:3Hl免费资源网

1  tbsCertificate(to be signed certificate 待签名证书内容),这部分包含了 10 个要素分别是版本号,序列号签名算法标识,发行者名称有效期,证书主体名证书主体公钥信息,发行商唯一标识主体唯一标识,扩展等3Hl免费资源网

数字证书有两個作用:3Hl免费资源网

1,  身份授权确保浏览器访问的网站是经过 CA 验证的可信任的网站。3Hl免费资源网

2  分发公钥。每个数字证书都包含了注冊者生成的公钥在 SSL 握手时会通过 certificate 消息传输给客户端。比如前文提到的 RSA 证书公钥加密及 ECDHE 的签名都是使用的这个公钥3Hl免费资源网

申请者拿箌 CA 的证书并部署在网站服务器端,那浏览器发起握手接收到证书后如何确认这个证书就是 CA 签发的呢?怎样避免第三方伪造这个证书3Hl免費资源网

答案就是数字签名(digital signature)。数字签名是证书的防伪标签目前使用最广泛的 SHA-RSA 数字签名的制作和验证过程如下:3Hl免费资源网

1,  数字签洺的签发首先是使用哈希函数对待签名内容进行安全哈希,生成消息摘要然后使用 CA 自己的私钥对消息摘要进行加密。3Hl免费资源网

2  数芓签名的校验。使用 CA 的公钥解密签名然后使用相同的签名函数对待签名证书内容进行签名并和服务端数字签名里的签名内容进行比较,洳果相同就认为校验成功3Hl免费资源网

图 8 数字签名生成及校验3Hl免费资源网

这里有几点需要说明:3Hl免费资源网

1、数字签名签发和校验使用的密钥对是 CA 自己的公私密钥,跟证书申请者提交的公钥没有关系3Hl免费资源网

2、数字签名的签发过程跟公钥加密的过程刚好相反,即是用私鑰加密公钥解密。3Hl免费资源网

3、现在大的 CA 都会有证书链证书链的好处一是安全,保持根 CA 的私钥离线使用第二个好处是方便部署和撤銷,即如果证书出现问题只需要撤销相应级别的证书,根证书依然安全3Hl免费资源网

4、根 CA 证书都是自签名,即用自己的公钥和私钥完成叻签名的制作和验证而证书链上的证书签名都是使用上一级证书的密钥对完成签名和验证的。3Hl免费资源网

5、怎样获取根 CA 和多级 CA 的密钥对它们是否可信?当然可信因为这些厂商跟浏览器和操作系统都有合作,它们的公钥都默认装到了浏览器或者操作系统环境里比如firefox 就洎己维护了一个可信任的 CA 列表,而chrome 和 IE 使用的是操作系统的 CA 列表3Hl免费资源网

4.3 数据完整性3Hl免费资源网

这部分内容比较好理解,跟平时的 md5 签名類似只不过安全要求要高很多。openssl 现在使用的完整性校验算法有两种:MD5 或者 SHA由于 MD5 在实际应用中存在冲突的可能性比较大,所以尽量别采鼡 MD5 来验证内容一致性SHA 也不能使用 SHA0 和 SHA1,中国山东大学的王小云教授在 2005 年就宣布破解了 SHA-1 完整版算法3Hl免费资源网

微软和 google 都已经宣布 16 年及 17 年之後不再支持 sha1 签名证书。3Hl免费资源网

HTTPS 目前唯一的问题就是它还没有得到大规模应用受到的关注和研究都比较少。至于使用成本和额外开销完全不用太过担心。3Hl免费资源网

一般来讲使用 HTTPS 前大家可能会非常关注如下问题:3Hl免费资源网

1、证书费用以及更新维护。大家觉得申请證书很麻烦证书也很贵,可是证书其实一点都不贵便宜的一年几十块钱,最多也就几百而且现在也有了免费的证书机构,比如著名嘚 mozilla 发起的免费证书项目:let’s encrypt(https://letsencrypt.org/)就支持免费证书安装和自动更新这个项目将于今年中旬投入正式使用。3Hl免费资源网

数字证书的费用其实吔不高对于中小网站可以使用(可能存在安全隐患),像著名的 verisign 公司的证书一般也就几千到几万块一年不等当然如果公司对证书的需求比较大,定制性要求高可以建立自己的 CA 站点,比如 google能够随意签发 google 相关证书。3Hl免费资源网

2、HTTPS 降低用户访问速度HTTPS 对速度会有一定程度嘚降低,但是只要经过合理优化和部署HTTPS 对速度的影响完全可以接受。在很多场景下HTTPS 速度完全不逊于 HTTP,如果使用 SPDYHTTPS 的速度甚至还要比 HTTP 快。3Hl免费资源网

大家现在使用百度 HTTPS 安全搜索有感觉到慢吗?3Hl免费资源网

3、HTTPS 消耗 CPU 资源需要增加大量机器。前面介绍过非对称密钥交换3Hl免費资源网

4、消耗 CPU 计算资源的大户,此外对称加解密,也需要 CPU 的计算3Hl免费资源网

5、同样地,只要合理优化HTTPS 的机器成本也不会明显增加。对于中小网站完全不需要增加机器也能满足性能需求。3Hl免费资源网

6 后记3Hl免费资源网

国外的大型互联网公司很多已经启用了全站 HTTPS这也昰未来互联网的趋势。国内的大型互联网并没有全站部署 HTTPS只是在一些涉及账户或者交易的子页面 / 子请求上启用了 HTTPS。百度搜索关键字首次铨站部署 HTTPS对国内互联网的全站 HTTPS 进程必将有着巨大的推动作用。3Hl免费资源网

目前互联网上关于 HTTPS 的中文资料比较少本文就着重介绍了 HTTPS 协议涉及到的重要知识点和平时不太容易理解的盲区,希望能对大家理解 HTTPS 协议有帮助百度 HTTPS 性能优化涉及到大量内容,从前端页面、后端架构、协议特性、加密算法、流量调度、架构和运维、安全等方面都做了大量工作3Hl免费资源网

}

我要回帖

更多关于 百度搜索关键字 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信