Exchange2013 TLS传输层安全排错

2018年新年新气象,首先祝大家新年嗨森,忙碌的2017年总算告一段落了,难得忙里偷闲两天整理整理2017年零零星星的点点滴滴,这一年有笑有泪,好像除了加班就是加班,感谢瘦小的身体竟然撑过了这一年,感谢这一年默默帮助我的大家,感谢人生中的每一段成长历练。新的一年要懂得感恩,多陪陪家人、多读书、多学习、多整理、多自省、多与人交流、多旅游、多投身公益事业等等。。。

概览:

Transport Layer Security——传输层安全协议,简称TLS。用于两个应用程序之间提供保密性和数据完整性。TLS 1.0是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本,可以理解为SSL 3.1,它是写入了 RFC 的。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。(不管提到TLS还是SSL,都会引出二者相关概念性的介绍和差异对比)

Secure Socket Layer——安全套接字层,简称SSL。为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。

SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

架构图:

TLS/SSL协议提供的服务主要有:

  1. 认证用户和服务器,确保数据发送到正确的客户机和服务器;
  2. 加密数据以防止数据中途被窃取;
  3. 维护数据的完整性,确保数据在传输过程中不被改变。

TLS与SSL的差异

  1. 版本号:TLS记录格式与SSL记录格式相同,但版本号的值不同,TLS的版本1.0使用的版本号为SSLv3.1。
  2. 报文鉴别码:SSLv3.0和TLS的MAC算法及MAC计算的范围不同。TLS使用了RFC-2104定义的HMAC算法。SSLv3.0使用了相似的算法,两者差别在于SSLv3.0中,填充字节与密钥之间采用的是连接运算,而HMAC算法采用的是异或运算。但是两者的安全程度是相同的。
  3. 伪随机函数:TLS使用了称为PRF的伪随机函数来将密钥扩展成数据块,是更安全的方式。
  4. 报警代码:TLS支持几乎所有的SSLv3.0报警代码,而且TLS还补充定义了很多报警代码,如解密失败(decryption_failed)、记录溢出(record_overflow)、未知CA(unknown_ca)、拒绝访问(access_denied)等。
  5. 密文族和客户证书:SSLv3.0和TLS存在少量差别,即TLS不支持Fortezza密钥交换、加密算法和客户证书。
  6. certificate_verify和finished消息:SSLv3.0和TLS在用certificate_verify和finished消息计算MD5和SHA-1散列码时,计算的输入有少许差别,但安全性相当。
  7. 加密计算:TLS与SSLv3.0在计算主密值(master secret)时采用的方式不同。
  8. 填充:用户数据加密之前需要增加的填充字节。在SSL中,填充后的数据长度要达到密文块长度的最小整数倍。而在TLS中,填充后的数据长度可以是密文块长度的任意整数倍(但填充的最大长度为255字节),这种方式可以防止基于对报文长度进行分析的攻击。

TLS的主要增强内容

TLS的主要目标是使SSL更安全,并使协议的规范更精确和完善。TLS 在SSL v3.0 的基础上,提供了以下增强内容:

  1. 更安全的MAC算法
  2. 更严密的警报
  3. "灰色区域"规范的更明确的定义

TLS对于安全性的改进

  1. 对于消息认证使用密钥散列法:TLS 使用"消息认证代码的密钥散列法"(HMAC),当记录在开放的网络(如因特网)上传送时,该代码确保记录不会被变更。SSLv3.0还提供键控消息认证,但HMAC比SSLv3.0使用的(消息认证代码)MAC 功能更安全。
  2. 增强的伪随机功能(PRF):PRF生成密钥数据。在TLS中,HMAC定义PRF。PRF使用两种散列算法保证其安全性。如果任一算法暴露了,只要第二种算法未暴露,则数据仍然是安全的。
  3. 改进的已完成消息验证:TLS和SSLv3.0都对两个端点提供已完成的消息,该消息认证交换的消息没有被变更。然而,TLS将此已完成消息基于PRF和HMAC值之上,这也比SSLv3.0更安全。
  4. 一致证书处理:与SSLv3.0不同,TLS试图指定必须在TLS之间实现交换的证书类型。
  5. 特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问题。TLS还对何时应该发送某些警报进行记录。

接下来我们引入本章有关Exchange TLS的内容一例。

问题描述:

在与某银行来往邮件的时候,发现对方在给我司投递邮件的时候,收件人无法在我司邮件客户端或OWA查看该邮件内容,需要通过邮件链接跳转到对方银行提供的安全界面查看,返回的对应邮件截图如下:

环境(软件/硬件):

WinSer2012R2+Exchange 2013CU10&17版本

原因分析:

根据对方安全提醒邮件内容并比对原始邮件分析,初步可确定我司邮件网关对外未开放TLS。

默认情况下,SMTP流量是不被加密的,这就导致在公网上进行邮件沟通就像是在广播一样,任何人拦截到该邮件都可以轻而易举的读取其内容。但是现实场景中有许多敏感信息是通过邮件来进行发送的,所以其中一种保护邮件安全的方法就是使用传输层安全协议(Transport Layer Security)来提供SMTP流量在传输中的加密,受TLS保护的SMTP流量可以让拦截/窃听者无法读取到SMTP流量的内容,但是它只提供传输过程中的保护,对于已经到达目标服务器,或者是在发件方本地服务器的邮件则没法提供保护。

有两种方法可以让Exchange使用TLS,第一种也是最简单的一种,叫做机会型TLS,意思是Exchange一有机会(对端服务器主动使用TLS)就会启用TLS,默认情况下机会型TLS功能会一直开着,而且会使用Exchange安装时候生成的自签名证书(如果你没指定证书的话)。Exchange 2013 还对所有远程连接主动尝试实现 TLS。

另一种是相互TLS,尽管TLS是一种传输层的加密,但是如果每台服务器通过验证另一台服务器提供的证书来验证这台服务器的身份的话,TLS也可以作为一种验证方法。Lync就基于相互TLS,当然Exchange也可以配置成这样。

机会型TLS不进行证书的有效性检查,有个自签名的证书它就认为是OK的,甚至是过期的证书也行。而相互TLS的应用要求则比较严格,因为Exchange会进行完整的证书检查,包括证书的时效性,查看发行者的证书吊销列表等等。

值得一提的是,Exchange 2013采用的是TLS V1.2,也是最新的TLS,其他的邮件服务器可能无法支持该版本,所以TLS的协商过程中,双方会声明自己的支持版本。在Microsoft Exchange上提供和接受的TLS版本、TLS会话中使用的加密算法,这些都是受Windows 安全通道子系统控制(即Schannel),关于如何查看或者修改Windows使用了那种加密算法,可以参考这篇Technet文章:https://technet.microsoft.com/en-us/library/cc784149(v=ws.10).aspx 虽然这篇文章标明for windows 2003,但是在现在的版本里依旧适用。

补充:

相互 TLS :进行相互身份验证的 TLS 与通常部署的 TLS 不同。通常部署 TLS 只是用于以加密的形式提供机密性。发送方和接收方之间不进行任何身份验证。除了这种部署之外,有时,TLS 部署只对接收服务器进行身份验证。这种 TLS 部署是 TLS 的 HTTP 实现方式的典型部署。此实现方式是 SSL,只对接收服务器进行身份验证。使用相互 TLS 身份验证,每台服务器通过验证另一台服务器提供的证书来验证另一台服务器的身份。

域安全性 :域安全性是使相互 TLS 成为有用并且容易管理的技术的功能集,例如证书管理、连接器功能和 Outlook 客户端行为。

机会型 TLS :在早期版本的 Exchange Server 中,必须手动配置 TLS。此外,必须在运行 Exchange Server 的服务器上安装适合 TLS 使用的有效证书。在 Exchange 2013 中,安装程序将创建自签名证书。默认情况下启用 TLS。这样,任何发送系统可以对 Microsoft Exchange 的入站简单邮件传输协议 (SMTP) 会话进行加密。默认情况下,Exchange 2013 还尝试对所有远程连接使用 TLS。

直接信任 :默认情况下,边缘传输服务器与集线器传输服务器之间的所有通信均进行身份验证并加密。身份验证和加密的基础机制仍是相互 TLS。


解决步骤:

1.通过CheckTLS.com(www.checktls.com)网站查询我司邮件服务器是否支持TLS。

2.查询结果提示"TLS is not an option on this server",根据TLS查询结果初步确定为我司Ironport邮件网关incomming入站策略未启用TLS加密身份验证。

3.根据问题内容查看有关TLS相关端口及邮件接收连接器配置信息等;

通过内外部Telnet等操作发现Exchange服务器在内部TLS正常,而外部无法正常连接。此时可以初步确定问题在ironport邮件网关上。

4.打开Ironport,选择"邮件策略"——"邮件流策略":

5.选择"默认策略参数":

6.在"安全功能"模块界面——加密和身份验证——TLS安全选项位置,勾选"可选":

7.提交更改:

8.确认修改,完成该TLS配置。

9.此时通过CheckTLS.com网站再次查询,发现TLS通过验证。

此时联系对方测试,邮件收发正常。该问题解决。

补充,CheckTLS.com检查中有提示证书问题,ironport更新证书操作如下:

a.依次勾选"网络"——"证书"——"添加证书":

b.添加证书选项框中勾选"导入证书":

c.单击浏览导入本地证书:

d.提交导入的新证书操作:

e.选择"网络"——"监听程序"——"Icomingmail"替换证书:

该警告可忽略,ironport默认值跟警告值其实是类似的,默认忽略。

本章内容分享告一段落。

引用文献(本文原理性内容大部分整理自网络,请见文后引用文献):

https://segmentfault.com/a/1190000002554673

原文地址:http://blog.51cto.com/wenzhongxiang/2056998

时间: 2024-10-27 08:07:32

Exchange2013 TLS传输层安全排错的相关文章

SSL&TLS传输层加密协议实现图解

一.SSL&TLS 1.SSL:Secure Sockets Layer ,加密套接字协议层 1)SSL是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密 Secure Socket Layer为Netscape网景公司1994年所研发,用以保障在Internet上数据传输之安全,利用数据加密技术,可确保数据在网络上之传输过程中不会被截取及窃听. 2)SSL协议可分为两层:记录协议.握手协议 SSL Record Protocol:建立在可靠的传输协议如TCP之上为高层协

「深入 Exchange 2013」15 TLS传输层安全

默认情况下,SMTP流量是不被加密的,这就导致在公网上进行邮件沟通就像是在广播一样,任何人拦截到该邮件都可以轻而易举的读取其内容.但是现实场景中有许多敏感信息是通过邮件来进行发送的,所以其中一种保护邮件安全的方法就是使用传输层安全协议(Transport Layer Security)来提供SMTP流量在传输中的加密,受TLS保护的SMTP流量可以让拦截/窃听者无法读取到SMTP流量的内容,但是它只提供传输过程中的保护,对于已经到达目标服务器,或者是在发件方本地服务器的邮件则没法提供保护. 有两

EXCHANGE 2013 TLS传输层安全

默认情况下,SMTP流量是不被加密的,这就导致在公网上进行邮件沟通就像是在广播一样,任何人拦截到该邮件都可以轻而易举的读取其内容.但是现实场景中有许多敏感信息是通过邮件来进行发送的,所以其中一种保护邮件安全的方法就是使用传输层安全协议(Transport Layer Security)来提供SMTP流量在传输中的加密,受TLS保护的SMTP流量可以让拦截/窃听者无法读取到SMTP流量的内容,但是它只提供传输过程中的保护,对于已经到达目标服务器,或者是在发件方本地服务器的邮件则没法提供保护. 有两

网络安全——传输层安全协议(Transport Layer Security) TLS/SSL

网络安全——传输层安全协议(Transport Layer Security) TLS/SSL 1. 综述 TLS/SSL用于认证和加密. TLS/SSL的核心在于公钥和私钥,公钥在安全证书中. 公钥和私钥成对出现,通信个体的公钥公开,私钥则严格保密,只有自己知道:有下面的特性: 1. 公钥加密的数据只能由私钥解密: 2. 私钥加密的数据只能由公钥解密. A用私钥加密后,其他人尝试用A的公钥解密可以判断是否是A发出的数据:发给A的数据用A的公钥加密,则只有A能读取. 2. 对称密码和非对称密码

我们检测到您的浏览器不兼容传输层安全协议 (TLS) 1.1 或更高版本,此协议在 Internet 上用于确保您通信的安全性。

早上使用.Net WebClient类采集亚马逊数据,返回http 400 Bad Request错误,内容里面有“我们检测到您的浏览器不兼容传输层安全协议 (TLS) 1.1 或更高版本,此协议在 Internet 上用于确保您通信的安全性.” 所以就想着可能是WebClient使用TLS版本过低,查了下资料,全局加上这段代码. ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificat

在SuperSocket中启用TLS/SSL传输层加密

关键字: TLS, SSL, 传输层加密, 传输层安全, 证书使用, X509Certificate SuperSocket 支持传输层加密(TLS/SSL) SuperSocket 有自动的对TLS/SSL的支持,你可以无须增加或者修改任何代码,就能让你的服务器支持TLS/SSL. 想要为你的 SuperSocket 服务器启用 TLS/SSL,你需要先准备好一个授权证书 你有两种方式提供证书: 1.一个带有私钥的 X509 证书文件 你可以通过 CertificateCreator in S

从HTTP 2.0想到的关于传输层协议的一些事

0.HTTP协议的历史 我也不知道... 1.关于HTTP 2.0 收到了订阅的邮件,头版是说HTTP 2.0的内容,我本人不是很关注HTTP这一块儿,但是闲得无聊时也会瞟两眼的.HTTP 2.0的最大改进我觉得有两点:第一:新增了帧层帧层的好处在于重新分发流信息,服务器处理顺序可以不再依赖用户提交请求的顺序了.另外就是不必一定用TCP传输HTTP了,实际上规范一开始就是这么说的.第二:HTTP头的内容可以增量交互了很 多的HTTP头里面的信息都是参数的协商,每次都要携带,如key/value的

传输层的安全

1.tcp与udp协议的安全问题 tcp作为互联网中非常重要的一个协议,攻击者对它的攻击自然也是相当关注.突然想起经常听到tcp数据流服务这个词,为什么称数据流呢?这里数据流指的是应用层将数据下发给tcp层时是以字节流的形式的发送的.tcp维护着一个tcp发送缓冲区和一个接收缓冲区,所有应用层发来的字节流会存放在发送缓冲区中,网络层上传的tcp数据会存放在接收缓冲区中.对于tcp协议的安全将从四个方面来进行分析,分别是头部.协议.流量和验证. 基于头部的攻击可分为2类:一是攻击者可以发送无效的头

网络层、传输层、应用层、端口通信协议编程接口 - http,socket,tcp/ip 网络传输与通讯知识总结

引: http://coach.iteye.com/blog/2024511 什么是TCP和UDP,以及二者区别是什么? TCP的全称为传输控制协议.这种协议可以提供面向连接的.可靠的.点到点的通信. UDP全称为用户数据报协议,它可以提供非连接的不可靠的点到多点的通信. 使用TCP还是UDP,那要看你的程序注重哪一个方面,可靠(tcp)还是快速(udp). TCP/IP 建立连接的过程 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.