Skype for business/Lync之证书解析(一):证书原理

---by 老朱

Skype for business server 2015(以下简称SFB 2015)已经出来一段时间了,接下来微软还有一大批的东西来袭,已经有很多朋友要么忙着测试,要么忙着部署SFB 2015了。不管是部署SFB,还是以前的LYNC,一个绕不开的东西就是证书,不要说LYNC绕不过,现在几乎所有微软产品都绕不过,像邮件、远程桌面服务、私有云、混合云等,都将用到证书,其实不光微软,微软之外很多产品与解决方案都绕不过证书这东西,谁叫它是一个基础的东西呢?虽然很多人通过折腾LYNC与exchange等,已经对证书比较熟悉了,但我发现很多朋友仍然不明其理,一有变动就有点晕头,这里也借SFB这个风,顺便把证书的相关原理讲一下,然后再讲SFB的证书问题,并在后面举一些例子,让大家举一翻三,不管是在SFB中,还是邮件中,还是与其他第三方解决方案互通,都能够顺利面对证书配置,我相信真正理解了证书原理,不管在什么环境中,通常10分钟都能够搞定问题,至少能够准确地发现问题所在。

由于下面的文章是我原来在内部技术交流的一个PPT,所以文章主要以图为主,对于需要说明的部分我再配以文字。

要说证书,实际上先得说公钥技术,严格来说,他们是有区别的,但有时我们习惯把证书、公钥、PKI、CA说成一个东西,怎么说我倒觉得不重要,只是在不同的语境下要会分辨。

上图是大家经常遇到的,为什么会报这个错呢?不用我这里先做解释,读完此文,你自己就知道了,如果还不知道,那就。。再读一遍呗。

单密钥的缺点是怎么安全地分发。

公钥解决了分发问题,因为公钥谁都可以知道,而且就是要别人知道。

上图警察为了把消息安全地告诉局长,于是他就用局长的公钥加密消息(记住,公钥就是给别人的,就是要让别人知道的),局长接着用自己的私钥解开。

那你会说为什么警察(周缙)要用局长的公钥加密,而不用自己的私钥加密再发给局长呢?不是一样的吗?当然不一样,因为我们说过公钥别人知道,你用私钥加密那不是人人都可以用公钥解密,这就相当于没有加密了,所以私钥是不会用来加密的,只有公钥才会用来加密。

但是,虽然私钥不用来加密,但由于私钥只有当事人有,所以它可以用来进行身份认证,还是上面的例子,局长收到了一条他公钥加密的消息,但由于别人都有他的公钥,谁都可以发消息给他啊,怎样来保证这个消息就是警察周缙发的,而不是其他人发的假消息呢?(比如说是周克华发的,骗局长鸣金收兵:))这时周缙就可以用自己的私钥签个名,然后局长用周缙的公钥解密,由于只有周缙的公钥才能解密,也就证明了此消息是周缙发出的,确认了消息的真实性。

当然,公钥也可以用来认证,后面会讲到,当他与安全个体对应,成为安全个体证书的一部分时,就有此功能了,具体下面会讲到。

既然单密钥技术和公钥技术各有优缺点,何不把二者结合起来,既然公钥加解密速度慢,那何不用公钥加密单密钥(毕竟单密钥很短,要加密的文档或信息通常很大),然后用单密钥来加解密文档或信息,这样不就把单密钥的分发和公钥加解密速度问题都解决了?实际上SSL就是这样来处理的。

当然用私钥加密同样面临速度慢的问题,那私钥怎样来实现签名(本质是加密)呢?由于直接签名(加密)整个文档太慢,那就把文档提取个散列,然后签名这个散列吧,这样就解决了这个问题。大家下载软件时,经常看到有个MD5的文件,大家就可以通过MD5工具对下载的软件生成一个MD5散列值,然后与MD5文件中的值对比,如果一致,表明你下载的软件没有被篡改(比如被人挂马)。

前面讲了,虽然公钥可以发给任何人,但怎样确认你就是这个公钥的主人呢?这个问题就像邮件如果没有SPF检测,你可以冒充微软、冒充IBM,冒充任何公司或个人给别人发邮件了。其实在这里我想也可以模仿邮件的SPF机制,比如你收到张三的公钥,那怎样来判断这个公钥就是张三的呢?那你可以先计算出公钥的散列,然后到张三公司的DNS服务器查询张三公钥的散列(比如是一条TXT记录),如果二者相匹配,则表明是张三的公钥,如果不匹配,则表明是仿冒的。哈哈,我是不是想得太简单了,不过,现在的世界是怎样来解决这个问题的呢?现在的世界就是引入了证书,引入了证书认证机构CA,所谓证书者,证明之用也,就是把安全个体与公钥绑定,证明此公钥就是安全个体的,当然,如何证明,就由CA等的证书基础架构来实现了。

证书包含公钥,但不等于公钥。

大家的SFZ其实就是一份证书,证书也就是一个SFZ。

比如证书里面的版本就相当于SFZ的第几代,而序列号就相当于SFZ号码,颁发者相当于签发机关,有效期相当于SFZ的有效期限,而上级CA的签名相当于国徽(代表国家)。而使用者相当于姓名。

记住证书包含的三个最重要的部分:安全个体(CN),公钥,上级认证(签名)。比如CN是www.sina.com.cn,而你访问时不是用这个域名访问,而是用域名对应的IP去访问,仍然会报证书错误的,因为安全个体没有对应上。

现实世界申请证书是一件严肃的事情,就像办SFZ一样的道理,注意,你申请证书时是不用把私钥提交给CA的,因为私钥只应该你自己知道和保存,所以你在购买公网证书服务时通常最后有个合成操作,就是把本地的私钥和证书进行合成,以便导入相关的服务器。

从证书的验证过程注意到根证书是很重要的,因为一个证书是否合法,最终都会由它进行验证。这也是为什么为了信任服务器证书,而经常要在客户端导入根证书的原因,因为没有根证书,根本无法验证服务器证书的真实性。经常看到一个无意义的操作就是把服务器证书导入客户端,其实这没有意义,因为没有信任根证书,你把服务器证书放在哪里都无用。

同样,购买公用证书时,证书链的层次越少越好,因为一般系统只内置了根证书,如果中间证书链多的话,还需要到网上去取,这样必定增加连接时间,再加上这些机构一般在国外,你可能会遇到什么连接超时等问题,这种坏的结果是你应用根本没法用。

证书吊销列表也是在证书实施中经常遇到的问题,很多报错与它就相关,有些应用有相关选项来配置是否检查CRL,如IE,而有些应用则必须要求检查CRL,这时就要注意CRL的正确发布了,比如通常CA在内部,CRL也在内部,那如果有应用要从外部访问CRL时,如果没有发布CRL,是根本不可能访问到的,这也就出现了CRL问题。

注意,通常我们的SSL,也就是HTTPS,通常只验证服务器的身份,服务器会把它的证书传给客户端,客户端会调用本地根证书进行验证。类似我们访问普通的网银。

而我们插U卡的网银,则是不仅仅要验证服务器是不是假冒的,还要验证客户端这边的身份,这就是双向验证。

好了,关于公钥与证书的基本原理就讲到这里,如果有疑惑,欢迎提问,另外如对PPT感兴趣,也可以发消息给我。

时间: 2024-10-05 05:07:34

Skype for business/Lync之证书解析(一):证书原理的相关文章

Skype for business/Lync数据库架构解析

by 老朱 你知道SKYPE for business server 2015/LYNC server 2013(以下统一称LYNC,原谅我,这是惯性称呼)用到多少个数据库实例.数据库吗?结果会有点出乎你的意料.大家都知道,数据库就是来存储数据的东西,而SKYPE存储数据的地方有SQL.有AD.还有共享文件夹,AD用来存储基本的用户信息,比如SIP URI.电话号码,而用户策略信息则存储在CMS里(SQL),另外AD用来存储也是为了一个向后的兼容性. 这里主要谈谈它用到的SQL数据库,按道理来说

Skype for business/Lync之证书解析(四)证书申请的四种方式

有四种方式进行证书申请,这四种方式不仅适合skype/lync,也适合任何证书申请场景(除了第一种方式): 第一种方式:在SFB/LYNC安装界面中用证书向导自动生成与分配证书,操作最简单,但生成的证书导出时不能导出私钥. 第二种方式:通过MMC,参见本系列之http://huoxian.blog.51cto.com/9437529/1680132 第三种方式:通过web 通过web申请需要使用ssl加密连接,即采取https://ca/certsrv方式,默认没有https,请增加https连

Skype for Business–Lync 2013更新

2015年4月14日起,微软Skype for Business 正式开始推送,作为 Office 2013 四月更新的一部分.同时,Skype for Business Online 也开始向 Office 365 全球用户推送,预计 5 月底完成推送. Skype for Business 基于 Skype 体验,提供了即时消息.语音和视频通话.联机会议以及共享功能.该更新已有一段时日,之前已在很多博客上看到,但是因未知原因个人客户端一直升级不成功,今日在于超总闲聊之际,发现skype终于自

Skype for Business–Lync 2013更新

2015年4月14日起,微软Skype for Business 正式开始推送,作为 Office 2013 四月更新的一部分.同时,Skype for Business Online 也开始向 Office 365 全球用户推送,预计 5 月底完成推送. Skype for Business 基于 Skype 体验,提供了即时消息.语音和视频通话.联机会议以及共享功能.该更新已有一段时日,之前已在很多博客上看到,但是因未知原因个人客户端一直升级不成功,今日在与超总闲聊之际,发现skype终于自

Skype for business/Lync之证书解析(三):关于证书服务器的迁移

为什么要迁移证书服务器? 通常是证书相关的服务器要进行系统升级,比如原来证书服务与DC共存于一台服务器,现在DC要升级到新的版本,这个时候需要把证书服务迁移到其他服务器,此时建议把证书服务迁移到一台独立的证书服务专用的虚拟机中,不再与DC共存. 如何迁移? 最权威的步骤当然是按照微软官方指南:https://technet.microsoft.com/zh-cn/library/ee126170(v=ws.10).aspx.不过,步骤太多,可能看得你晕头转向,实际上每个企业环境不同,不一定非要根

Lync 项目经验-12-为某上市企业Skype for Business购买Godday证书

<要想看Lync 2013升级SFB 2015真实项目经验:请看Lync 项目经验-01-到-Lync 项目经验-10> 本系列博文: Lync 项目经验-01-共存迁移-Lync2013-TO-SFB 2015-规划01http://dynamic.blog.51cto.com/711418/1858520 Lync 项目经验-02-共存迁移-Lync2013-TO-SFB 2015-规划02http://dynamic.blog.51cto.com/711418/1859143 Lync

Lync 项目经验-11-项目总结01-某上市企业的Skype for Business规划与实施

项目介绍: 某上市企业为了实现统一沟通,将即时消息,音频会议.视频会议.电话会议.硬件视频会议.邮件.Office 365等整合到一起,来实现统一协作. 项目现状: 1. 单域单森林. 2. 域功能级别.林功能级别都使用Windows Server 2012 R2. 3. AD域为a.org. 4. Exchange Server 2013默认域使用a.com. 5. 邮件服务器使用Exchange Server 2013,包括2台客户端访问服务器.2台邮箱服务器角色. 项目需求: 1. 部署S

Lync 项目经验-13-为某上市企业仅安装Skype for Business 2016(图解)

****************************************************************************** <Skype for Business Server 2015-项目实战>(免费系列规划.部署博文) http://dynamic.blog.51cto.com/711418/1655481 **************************************************************************

Lync 项目经验-09-用Lync 2013或Skype for Business 2015抢春运火车票

本系列博文: Lync 项目经验-01-共存迁移-Lync2013-TO-SFB 2015-规划01http://dynamic.blog.51cto.com/711418/1858520 Lync 项目经验-02-共存迁移-Lync2013-TO-SFB 2015-规划02http://dynamic.blog.51cto.com/711418/1859143 Lync 项目经验-03-共存迁移-Lync2013-TO-SFB 2015-完成 http://dynamic.blog.51cto