分布式系统详解--基础知识(安全)
前一篇文章提到了 分布式系统详解--基础知识(CAP),让我们了解到了分布式中一致性、可用性和分区容错性之间的爱恨情仇,今天的安全性我想更是重中之重,没有安全,好像什么都没有了,这篇文章当中也只能将一些最基本的安全知识介绍一下,如黑客攻击的基本漏洞、数据加密、权限控制、安全通道。如果想成为安全界的大牛,还需要加倍的努力才行。当然在文章后期会进一步介绍一下现在一些安全的框架,可以在某一方面帮助我们实现安全的部分性能。
一、黑客的安全攻击
说起黑客,他们好像无孔不入,只要一台电脑,就可以玩转整个世界。但是他们在分布式中可以进行哪一些攻击呢?我们来看一下。
- 常用的攻击方法
(1)对进程的威胁
A,对服务器:使用假身份证欺骗
B,对客户:使得客户收到假结果:窃听了客户口令
(2)对通道安全威胁
A,切断。(实际上就是将服务或者数据被破坏让数据变得不能获得或者不可用,当然还有其他攻击可能,如对其可用性的攻击,破坏硬件,切断通信线,使文件失效)
B,侦听。(这个是对那些未授权的资源进行访问,进行一系列非法的操作)
C,更改。(未授权着不仅可以进行访问资源,还能够进行更改资源,破坏其完整性。或者直接改变程序逻辑,使得程序执行发生变化)
D,伪造。(未授权着可以进行添加对象,使得假的消息内容出现在系统中)
- 间接渗透
(1)特洛伊木马。滥用执行环境的一段代码。在其表面来说是合法程序,一旦执行,就会产生非预期的结果。
(2)蠕虫。这是一种独立的程序,使用的是派生技术,产生众多类似于蠕虫的同样程序,嵌入其他运行环境。
(3)病毒。在合法文件中潜藏的一段恶意代码。通过电子邮件、网页中的可执行程序、或者下载文件进行传播。
二、知己知彼方百战不殆--应对之策
不断提高我们的安全意识是一方面,更重要的是应对之策。
2.1 认证
官方语言就是识别并验证主体的合法性(也就subject),通俗一点,就是谁进来,我要验证你的身份,先要看一下是否能够让系统认识你,就登录而言,就是你的登录账号和密码是否匹配。这里的主体呢,可以是用户,也可以是客户、进程、服务器。
2.2 授权
当认证通过时,我们需要对该用户赋予他相应的权限,使得该用户可以在系统中执行一系列的操作。
2.3 加密
加密解密可以说是老生常谈的问题,就是将一个明文在进行数据传输的时候进行一系列的处理使得变为一串不能被识别的代码,还可以在验证其完整性。
2.4 监听
监听技术实际上是通过对日志的分析,我们可以看到我们的系统中出现的问题,当攻击者进行攻击的时候,我们可以分析我们系统中的漏洞,执行补救的工作。
三、加密算法
(key)A-->B(key)
(1)对称加密
对称加密是指的加密和解密使用相同密钥的加密算法。在加密算法中使用了同一个密钥,A进行密钥加密,B用相同的key进行解密。这就需要A和B对key进行相当的保密,倘若被别人发现密钥key的值,信息就会被暴露。
(2)非对称加密
(pub-key)A-->B(pri-key)
非对称加密就是针对上面对称加密的安全措施的缺陷来进行的整改,为了防止别人拿到key值就可以肆意的进行数据传输,那么B就可以向外提供一个公钥(pub-key),这个时候,A发过来的消息使用(pub-key)进行加密,而对于拥有私钥的B来说才能解开。并且这还有个显著地特点,就是如果B可以向外发出很多个公钥,如果这几个公钥不一样,那么另外这几个公钥发过来的消息他们彼此是不能相互通信的。这就进一步加强了数据的安全性。
非对称加密要求加密一方和解密一方密钥不同,但是他的性能太低。
(3)数字签名
(sign)A-->B(pub)
非对称加密对加密性能进行了提高,然而我们还是要担心的问题就是公钥是不是被人拦截了,被人从中获取之后,修改信息。所以我们引进里数字签名,这个时候,A生成了一对公钥和私钥,先将公钥给B,然后自己的数据用私钥进行签名,发送给B,B接收到消息之后,用A发过来的数据解密,就能获得数据。
(4)数字认证
这张图就很明显的解释了这个加密方式,Bob首先将自己的公钥发送给Trent,Trent获得Bob的pub之后,用自己的私钥(pri')将pub进行加密,获取到一个sign,而这个sign值只有用Trent的公钥才能解开,Trent将公钥pub'发送给了Alice,此时,Bob将自己的公钥和加密后的sign一起发送给Alice,Alice用之前Trent发送给的pub‘来进行验证sign,如果sign值正确,那么Bob发送过来的公钥pub是正确的,这就防止了一部分人获取公钥的想法了~~完美吧,哈哈。
博客参考:阿里技术公众号推荐趣图解析加密算法:工程师男友如何反窃听?趣聊密码学入门科普
四、安全通道
4.1 初识SSL和HTTPS
什么是SSL呢?SSL全称是Secure socket layer(安全套接字层)。SSL是Netscape所研发,来保障因特网上数据传输的安全,利用数据加密技术,用来保证在网络传输中不会被截取以及窃听。SSL其实和我们的生活也是有着密切的关系,现在我们所使用的淘宝、天猫、百度、腾讯等等大型官网进入的时候,我们都会发现都已经改成了https为开头的网站链接。而https是在http的基础上加入了SSL协议。
4.2 SSL的实现的基本功能
(1)数据进行加密。通过加密算法使得数据具有安全性,加密的过程需要用到密匙来加密数据然后再解密。
(2)数据的一致性 加密也能保证数据的一致性。可以校验数据是否已经被篡改过,保证数据的前后一致。
(3)服务器身份证明。SSL服务器证书可以有效地证明网站的真实身份、使用的域名的合法性,让使用者可以很容易识别真实网站和仿冒网站。
4.3 HTTP与HTTPS的关系
区别:
A,https协议是需要ca证书,并且需要一定的费用(也有没费的)。
B,http是超文本传输协议,信息是明文发送,https是SSL加密后进行传输的。
C,http和https使用的不同的连接方式。端口也不同,http端口是80,https端口是443.
4.4 HTTPS的工作原理(网上搜刮图)
五、防火墙
5.1 防火墙的基础定义
简单来说就是一种位于内部网络和外部网络之间的一种网络安全系统。详细一点的解释就是它是一个由软件和硬件设备组合、在内部网和外部网络之间、专用网和公共网之间的界面上构造的保护屏障。
5.2 防火墙类型
(1)网络型防火墙
网络防火墙可以看作是一种ip封包过滤器,它的运作底层是TCP/IP协议堆栈。在这里只允许一些特定规则的封包通过,其他的一律禁止入内。温馨提示,病毒防不住。
(2)应用层防火墙
应用层防火墙是在 TCP/IP 堆栈的“应用层”上运作,也就是说浏览器上所产生的数据流或者使用FTP时的数据流都是这一层。防火墙可以检测电脑所有的封包,并且找出不规则的内容,可以防范电脑蠕虫和木马程序的快速蔓延。
(3)数据库防火墙
数据库防火墙基于数据库协议分析与控制技术的数据库安全防护系统,实现数据库中的访问行为控制、危险操作阻断、可以行为审计。
5.3 分布式防火墙
采用 NSX 网络虚拟化方案, 分布式防火墙来管理东西向流量。因为是完全基于软件的虚拟防火墙,可以做到每一台虚机都配备一台防火墙。而且虽然防火墙是分布式的,但是它们的管理是集中的,通过统一的管理界面来管理所有的虚拟防火墙,集中配置所有防火墙的安全规则,所以管理上也很简便。