网络安全

作者:郭无心
链接:https://www.zhihu.com/question/19816240/answer/63371634
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在当前世界中,网络已成为不可或缺的元素。它将原来遥不可及的事物,方便快捷的联系到一起。为了充分利用网络所带来的便捷,越来越多的企业选择将信息发布在网络上。电子商务、物联网、云计算与服务,也都在计划与实施中。与此同时,网络的普及,也给信息安全带来了挑战。如何保证信息在不可靠网络中的安全传输,成为企业 IT 实施优先考虑的问题。

SSL 是指安全套接字(Secure Socket Layer),是应用最为广泛的安全协议。它在 TCP/IP 协议之上提供了一条安全通道,可以保证在不安全网络环境下的数据安全。它支持各种加密算法、数字签名、数字证书,可以防御常见的网络攻击。WebSphere MQ 对 SSL 具有很好的支持,从而保证消息在网络中安全的传送。本文在介绍 SSL 的基础上,以实例方式详细描述了如何在 MQ 中实现基于 SSL 的安全传输。文章中的实例,主要基于 MQ 7.0.1.9,同时也会介绍新版本 MQ 7.1 及 MQ 7.5 的变化。


网络攻击类型及应对策略

网络将数以千万计的机器连接在一起,环境复杂多变,所以网络攻击也是花样百出。这里,根据攻击对消息产生的影响,主要可以划分为三类:窃听、篡改、仿冒。这三种攻击方式,分别会破坏消息的私密性、完整性和通信双方的互信。针对这些攻击的特点,SSL 提供了可靠的防御策略


1)窃听与加密

窃听即偷听别人的谈话,在网络中意味着拦截消息并偷看其中的内容。那么,为了避免消息被别人窃听,就需要对消息进行加密。这样,即使消息被攻击者截获,他们也无法轻松获知其中的内容。

加密即按照一定的规则(加密算法)将原消息(明文)转化为对窃听者不可读的密文。通信双方共享加密的规则,所以消息接收者可以将密文再转回可读的明文。密钥是一个随机字符串,是加密及解密不可或缺的元素。发送者使用密钥对明文加密,接收者使用密钥对密文解密。

通信双方可以共享一个相同的密钥,用于加密和解密。这称为对称加密或者秘密密钥加密。这种方法的优势是速度快,劣势是难以安全的传递密钥,特别是有很多通信对象时。要安全的将密钥交到通信方,你需要和每一个人见面。为了解决这个问题,就出现了不对称加密或者公共密钥加密。使用这种方法,每一个通信对象都有一个密钥对:公钥和私钥。发送者使用对方的公钥加密,接收者使用自己的私钥解密。因为公钥是公开的,这就解决了密钥传递的问题。但是,也造成了一些性能的损失。在实际的应用中,为了避免密钥传递问题同时保证性能,通常使用不对称加密来交换密钥,然后使用对称加密传输数据。

加密是一个非常重要,也非常活跃的研究领域,有非常多的加密算法。例如,数据加密标准(DES),三重 DES,RC2 和 RC4 等


2)篡改与消息摘要

篡改是指攻击者拦截并修改消息的内容。加密不能避免消息被修改,接收者也无法判断消息是否被修改过。这里,就需要用到消息摘要(Message Digest)技术。消息摘要是一个表示消息特征的定长字符串。它有两个重要的特征:不可逆性和抗冲突性。不可逆性是指从消息可以计算出消息概要,但是从消息摘要基本不可能得到消息;抗冲突性是指要想产生具有相同摘要值的两条消息是相当困难的。这两个特性,使消息摘要可以用来验证消息的完整性。发送者使用摘要算法计算出消息摘要,并随同消息发送给对方;接收者收到消息以后,同样会根据消息计算出消息摘要 , 并和收到的摘要对比。如果两者相同,则表示消息没有被篡改。


在实际应用中,消息摘要很少被单独使用,通常用于数字签名和消息认证码(MAC)消息认证码是基于消息和密钥生成的消息摘要。它在验证完整性同时,可以在一定程度上完成用户验证功能。数字签名是经过加密的消息摘要

(PS:似乎就是消息被篡改了我必须知道,从而发现并处理这个篡改事件)


3)仿冒与数字证书

仿冒即假冒别人进行通信。消息认证码可以用来验证消息的发送者。数字签名则更进一步,具有不可抵赖性。因为数字签名是使用发送者私钥加密的消息摘要,只有发送者才能产生。这一切似乎都很完美,使用加密防止窃听,使用摘要防止篡改,使用数字签名防止仿冒,似乎不要什么数字证书。


事实当然不是这样,下面的攻击方式将瓦解以上所有的防线。这就是中间人攻击(man-in-the-middle attack)。在通信双方交换公钥的过程中,攻击者拦截双方的公钥,并将自己的密钥发送给通信双方。这样,通信双方就会使用攻击者的密钥加密。在这样情况下,所有的加密、签名都失效了。中间人攻击细节如下图所示:

图 1.中间人攻击


<img src="https://pic3.zhimg.com/734c42cf32c0e6bd0976d5d59c03f7d6_b.jpg" data-rawwidth="621" data-rawheight="356" class="origin_image zh-lightbox-thumb" width="621" data-original="https://pic3.zhimg.com/734c42cf32c0e6bd0976d5d59c03f7d6_r.jpg">

从上图可以看出,第 1, 2, 3, 4 步是公钥交换过程。在此过程中,攻击者获得了发送方和接收方的公钥,而将自己的公钥发送给通信双方。第 5, 6, 7, 8 步是发送消息的过程。在此过程中,发送方和接收方都是用攻击者公钥加密,而攻击者截获数据后重新使用通信双方公钥加密,这就使双方难以察觉攻击者的存在。

要防范中间人攻击,就需要使用数字证书,这里,数字证书主要指由专门的证书颁发机构(CA)授权的证书,称为 CA 证书。CA 证书将证书属主信息和公钥绑定到一起。证书颁发机构负责验证证书申请者的身份信息。通过可信的第三方(CA),通信方可以向任何人证明其拥有的公钥,其他人也可以通过 CA 验证其证书真伪,这就阻止了中间人攻击。CA 证书一般包含所有者的公钥 , 所有者的专有名称 , 签发证书的 CA 的专有名称 , 证书开始生效的日期 , 证书过期日期等信息。

与 CA 证书相对应的,还有自签署证书。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章