科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道关于SSL和TLS证书 你应该了解的内容

关于SSL和TLS证书 你应该了解的内容

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Firefox浏览器处理安全套接层和传输层安全协议证书的新方式引发了大量的辩论,产生这个问题的主要原因是由于误解了安全套接层和传输层安全协议证书的生成过程。

作者:迈克尔·卡斯勒 来源:ZDNet安全频道【原创】 2008年10月16日

关键字: SSL/TLS TLS tsl SSL

  • 评论
  • 分享微博
  • 分享邮件

ZDNet安全频道原创翻译 转载请以注明作者以及出处

作者:迈克尔·卡斯勒

Firefox浏览器处理安全套接层和传输层安全协议证书的新方式引发了大量的辩论,产生这个问题的主要原因是由于误解了安全套接层和传输层安全协议证书的生成过程。在本文中,我将详细分析这个问题,对安全套接层和传输层安全协议证书以及其工作方式进行全面的说明。

关于SSL和TLS证书 你应该了解的内容
--------------------------------------------------------------------------------------------

让我们面对现实吧,安全套接层(SSL)传输层安全协议(TLS,安全超文本传输协议)对于用户在互联网上的安全和隐私保护是非常重要。这就是为什么新的安全套接层和传输层安全协议证书就象我在上一篇关于surf jacking攻击的文章“安全超文本传输协议:surf jacking攻击让它变的脆弱”中说的一样,也出现了麻烦。

这个问题其实很简单,就是人们需要判断某些类型证书的真伪。当Mozilla改变其最新的网络浏览器(Firefox第3版)对网站信息过期或自签名的安全套接层和传输层安全协议证书的规则的时间,这个问题就变的很明显了。在Pingdom网站发表的“Firefox浏览器新的安全套接层管理策略对成千上万的网站造成伤害”一文中,对这个变化做了明确的说明:

“如果你访问了一个包含无论是网站信息过期还是自签名的安全套接层和传输层安全协议证书的网站,Firefox第3版浏览器将不会显示任何页面。而作为替代,将显示类似其它类型的浏览器错误(例如“找不到网页” 四○四类信息)一样的错误信息。为了绕过这个错误页面,用户需要经过四个不同的步骤,才能进入网站,从易用性的角度来看,这样做是非常不理想的。”

这个错误发生的原因是,Mozilla已经决定将包含安全套接层和传输层安全协议的页面的安全性提高到一个新的水平,清除任何包含不正确信息、或者已经过期的证书。这是一件好事情,可以大幅度提高网页浏览和在线商务活动的安全性。为了便于理解这件事情,让我们来了解一下安全套接层和传输层安全协议的工作模式。

安全套接层(SSL)和传输层安全协议(TLS)的工作模式

安全套接层和传输层安全协议包含了两个重要的独立进程:身份验证和数据流加密。在今天风险很大的网络环境下,采用强大的加密功能来保护数据包以便使其能顺利到达预定的目的地是非常重要的。谢天谢地,使用安全套接层和传输层安全协议的虚拟专用网可以正常工作并保证安全。在整个过程中,身份验证过程恐怕是薄弱环节,所以在下面的内容,我将侧重于这一点。

认证是数字证书的关键,因此,需要先介绍一下什么是数字证书。数字证书是一个数据文件,包含了网站证书持有人的信息,用来验证该网站的内容是否确实是象它描述的那样。网络服务器的主机名称、端口和过期时间,以及公共密钥的详细信息都保存在这里面。如果需要查看计算机上安装的证书的情况,可以在浏览器中按照下面的方法进行操作:

· Internet Explorer浏览器中:工具| Internet选项|内容|证书

· Firefox浏览器中:工具|选项|高级|加密|查看证书

下图显示了证书的详细信息:

关于SSL和TLS证书 你应该了解的内容

我听到大家说这很好,但是并不够。我很高兴地告诉大家,了解具体细节其实并不重要,但全面的介绍可以让下面的概念更容易被理解。只要记住一点,数字证书是用来验证网络服务器和浏览器之间的安全性以便建立安全套接层和传输层安全协议的连接就可以了。

不同类型的安全套接层和传输层安全协议证书

数字证书包含了两个主要的类型,信任的和不信任的。信任的证书是网络浏览器中那些由值得信赖的证书颁发机构(CA)发布的。为了帮助理解这一点,我将创建一个由众所周知和很受尊重的证书颁发机构VeriSign公司签署的网络服务器的安全套接层和传输层安全协议证书。下面的例子将显示相应的步骤:
 
1. 在我的网络服务器上创建一个证书请求,它包含了一个基于公开密钥体系的私人/公共密钥组合。

2. 我创建的证书需要证书颁发机构,在这个例子中是VeriSign公司的支持。这个请求包含了网络服务器的域名( 确定无疑的域名系统名称)、 确定无疑的网络IP地址、公共密钥(颁发和验证的必须)以及本地信息。 VeriSign公司对信息的要求非常严格和具体,它将试图确认我是合法的域名拥有者。

3. 网络服务器的标记包含了私人密钥,并将发送给VeriSign公司。

4. 作为验证方,VeriSign公司将通过大量的努力进行调查,以确保请求是有效的。提交的信息进行验证后,VeriSign公司还将对密钥的有效性进行检查,因为请求包含了公共密钥和而标记使用了私人密钥(在第一步中已经提到)。

5. 在所有的信息都检查完毕并确认无误的后,VeriSign公司会将有关信息加入证书中,并利用VeriSign的私人密钥进行标记。

6. VeriSign公司将证书发还给我,我就可以将它安装在自己的网络服务器上了。

现在我的网络服务器就具备了与网络浏览器建立一个安全套接层和传输层安全协议连接的所有必需组件。下面就让我们了解一下,如何将网络浏览器中的安全套接层和传输层安全协议证书进行交换。

网络服务器/网络浏览器的证书交换

请注意,我将继续使用上面的例子来介绍在网络服务器和网络浏览器之间是如何进行证书交换。在上面的例子中,一切安排都已经就绪,我可以建立一个测试用的安全套接层和传输层安全协议连接。让我们看看在安全套接层和传输层安全协议连接建立的时间证书是如何交换的:

1. 我打开浏览器输入https://www.mpksecuresite.com的网络地址。在经过通常的传输控制协议/网间协议的传输相关数据后,www.mpksecuresite.com的网络服务器收到了页面的请求。

2. 作为响应,www.mpksecuresite.com的网络服务器返回给我的浏览器mpksecuresite.com的证书。

3. 我的浏览器对证书进行了检查,其中包括了有效日期和主机名称等方面的信息。

4. 我的浏览器注意到来自mpksecuresite网络服务器的证书包含VeriSign的私人密钥。因此,它立即对证书的数据库进行搜索,看是否能找到VeriSign证书的信息。

5. 网络浏览器找到了VeriSign证书的信息。接着我的网络浏览器使用公共密钥打开VeriSign证书的信息来验证来自mpksecuresite.com的网络服务器的证书。请记住,来自mpksecuresite.com的网络服务器的证书使用了VeriSign的私人密钥进行标识。

6. 证书的标识获得了认可。我的网络浏览器知道VeriSign公司是一个可以信任的证书颁发机构,所以现在选择信任mpksecuresite.com的网络服务器。

这就是一个安全套接层和传输层安全协议证书交换的全部过程。如果需要记住什么的话,应该是第四步以及为什么我的网络浏览器信任www.mysecuresite.com网站的原因。

· 我的网络浏览器将VeriSign公司作为一个值得信赖的证书颁发机构。

· VeriSign公司声称它对www.mysecuresite.com进行了验证,所以我的网络浏览器选择信任这个站点。

对于任何浏览器来说,包含一个预先安装的信任列表都是至关重要的。这样做的目的是为了建立“信任链”。这个信任链启动的关键是网络浏览器的开发商,值得信赖的证书颁发机构将被加入列表。因此,它就可以自动安装并对安全性和准确性进行分析。

因此,如果一切正常的话(网站上使用的证书是值得信赖的证书颁发机构标识的),整个安全套接层和传输层安全协议的连接过程是自动的。但实际上,这样自动的加密和验证过程让我们变得无知。结果在新的Firefox网络浏览器中,一旦自动过程失效,我们就陷入了困境。

自签名证书不等于自动获得信任

自签名证书是第二种广泛使用的证书,它属于不被信任的类型。这种类型的证书需要手动批准和安装在浏览器上。在与采用自签名证书的网络服务器进行安全套接层和传输层安全证书交换的时间,最好不要草率。

1. 我打开浏览器输入https://www.mpkselfsign.com的网络地址。在经过通常的传输控制协议/网间协议的传输相关数据后,www.mpkselfsign.com的网络服务器受到了页面的请求。

2. 作为响应,mpkselfsign.com的网络服务器返回给我的浏览器mpkselfsign.com的自签名证书。

3. 我的浏览器对证书进行了检查,其中包括了有效日期和主机名称等方面的信息。

4. 我的浏览器对证书数据库进行搜索,看看是否有www.mpkselfsign.com证书的信息。

5. 由于我从未到过这个网站,因此在浏览器的数据库中不存在证书。这时,活动进程停了下来,一个提示窗口(如下图所示)询问我该怎么样进行下一步的操作。

关于SSL和TLS证书 你应该了解的内容

这就是它变得复杂的原因。我必须决定是否信任这个网站。我可以选择查看证书上的内容,并作出决定,也可以对证书的真实性进行进一步的研究,以增加信心。对自签名证书进行验证的唯一办法是通过其它一些值得信任的方法(传真、电子邮件甚至传统寄信方式)获得自签名证书的副本并和要求人们手动对数字证书进行验证。

我认识到这个过程是非常烦琐的,但这是确认自签名证书有效性的唯一办法。我也知道,一旦弹出是否接受自签名证书的提示窗口,绝大部分人的选择是自动接受证书。他们想要访问这个网站,所以希望这个窗口尽快消失。

Firefox 3和提高的安全

为了防止恶意的自签名证书带来的潜在的攻击,必须做些事情。这是Mozilla人的立场,我也同意这一点。让用户认识到自签名证书的本质,对于安全认识来说也是一个很大的提高。

最后的思考

感谢你又读完了一篇长文章。这是一个很难完全理解的话题,并且也不是必须的。大家只要了解在遇见浏览器的“未经验证”窗口的时间,知道该如何选择就可以了。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章