分类
知识中心

SSL证书是什么?ssl证书的重要性有哪些?

SSL(Secure Sockets Layer,安全套接层)是支持在网络服务器(主机)与网页浏览器(客户端)间建立加密连接的标准技术。运用SSL技术后,保证了主机与客户端连接过程中的数据安全。随着电子商务的发展,越来越多的运用SSL保护用户在线交易的安全性。如果您访问某网站时,在浏览器地址栏输入的地址以“https://”开头,则代表您正通过SSL建立安全连接。

SSL连接如何保护数据安全

SSL证书是什么?ssl证书的重要性有哪些?-1

使用SSL证书后,即在用户网络浏览器及网络服务器间创建了加密数据连接,这也就意味着,服务器与浏览器间的任何交易数据在解密前是不可读的。因此,正由于加密数据不易理解性,也防止了网络中的第三者窥探数据信息。

如何建立加密连接

SSL证书是什么?ssl证书的重要性有哪些?-2

在尝试建立安全连接前,需要进行以下三步操作:

1、在地址栏输入或选择安全URL,例如“https://www.baidu.com”;

2、服务器在收到您发送的安全连接请求后,提交尝试在浏览器与服务器间建立可信任连接的回复,这也就是所谓的“SSL握手”;

3、通过SSL握手验证SSL证书后,服务器与客户端间的数据将会以加密的形式传输,保证其隐私与安全。

如何直观辨别网站是否使用SSL
如果网站使用了SSL证书,虽然SSL协议具体内容并不会直接展示给用户,但大部分浏览器支持在地址栏显示一个锁的图案或其他形式证明其使用了SSL,这也表明了您目前正享受SSL加密会话的保护。如果您想了解SSL证书详细信息,只需点击地址栏头部“锁”的图标即可。

SSL对访问者意味着什么?
大 部分SSL证书包含域名、公司名称、国家及详细地址,当然也包含证书的有效期与证书颁发机构的详细信息。当浏览器尝试与网站建立SSL连接时,会首先核实 证书是否过期,是否由可信任的机构颁发以及网站是否正确。如果有任一项出现错误,浏览器将会提示警告,告知用户网站未使用SSL。

分类
知识中心

与HTTP有什么区别?HTTPS的六个误解

近日,百度全站开启了HTTPS加密搜索,从而引发了关于HTTPS的各种讨论:HTTPS和HTTP有什么区别、如何看待百度全面开启HTTPS加密搜索、HTTPS加密对网站有何影响等等……本文是一篇2011年的老文,但在“HTTPS协议”认知这一问题上还有很有价值的。

  • 百度已启用全站HTTPS加密搜索

以下为正文:

HttpWatch的官方网志刊登了一篇好文章,澄清了一些HTTPS协议容易产生误解的地方。学习之后,我增长了不少网页加密通信的知识。我觉得这篇文章很实用,值得留作参考,就翻译了出来。

HTTPS的六个误解

 

 

误解六:HTTPS无法缓存

许多人以为,出于安全考虑,浏览器不会在本地保存HTTPS缓存。实际上,只要在HTTP头中使用特定命令,HTTPS是可以缓存的。

微软的IE项目经理Eric Lawrence写道:

“说来也许令人震惊,只要HTTP头允许这样做,所有版本的IE都缓存HTTPS内容。比如,如果头命令是Cache-Control:max-age=600,那么这个网页就将被IE缓存10分钟。IE的缓存策略,与是否使用HTTPS协议无关。(其他浏览器在这方面的行为不一致,取决于你使用的版本,所以这里不加以讨论。)”

Firefox默认只在内存中缓存HTTPS。但是,只要头命令中有Cache-Control:Public,缓存就会被写到硬盘上。下面的图片显示,Firefox的硬盘缓存中有HTTPS内容,头命令正是Cache-Control:Public。

 

误解五:HTTPS站点必须有独享的IP地址

由于IPv4将要分配完毕,所以很多人关心这个问题。每个IP地址只能安装一张SSL证书,这是毫无疑问的。但是,如果你使用子域名通配符SSL证书(wildcard SSL certificate),就能在一个IP地址上部署多个HTTPS子域名。比如,https://www.httpwatch.com和https://store.httpwatch.com,就共享同一个IP地址。

 

另外,UCC(统一通信证书,Unified Communications Certificate)支持一张证书同时匹配多个站点,可以是完全不同的域名。SNI(服务器名称指示,Server Name Indication)允许一个IP地址上多个域名安装多张证书。服务器端,Apache和Nginx支持该技术,IIS不支持;客户端,IE7+、Firefox 2.0+、Chrome 6+、Safari 2.1+和Opera 8.0+支持。

误解四:转移服务器时要购买新证书

部署SSL证书,需要这样几步:

1. 在你的服务器上,生成一个CSR文件(SSL证书请求文件,SSL Certificate Signing Request)。

2. 使用CSR文件,购买SSL证书。

3. 安装SSL证书

这些步骤都经过精心设计,保证传输的安全,防止有人截取或非法获得证书。结果就是,你在第二步得到的证书不能用在另一台服务器上。如果你需要这样做,就必须以其他格式输出证书。

比如,IIS的做法是生成一个可以转移的.pfx文件,并加以密码保护。

 

将这个文件传入其他服务器,将可以继续使用原来的SSL证书了

误解三:HTTPS太慢

使用HTTPS不会使你的网站变得更快(实际上有可能,请看下文),但是有一些技巧可以大大减少额外开销。

首先,只要压缩文本内容,就会降低解码耗用的CPU资源。不过,对于当代CPU来说,这点开销不值一提。

其次,建立HTTPS连接,要求额外的TCP往返,因此会新增一些发送和接收的字节。但是,从下图可以看到,新增的字节是很少的。

 

第一次打开网页的时候,HTTPS协议会比HTTP协议慢一点,这是因为读取和验证SSL证书的时间。下面是一张HTTP网页打开时间的瀑布图。

 

同一张网页使用HTTPS协议之后,打开时间变长了。

 

建立连接的部分,大约慢了10%。但是,一旦有效的HTTPS连接建立起来,再刷新网页,两种协议几乎没有区别。先是HTTP协议的刷新表现:

 

然后是HTTPS协议:

 

某些用户可能发现,HTTPS比HTTP更快一点。这会发生在一些大公司的内部局域网,因为通常情况下,公司的网关会截取并分析所有的网络通信。但 是,当它遇到HTTPS连接时,它就只能直接放行,因为HTTPS无法被解读。正是因为少了这个解读的过程,所以HTTPS变得比较快。

误解二:有了HTTPS,Cookie和查询字符串就安全了

虽然无法直接从HTTPS数据中读取Cookie和查询字符串,但是你仍然需要使它们的值变得难以预测。

比如,曾经有一家英国银行,直接使用顺序排列的数值表示session id:

 

黑客可以先注册一个账户,找到这个cookie,看到这个值的表示方法。然后,改动cookie,从而劫持其他人的session id。至于查询字符串,也可以通过类似方式泄漏。

误解一:只有注册登录页,才需要HTTPS

这种想法很普遍。人们觉得,HTTPS可以保护用户的密码,此外就不需要了。Firefox浏览器新插件Firesheep,证明了这种想法是错的。我们可以看到,在Twitter和Facebook上,劫持其他人的session是非常容易的。

咖啡馆的免费WiFi,就是一个很理想的劫持环境,因为两个原因:

1. 这种WiFi通常不会加密,所以很容易监控所有流量。

2. WiFi通常使用NAT进行外网和内网的地址转换,所有内网客户端都共享一个外网地址。这意味着,被劫持的session,看上去很像来自原来的登录者。

以Twitter为例,它的登录页使用了HTTPS,但是登录以后,其他页面就变成了HTTP。这时,它的cookie里的session值就暴露了。

 

也就是说,这些cookie是在HTTPS环境下建立的,但是却在HTTP环境下传输。如果有人劫持到这些cookie,那他就能以你的身份在Twitter上发言了。

分类
网络新闻

全网HTTPS已不遥远,如何实现?

用Chrome打开百度发现网址前面多了一个“锁形”图标,查了下,百度在去年年底已启用全站HTTPS。支付宝等涉及交易、安全性极高的网站一直使用HTTPS,搜索引擎为何需要HTTPS呢?在安全问题层出不穷的今天,HTTPS变得非常必要,越来越多的网站都在给自己增加这个“锁”。那么,在互联网采取现行基础架构下,全网HTTPS有无可能?

为什么需要HTTPS

HTTP全名超文本传输协议,它是网络应用广泛使用的协议,客户端据此获取服务器上的超文本内容。客户端包括浏览器、PC软件客户端以及大部分手机App。超文本内容则以HTML为主,客户端拿到HTML内容后可根据规范进行解析呈现。因此,HTTP主要负责的是“内容的请求和获取”。

问题就出在这部分。行监控、劫持、阻挡。一些关键参数比如登录密码开发者会在客户端进行MD5加密,不过互联网所承载的机密信息远不只是密码,搜索内容同样属于敏感信息。

在没有HTTPS时,运营商可在用户发起请求时直接跳转到某个广告,或者直接改变搜索结果插入自家的广告。浏览器和安全软件可以监听用户搜索在结果页植入广告。一些中间人还可把用户数据直接转卖,这样你搜索了“保险”以后你就成了保险公司电话推销的目标。如果劫持代码出现了BUG,则直接让用户无法搜索,出现白屏。

不只是搜索引擎,其他的网络应用同样会面临这些问题:数据泄露、请求劫持、内容篡改等等,核心原因就在于HTTP是全裸式的明文请求,域名、路径和参数都被中间人们看得一清二楚。HTTPS做的就是给请求加密,让其对用户更加安全。对于自身而言除了保障用户利益外,还可避免本属于自己的流量被挟持,以保护自身利益。

尽管HTTPS并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击。不过HTTPS是现行架构下最安全的解决方案,并且它大幅增加了中间人攻击的成本。

HTTPS的代价是什么?

如果HTTPS更安全,为什么现在只有少部分网站采取了HTTPS呢?答案在于“S”的代价。去年底,卡内基梅隆大学的一份研究量化了“S”的代价:HTTPS会让页面加载时间增加了50%,增加10%到20%的耗电,此外,HTTPS还会影响缓存,增加数据开销和功耗,已有安全措施也会受到影响。

服务器资源、流量资源上付出更多成本。

HTTPS工作原理

开发者向证书管理机构申请证书需要付费,这无可厚非因为证书管理和升级需要成本。但对于中小型网站而言,这会成为障碍。除了证书这一固定成本之外,网页引入的资源如JS、CSS和图片文件均需要采取HTTPS,这些资源可能来自不同部门或者公司,需要进行对应处理。

还有HTTPS会增加服务器的计算和带宽成本。SSL层在TCP协议的握手流程上增加了几次握手,另外每一次请求都需要进行RSA校验计算,这都会给服务器造成更多计算压力。缓存效率的变低,支持HTTPS的CDN(内容发布网络)节点更少,这会增加流量成本。网络规模越大,计算和流量成本越高。

对用户同样会有影响,比如要求浏览器兼容HTTPS,部分情况可能还需要接受某个网站的证书,操作更复杂。HTTPS握手次数增加则会让请求有一定程度的延迟。不过,在光纤宽带普及的今天,这样的延迟基本已经感知不到。目前,网银、支付等安全性要求极高的工具已经普遍采取HTTPS被用户接受,这说明HTTPS普及最大的障碍还是在服务器端,即如何推动更多网站支持HTTPS。

如何推动HTTPS普及?

在海外,有数据统计,HTTPS流量已超过全网50%。相比国外而言,我国的HTTPS普及率还比较低,仅在支付、账号等领域有限的安全保护已无法满足网民需求。能否助力HTTPS在中国的进程,就要看像百度这样起示范作用的大公司的推动效应了。

1、搜索引擎作为内容入口,在HTTPS普及中做好内容引导。

百度已全站启用HTTPS,Google旗下服务包括搜索、日历、GMAIL等同样是全站HTTPS。搜索引擎作为内容入口,可以通过“引导”,推动HTTPS。一种方式是提升HTTPS的搜索排名权重;另一种方式是对没有采取HTTPS的网站进行“不安全”标记,或者对HTTPS网站进行认证标记。区别对待HTTP和HTTPS内容,给予不同的流量激励,引导站长转到HTTPS。

“HTTPS项目背后有着对众多技术难题的攻克,百度搜索从基础架构调试,到全部主域及子域名的修改,再到速度的优化,很好地解决了困扰多年的中间者劫持问题,”百度方面介绍,现在百度HTTPS安全加密已经覆盖主流浏览器,对用户的安全和隐私将形成一道完整的机制保护。

2、大公司承担更多责任,带头的同时做好各项扶持。

大型互联网公司首先应该自己转向HTTPS、主动付费购买证书,起到带头作用。还可赞助OPENSSL等技术研究机构,不断升级SSL技术,避免出现“心脏出血”这样的漏洞。当然,大公司还可以在SSL及HTTPS技术普及、开发资源、社区宣贯、媒体宣传上做更多努力。

3、免费SSL证书到来,清理掉HTTPS普及最大障碍。

Mozilla、思科、Akamai、IdenTrust、EFF 和密歇根大学研究人员宣布了 Let’s Encrypt CA项目,计划为网站提供免费 SSL 证书,加速将 Web 从 HTTP 过渡到 HTTPS。这个项目将在2015年夏天开始像网站提供和管理免费证书,并且降低证书安装复杂度,安装时间将降低到20-30秒。不过,要想获得更高级的复杂证书,还需要付费,这意味着大公司们依然需要花钱购买证书。这个计划可以帮助中小网站HTTPS普及。

4、浏览器区别对待HTTPS,做好内容处理和引导。

在HTTPS普及过程中,浏览器需要做好兼容性处理,比如更快地解析HTTPS协议、更简单地管理SSL证书,并且最好可以将HTTPS和SSL的复杂性隐藏起来,避免降低用户体验。另外,浏览器可以对HTTP和HTTPS网站进行区别标记和显著提醒,引导用户选择HTTPS内容。如果用户更亲睐选择HTTPS内容,自然会反过来促进站长们转向HTTPS,哪怕会付出一定代价。浏览器跟搜索引擎一样是内容入口,自然可以起到引导作用。

需要一个更安全的网络承载环境,否则安全事件就会此起彼伏。升级HTTPS需要联动,基础设施、网络架构、底层服务提供商都要同步转换,跨过所谓的缓存终结者、性能杀手等潜在矛盾。就百度此次全站实行HTTPS安全加密来说,百度本身就比较技术范儿,做这件事也体现了大公司的社会责任及技术实力。百度全站支持HTTPS,意味着中国大公司对HTTPS的重视。接下来必将有更多大公司转向HTTPS,在中国互联网全网HTTPS中起好带头作用。

分类
网络新闻

如何看待百度全站搜索进入HTTPS时代?

百度自2014年底起,开始对部分地区开放了HTTPS加密搜索服务。直到上周,百度表示全站开启了HTTPS安全加密搜索。那么,该如何看待“百度全站采用HTTPS加密搜索”呢?

以下为来自知乎网友雷志兴-Berg的看法:

百度在工程开发上几乎不做没有性价比的事情。所以我们先看看https这个事情在技术上的投入在哪里。我没有参与此方面任何工作,都是根据我临时推想得到,比较乱,回头整理:

一、性能方面

1. 多几次握手,网络耗时变长,用户从http跳转到https还要一点时间

2. 机器性能,https要多做一次RSA校验

3. CDN,全国所有节点要支持https才行,另外,如果面对DDOS,https的解决方案也会复杂得多

二、对周边系统的影响

1. 页面里所有嵌入的资源都要改成https的,这些资源可能会来自不同的部门甚至不同的公司,包括:图片、js、form表单等等,否则浏览器就会报警。

2. 手机百度这类使用了百度搜索服务的客户端产品,也可能要修改

3. 解决第三方网站看不到refer的问题

4. 所有的开发、测试环境都要做https的升级

还有,上线前肯定是一大堆预案,保证切换过程顺畅,所以说下来,https这个事情的投入真心很大,不是说换就换的。

好了,这个事情的收益在哪里呢?用户的搜索安全

1. 被运营商强插广告,甚至在正常结果前面插一条广告

2. 有的时候劫持代码还会写错,导致用户访问白屏或者报错,妈蛋。

3. 手机上被浏览器或者什么卫士篡改或者劫持

4. 最恶心的是泄露用户数据,经常在网上看到说「我用百度搜了一个黄金,马上就有人联系我了」「我在百度上搜了一种病,马上医院就来电话了」

5. 另外,对百度的收入也有影响, 有不少公共wifi自动会自动给百度搜索加一个联盟的计费id。

其实在搜索HTTPS很久之前,百度就做了搜索结果url加密,我想应该是基于类似的考虑。

很多互联网公司在做大的时候都会遇到这个问题:https成本高,速度又慢,规模小的时候在涉及到登录和交易用上就够了,做大以后遇到信息泄露和劫持,想整体换,代价又很高。

三、https够不够?

肯定是不够的,但是没有更好的方案了。

附录:为什么更安全的 HTTPS 协议没有在互联网上全面采用?

  • SSL 证书需要钱。功能越强大的证书费用越高。个人网站、小网站没有必要一般不会用。
  • SSL证书通常需要绑定 IP,不能在同一 IP 上绑定多个域名。IPv4 资源不可能支撑这个消耗。( SSL 有扩展可以部分解决这个问题,但是比较麻烦,而且要求浏览器、操作系统支持。Windows XP 就不支持这个扩展,考虑到 XP 的装机量,这个特性几乎没用。)
  • HTTPS 连接缓存不如 HTTP 高效,大流量网站如非必要也不会采用。流量成本太高。
  • HTTPS 连接服务器端资源占用高很多,支持访客稍多的网站需要投入更大的成本。如果全部采用 HTTPS,基于大部分计算资源闲置的假设的 VPS 的平均成本会上去。
  • HTTPS 协议握手阶段比较费时,对网站的相应速度有负面影响。如非必要,没有理由牺牲用户体验。
  • 最关键的,SSL 证书的信用链体系并不安全。特别是在某些国家(咳咳,你们懂的)可以控制 CA根证书的情况下,中间人攻击一样可行。

另外,在客户端被植入无数后门、木马的状况下,HTTPS 连接的作用非常有限。这也许是支付宝不可能像 PayPal 那么易用的原因之一。

分类
知识中心

企业应该如何防范HTTPS伪造证书?

最近未经授权的HTTPS证书成为热门新闻话题,其中有些证书还是来自已熟知/理应可信的供应商的根存储。那么,企业应该如何防范这些伪造证书?

Michael Cobb:互联网的安全性在很大程度上依赖于对证书颁发机构(CA)的信任,CA颁发数字证书以供Web服务器用于识别自己和加密服务器及用户之间的流量。这些证书可以防止攻击者伪造网站或者窃听发送到和发送自网站的通信。

企业应该如何防范HTTPS伪造证书?-1

  不幸的是,这种信任正在被破坏,因为一系列针对CA(例如DigiNotar和Comodo)的攻击以及ANSSI情况中的糟糕做法—这导致颁发欺诈性或未经授权数字证书。伪造证书允许攻击者窥视Web服务器和浏览器之间发送的信息,即使这种连接似乎很安全。他们还可以用来欺骗内容以及执行网络钓鱼或中间人攻击。在最近的事件中,在CA印度国家信息中心(NIC)的证书发布过程受到攻击后,对很多谷歌的域名发出了未经授权数字证书。

NIC持有几个中间CA证书受印度政府的核准控制局(India CCA)信任。这些India CCA证书包含在微软Root Store中,因此Windows中运行的很多应用程序都信任该证书,包括IE浏览器和谷歌的Chrome浏览器。Mac OS X、iOS和Android操作系统中的根存储并不包含印度CCA的证书,所以并没有受到影响。Firefox也没有受到影响,因为它使用的是自己的根存储,其中不包含这些证书。

谷歌通过发布CRLSet迅速阻止了Chrome中的未经授权的证书。印度CCA随后撤销了所有NIC中间证书,并且进行了又一次CRLSet更新来包含这个撤销。同时,由于谷歌网站利用公共密钥pinning机制,Windows中的Chrome不会让谷歌网站接受这些伪造证书。pinning是一种HTTP协议,允许Web管理员指示浏览器在给定的时间内记住或者“pin”到Web服务器的数字证书,从而减少了在这个pin时间内可以验证该域名的机构数量。

目前有几个举措正试图改进对CA及其颁发证书的信任。这些包括谷歌的Certificate Transparency计划和DNS-based Authentication of Named Entities(DANE)。然而,到目前为止这些项目并没有广泛的部署。

浏览器的信任决策是基于根存储中信任根,因此企业保护其用户免受恶意证书的危害的最好办法是,确保浏览器保持更新了最新的证书信任列表。打开浏览器中的证书吊销检查并不能够很有效地确定证书是否仍然有效,并会显著减慢页面加载时间。更好的选择是使用防火墙来深层扫描SSL加密流量,以嗅出假证书或恶意代码。安全团队还应该监控安全新闻feeds,并且在还没有可用更新而对网络的风险被认为不可接受时,应该从根存储手动删除不受信任证书。在整个企业网络撤销根和清除本地缓存CTL的指令可以通过组策略来发布。

分类
知识中心

SSL证书利用密钥算法更安全

SSL证书对称密钥算法和MAC算法要求通信双方具有相同的密钥,否则解密或MAC值验证将失败。因此,要建立加密通道或验证消息完整性,必须先在通信双方部署一致的密钥。

SSL证书利用非对称密钥算法加密密钥的方法实现密钥交换,保证第三方无法获取该密钥。SSL客户端(如Web浏览器)利用SSL服务器(如Web服务器)的公钥加密密钥,将加密后的密钥发送给SSL服务器,只有拥有对应私钥的SSL服务器才能从密文中获取原始的密钥。SSL通常采用RSA算法加密传输密钥。

实际上,SSL客户端发送给SSL服务器的密钥不能直接用来加密数据或计算MAC值,该密钥是用来计算对称密钥和MAC密钥的信息,称为premaster secret。SSL客户端和SSL服务器利用premaster  secret计算出相同的主密钥(master secret),再利用master secret生成用于对称密钥算法、MAC算法等的密钥。premaster secret是计算对称密钥、MAC算法密钥的关键。

用来实现密钥交换的算法称为密钥交换算法。非对称密钥算法RSA用于密钥交换时,也可以称之为密钥交换算法。

利用非对称密钥算法加密密钥之前,发送者需要获取接收者的公钥,并保证该公钥确实属于接收者,否则,密钥可能会被非法用户窃取。如错误!未找到引用源。Cindy冒充Bob,将自己的公钥发给  Alice,Alice利用Cindy的公钥加密发送给Bob的数据,Bob由于没有对应的私钥无法解密该数据,而Cindy截取数据后,可以利用自己的私钥解密该数据。SSL证书利用PKI提供的机制保证公钥的真实性。

分类
知识中心

SSL证书身份验证更具有安全性

电子商务和网上银行等应用中必须保证要登录的Web服务器是真实的,以免重要信息被非法窃取。SSL证书利用数字签名来验证通信对端的身份。

非对称密钥算法可以用来实现数字签名。由于通过私钥加密后的数据只能利用对应的公钥进行解密,因此根据解密是否成功,就可以判断发送者的身份,如同发送者对数据进行了“签名”。例如,Alice使用自己的私钥对一段固定的信息加密后发

给Bob,Bob利用Alice的公钥解密,如果解密结果与固定信息相同,那么就能够确认信息的发送者为Alice,这个过程就称为数字签名

SSL客户端必须验证SSL服务器的身份,SSL服务器是否验证SSL客户端的身份,则由SSL服务器决定。

 SSL证书身份验证更具有安全性-1

使用数字签名验证身份时,需要确保被验证者的公钥是真实的,否则,非法用户可能会冒充被验证者与验证者通信。如错误!未找到引用源。Cindy冒充Bob,将自己的公钥发给 Alice,并利用自己的私钥计算出签名发送给Alice,Alice利用“Bob”的公钥(实际上为 Cindy的公钥)成功验证该签名,则Alice认为Bob的身份验证成功,而实际上与Alice通信的是冒充Bob的Cindy。SSL利用PKI提供的机制保证公钥的真实性。

为了避免网络中传输的数据被非法篡改,SSL利用基于MD5或SHA的MAC算法来保证消息的完整性。

MAC算法是在密钥参与下的数据摘要算法,能将密钥和任意长度的数据转换为固定长度的数据。利用MAC算法验证消息完整性的过程。发送者在密钥的参与下,利用MAC算法计算出消息的MAC值,并将其加在消息之后发送给接收者。接收者利用同样的密钥和MAC算法计算出消息的MAC值,并与接收到的MAC值比较。如果二者相同,则报文没有改变;否则,报文在传输过程中被修改,接收者将丢弃该报文。

SSL证书身份验证更具有安全性-2

MAC算法具有如下特征,使其能够用来验证消息的完整性:

消息的任何改变,都会引起输出的固定长度数据产生变化。通过比较MAC值,可以保证接收者能够发现消息的改变。

MAC算法需要密钥的参与,因此没有密钥的非法用户在改变消息的内容后,无法添加正确的 MAC值,从而保证非法用户无法随意修改消息内容。

MAC算法要求通信双方具有相同的密钥,否则 MAC值验证将会失败。因此,利用MAC算法验证消息完整性之前,需要在通信两端部署相同的密钥。

分类
知识中心

VeriSign ssl证书引领未来电子商务

近年,电子商务在日常生活中的已经逐渐被群众所接受,互联网这个交易平台的重要媒介也深得消费者的喜爱。我们不难发现,在网络世界中,无论是生活物品、数码电器、幼婴产品,亦或是数码电器,珠宝首饰、甚至到食品百货等均有涉猎。网络交易平台的便利与快捷迅速虏获大量消费者的心。但电子商务中存在的一些非产品问题也引起了许多消费者与社会人士的关注,例如电子商务中存在的信息安全问题,如何保证互联网用户的账户、个人身份、机密资料等不被泄露也是业内人士所要面对的一个难题。

所幸,ssl证书的问世极大的解决了这个难题,在互联网业内掀起了一阵巨大的波澜。SSL证书是目前解决网站机密信息安全和证明网站真实身份的唯一技术手段,在欧美国家中,几乎所有电子商务网站都部署了SSL证书,中国著名电子商务网站和四大门户网站也都已经部署SSL证书。网站部署SSL证书之后,会使用“https://”来访问。浏览器地址栏会显示一个安全锁形状的标志, 表明浏览器已经自动加密您正在输入的机密信息,并高强度加密传输给网站服务器。例如下图:

VeriSign ssl证书引领未来电子商务-1
网站部署了SSL证书,可以让客户放心地输入个人机密信息。又能保护网站的客户资料不会被非法窃取。同时可以防止用户的用户名和密码被非法窃取,将大大减轻网站的客服工作量,确保用户账户安全。并且部署过SSL证书的网站能让客户确信所访问的网站确实是正宗的他要访问和交易的网站,因为此网站的真实身份已经通过权威第三方的严格认证,是全球可信的网站。
互联网的发展迅疾而猛烈,如何在这种没有硝烟的战场获得胜利,是电子商务业界需要深思熟虑的。欧美的互联网和电子商务网站已经完美的解决了信息安全问题,从而得到了快速的发展。而国内电子商务下一个快速发展的契机,或许就是确保用户的机密信息安全!

分类
知识中心

主流ssl证书对比评测分析

随着互联网技术的飞速发展,电商交易模式也逐渐发展起来,如今已成为主流的商业交易模式之一。今年,作为中国最大的网络交易平台阿里巴巴成功在美国上市,更是彰显了网络交易的巨大潜力,成为了中国电子商务交易历史上一个里程碑式的事件。网络交易也因方便、价格优惠、节省时间等因素逐渐走进了普通百姓的生活中。

网络交易的兴起同时也为一些不法分子制造了一些获取不法利益的机会。他们通过寻找系统漏洞,制造木马病毒获取用户账户信息等手段来从中获利。如何维护交易的安全性已成为所有网络交易平台的迫切需求。SSL证书的存在为网络交易平台的安全运作起到了极其重要的作用。ssl证书技术通过加密信息和提供鉴权,保护网站的安全。使用 SSL 证书的网站,可以充分保证用户和服务器间信息交换的保密性,具有不可窃听、不可更改的功能。

作为中国最具影响力的IT门户网站之一的硅谷动力为了让大家充分认识和了解ssl证书在网络安全交易中的重要性,特设立了ssl证书评测专区, 对主流的四种SSL证书品牌进行了详细对比评测。

主流ssl证书对比评测分析-1

 

主流的SSL证书主要有SymantecGlobalSign、WoSign、Entrust四种SSL证书

在功能方面,四种证书都可以为用户提供身份验证和扩展验证服务,并且可以为用户提供安全签章服务。SSL证书安全签章是互联网上的一种可信标志安全签章的标志,它表示网站已经通过认证并且使用最强的SSL加密通信保证交易的安全。但是用户系统的漏洞和恶意软件扫描方面,目前国内只有天威诚信代理的Symantec SSL证书可以做到,并且可以对用户的搜索结果进行标记。

在加密算法方面,Symantec (VeriSign)SSL证书可以为用户提供ECC、DSA、RSA三种加密算法。而其它的三种SSL证书只可以为用户提供DSA、RSA两种加密算法,Symantec(VeriSign) SSL证书在这方面具有明显的优势。

四种证书在浏览器的兼容方面性能相仿,都可以有效的兼容桌面浏览器和移动浏览器。其他方面它们都可以对用户进行安全担保和本地支持,除GlobalSign承诺对客户保证7天无效退款外,Symantec、WoSign、Entrust证书都有30天的退款期限。

综上所述,Symantec(VeriSign) SSL证书较其他三种证书在功能和加密算法上有明显的优势。21世纪网络交易安全不容忽视,选择一款最权威,最全面的ssl证书是有效保障用户权益的必备神器,同时ssl证书在电子商务的发展中也起到了举足轻重的作用。

分类
解决方案

虚拟主机SSL证书解决方案

由于全球互联网络的迅猛发展,IPv4资源逐渐成为一种稀缺资源。传统的SSL证书安装配置办法(也是目前最稳定的解决方法)就是为每个 https 主机使用不同的IP地址。

 

如果直接按照 http 主机的配置办法配置 https 主机,就会出现一个很普遍的问题:不论浏览器请求哪个主机,都只会收到默认主机(配置的第一个443端口的虚拟主机)的证书。这是由 SSL 协议本身的特性引起的——先建立SSL连接,再发送 https 请求(即加密主机头)。所以服务器端在与客户端建立SSL连接时不知道客户端所请求主机的名字,因此服务器端只会返回默认主机的证书。

 

目前已有两种可行的方案来实现多个 https 主机共享一个IP地址的443端口:

 

1. 使用支持多个域名的证书(多域名SSL证书 或 通配符SSL证书

多域名SAN(SubjectAltName)证书能够在一张证书中最多支持绑定25个域名。当需要为同一台物理服务器上的多个不同域名的主机配置SSL证书时,可通配置一张共享的多域名SSL证书来实现IP地址和端口的共享。只需将所有虚拟站点的域名绑定到这张多域名SSL证书中即可。

虚拟主机SSL证书解决方案-1

通配符SSL证书是在一个单一的证书中,通用名(域名)字段中包含一个“*”通配符字段(*.example.com)。这使得该证书可以支持无限制数量的多个子域名(主机)。这张通配符SSL证书也可作为虚拟主机的共享证书,为所有归属于同一域名下的二级域名实现https虚拟主机的IP地址共享。

 

对比多域名SSL证书和通配符SSL证书的产品特征可知,多域名SSL证书受到“SubjectAltName”字段的长度限制,最多支持25个域名。而通配符SSL证书虽然支持的域名数量不受限制,但只能支持同一域名下的二级子域名。在证书的应用中需要根据证书产品特点加以合理选择。

多域名SSL证书和通配符SSL证书在配置文件中的配置:

IIS上配置https虚拟主机共享443端口,微软官方资料参考:

http://technet.microsoft.com/zh-cn/library/cc756897.aspx

cscript.exe adsutil.vbs set /w3svc/ <site identifier> /SecureBindings “:443 :<host header>”

 

1.先设置为Web服务器和按照一般SSL证书的要求安装成功;

 

2.为了安全起见,请以一般用户(Users组)登录Windows 2003 Server,运行:

 

runas /profile /user: MyComputer  Administrator cmd

 

其中:MyComputer为服务器主机名,运行后会提示Administrator的密码,将以系统管理员身份运行DOS命令行。

 

3.在DOS命令行下运行:

 

cscript.exe adsutil.vbs set /w3svc/ <site identifier> /SecureBindings “:443:<host header> ”

 

其中: 可能需要明确指出adsutil.vbs的目录,如:C:InetpubAdminScripts,而<site identifier> 就是IIS自动分配给每个网站的网站标识符(默认站点为1,其他站点可在控制台中查询),<host header> 就是需要安装多域型SSL证书和通配型SSL证书的Web服务器域名。

 

4.退出DOS后,重启Web服务器后就已经生效了,可以都使用https://访问测试。

 

Apache配置https虚拟主机共享443端口:

Listen 443

NameVirtualHost *:443

SSLCertificateFile     common.crt;

SSLCertificateKeyFile  common.key;

SSLCertificateChainFile  ca.crt

 

<VirtualHost *:443>

……

ServerName www.example1.com

……

</VirtualHost>

<VirtualHost *:443>

……

ServerName www.example2.com

……

</VirtualHost>

 

Nginx配置https虚拟主机共享443端口:

ssl_certificate      common.crt;

ssl_certificate_key  common.key;

server {

listen          443;

server_name     www.example1.com;

ssl             on;

}

server {

listen          443;

server_name     www.example2.com;

ssl             on;

}

 

 

2.开启SNI支持

SNI 是“Server Name Indication”的缩写,全称“主机名称指示”。开启SNI,可以允许一个443端口共享给多个虚拟站点,并且每一个虚拟站点都允许独立配置其唯一的证书密钥对。其优点是每个站点独享唯一密钥对,更安全。缺点是SNI受客户端及服务端程序版本限制,部分客户端及服务端程序无法支持。

 

TLS主机名指示扩展(SNI,RFC6066)允许浏览器和服务器进行SSL握手时,将请求的主机名传递给服务器,因此服务器可以得知需要使用哪一个证书来服务这个连接。但SNI只得到有限的浏览器和服务器支持。

SNI 客户端支持

 

Firefox 2.0 及后续版本

Opera 8.0及后续版本

Internet Explorer 7.0及后续版本(要求Windows最低Vista系统)

Google Chrome 所有版本(Windows版要求最低Vista系统)

Safari 3.2.1及后续版本(Mac OS版要求最低X 10.5.6 ;Windows版要求最低Vista系统)

 

 

 

SNI 服务器端支持

 

Nginx 0.5.32及后续版本

Apache 2.2.12及后续版本

IBM Http Server 7.0及后续版本

 

Apache 、Nginx 要求安装 Openssl0.98f(0.98j开始默认支持SNI) 或更高版本的 Openssl 支持。

 

SNI的配置

 

在Apache中配置SNI

 

在Apache配置文件中通过使用为不同Web Server指定不同证书文件进行配置。

Listen 443

NameVirtualHost *:443

<VirtualHost *:443>

……

ServerName www.example1.com

SSLCertificateFile    www.example1.com.crt

SSLCertificateKeyFile  www.example1.com.key

SSLCertificateChainFile  ca.crt

 

……

</VirtualHost>

<VirtualHost *:443>

……

ServerName www.example2.com

SSLCertificateFile    www.example2.com.crt

SSLCertificateKeyFile  www.example2.com.key

 

……

</VirtualHost>

开启虚拟主机配置

 

 

在Nginx中配置SNI

Nginx 中通过 nginx -v 命令查询当前已安装的版本对 SNI 功能的支持。在配置文件中通过

 

server {

listen          443;

server_name     www.example1.com;

ssl             on;

ssl_certificate      server1.crt;

ssl_certificate_key  server1.key;

}

server {

listen          443;

server_name     www.example2.com;

ssl             on;

ssl_certificate      server2.crt;

ssl_certificate_key  server2.key;

 

}

开启SNI支持。

 

 

在IBM Http Server 7中配置SNI

IBM Http Server 7中配置SNI支持需要将多个证书密钥对合并到一个单独的kdb文件中来为不同虚拟站点配置使用不同证书。

 

使用 I Key Manager 工具打开 www.example1.com 的服务器证书 key.kdb 文件,切换到“个人证书”选项卡,选择“导入/导出”。然后选择证书导入密钥库,密钥库格式选择“CMS”格式,并选中 www.example2.com 的服务器证书 key.kdb 文件。将 www.example2.com 的服务器证书 key.kdb 中已存在的证书密钥对导入到 www.example1.com 的 key.kdb 文件中。导入过程中,修改导入的密钥对别名为 example2。

 

Listen *:443

NameVirtualHost *:443

<VirtualHost *:443>

ServerName www.example1.com

SSLEnable

SSLServerCert example1 # example1 是在 kdb 文件中,为 www. example1.com 的服务器证书密钥对设置的证书别名

</VirtualHost>

 

<VirtualHost *:443>

ServerName www.example2.com

SSLEnable

SSLServerCert example2 # example2 是在 kdb 文件中,为 www. Example2.com 的服务器证书密钥对设置的证书别名

</VirtualHost>

SSLDisable

KeyFile /opt/IBM/HTTPServer/key.kdb