常见的加密算法可以分成五类:
密码分类 | 国产商用密码 | 国际商用密码 | |
---|---|---|---|
对称加密 | 分组加密/块加密 | SM1/SCB2 SM4/SMS4 SM7 | DES、IDEA、AES、RC5、RC6 |
序列加密/流加密 | ZUC(祖冲之算法) SSF446 | RC4 | |
非对称加密 | 大数分解 | RSA、Rabin | |
离散对数 | SM2 SM9 | DH、DSA、ECC | |
散列(HASH)算法 | SM3 | MD5、SHA-1、SHA-2 |
对称加密方法使用单个加密密钥来加密和解密数据。对这两个操作使用单个键使其成为一个简单的过程,因此称为“对称”。对称加密的最突出特征是其过程的简单性。这种加密的这种简单性在于使用单个密钥进行加密和解密。
AES代表“高级加密系统”,是最广泛使用的加密算法之一,并且是DES算法的替代方法。AES也称为Rijndael,在2001年经NIST批准后成为一种加密标准。与DES不同,AES是一组分组密码,由不同密钥长度和分组大小的密码组成。
AES致力于替代和置换方法。首先,将明文数据转换为块,然后使用加密密钥应用加密。加密过程由各种子过程组成,例如子字节,移位行,混合列和添加回合密钥。根据密钥的大小,执行10、12或14次这样的回合。值得注意的是,上一轮不包括混合列的子过程以及为加密数据而执行的所有其他子过程
基本上,此方法涉及两个巨大的随机质数,并将这些数字相乘以创建另一个巨数。这里的难题是从这个巨大的乘法数确定原始素数。RSA基于简单的数学方法,这就是为什么它在公钥基础结构(PKI)中的实现变得简单明了的原因。PKI的这种适应性及其安全性使RSA成为当今使用最广泛的非对称加密算法。RSA被广泛用于许多应用程序中,包括SSL / TLS证书,加密货币和电子邮件加密。
ECC(椭圆曲线密码术)算法像RSA一样,ECC也遵循不可逆原理。在ECC中,将表示曲线上一个点的数字乘以另一个数字,得出曲线上的另一个点。现在,要破解这个难题,您必须找出曲线上的新点。ECC中较短密钥的另一个优点是性能更快。较短的密钥需要较少的网络负载和计算能力,这对于存储和处理能力有限的设备来说非常有用。在SSL / TLS证书中使用ECC时,可大大减少执行SSL / TLS握手所需的时间,并有助于您更快地加载网站。ECC加密算法用于加密应用,伪随机数生成器等中以应用数字签名。
混合加密技术用于SSL / TLS证书等应用程序。SSL / TLS加密是在服务器和客户端(Web浏览器)之间的一系列来回通信过程中应用的,此过程称为“ TLS握手”。在此过程中,使用私钥和公钥验证双方的身份。双方都确认了自己的身份之后,便使用临时(会话)密钥通过对称加密对数据进行加密。这确保了我们每分钟在互联网上发送和接收的大量数据的快速传输。
对称加密解决了信息传输的安全问题,但是引出了密钥配送问题。非对称加密通过公钥加密、私钥解密的方式,避免了密钥在配送过程中被盗取。但是仍有中间人攻击的风险,因此引入数字证书。
身份认证机构是信息接收者能信任的机构,所有的公钥必须向该机构进行注册。注册后身份认证机构给发送者颁发一数字证书。对文件签名后,发送者把此数字证书连同文件及签名一起发给信息接收者,接收者向身份认证机构求证是否真地是用发送者密钥签发的文件。
数字证书是一种电子档案,用来证明公钥拥有者的身份。此档案包含了公钥信息、拥有者身份信息(主体)、以及数字证书认证机构(发行者)对该文件的数字签名。
证书的本质就是对公钥加数字签名,认证机构用自己的私钥对需要认证的人(或组织机构)的公钥进行数字签名并生成证书。
数字证书有两个问题:
证书中除了有兔小白的公钥信息,还有认证机构对兔小白公钥生成的签名。目的一是为了确保签名不被篡改,二是确保该证书确实是该认证机构颁发的。
证书为了解决消息接收方公钥的信任问题而出现。但证书中又引入了认证机构的公钥用来验签。
现在问题来了。认证机构公钥的信任问题又应如何解决呢?如果这是一家攻击者伪装的认证机构,那么这一套复杂的认证机制岂不是白费?
单向散列加密算法常用于提取数据,验证数据的完整性。单向加密算法只能用于对数据的加密,无法被解密,其特点为定长输出、雪崩效应。
重放攻击指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。重放攻击可以由发起者,也可以由拦截并重发该数据的地方进行。
Smurf攻击是一种病毒攻击,结合使用IP欺骗和ICMP回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。Smurf攻击通过使用将回复地址设置成网络的广播地址的ICMP应答请求数据包,来淹没受害主机,最终导致该网络的所有主机都对此ICMP应答请求做出回复,导致网络阻塞。更复杂的将源地址改为第三方的受害者,最终导致第三方崩溃。
字典攻击是在破解密码或密钥时,逐一尝试用户自定义词典中的可能密码的攻击方式。与暴力破解的区别是,暴力破解会逐一尝试所有可能的组合密码,而字典攻击会使用一个预先定义好的单词列表。
中间人攻击(Man-in-the-MiddleAttack,MITM)是一种间接的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机称为“中间人”。通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方毫不知情。常见的中间人攻击:
要防范中间人,我们需要使用公钥证书。
TCP | UDP | |
---|---|---|
连接性 | 面向连接 | 无连接 |
可靠性 | 可靠 | 不可靠 |
传输方式 | 面向字节流,TCP将要发送的数据视为无结构的字节流,如果发送的数据太长,就拆分发送,如果发送的数据太短,则积累较多的字节后再发送。 | 面向报文(保留报文的边界),发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次发送一个报文,不管多大,都以报文为发送单位。 |
传输速度 | 慢 | 快 |
双工性 | 全双工 | 一对一、一对多、多对一、多对多 |
流量控制 / 拥塞控制 | 有 | 无 |
应用场景 | 对效率要求相对低,但是对准确性要求高的场景;或是要求有连接的场景。如文件传输、发送邮件等 | 对效率要求相对高,对准确性要求相对低的场景。如即时通信、直播等 |
应用层协议 | SMTP(电子邮件)、TELNET(远程登录控制)、HTTP、FTP | DNS、TFTP(文件传输)、DHCP(动态主机配置)… |
建立连接 和 关闭连接
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持,SSL协议可分为两层:
Kerberos 地狱犬的三个脑袋:
Kerberos 是一种基于加密 Ticket 的身份认证协议。Kerberos 主要由三个部分组成:Key Distribution Center (即KDC)、Client 和 Service。
集群开启Kerberos认证之后:
对客户端而言,在访问集群服务(如HDFS,YARN等)之前,必须先通过Kerberos认证,未经认证的客户端无法访问集群服务,只有经过认证的可信客户端才能访问集群服务、提交作业,有效防止恶意用户冒充客户端向集群提交作业的情况;
对服务端而言,集群的服务都是可以信任的,避免了冒充服务的情况。
每个需要使用Kerberos认证服务的用户或者服务都需要一个Kerberos principal,kerberos主体是用户或者服务的唯一标识。启用Kerberos之后,每个访问集群服务的用户都需要证明自己是Kerberos的某个主体,然后才能使用集群服务。
principal 主要由三部分构成:primary,instance(可选) 和 realm。包含 instance 的principal,一般会作为server端的principal,如:NameNode,HiverServer2,Presto Coordinator等;不含有 instance 的principal,一般会作为 客户端的principal,用于身份认证。
Realm:Kerberos 系统中的一个namespace。不同 Kerberos 环境,可以通过 realm 进行区分。
Ticket Cache:客户端与 KDC 交互完成后,包含身份认证信息的文件,短期有效,需要不断renew。
Keytab 文件包含了principal 以及该principal 的加密密钥,通过该文件,集群的服务或者用户可以不需要任何交互即被认证为合法的principal。
KDC由三部分构成:
首先定义所有组件:
MYTRAIN.DOMAIN: Kerberos 域 ( 域名一般为大写 )
Jerry :一个系统用户, UPN 为 [email protected]
myservice : server1.mytrain.domain 上运行的一个服务, SPN 为:myservice/[email protected]
kdc.mytrain.com : Kerberos 域 MYTRAIN.COM 的 KDC 。
Jerry想要使用myservice,需要向myservice提供一个有效的服务票据,以下是工作流程:
优点:
kerberos/LDAP是用来做身份认证的,ranger用来做授权审计的,KNOX负责集群安全,
ranger上可以同步LDAP中的用户,并进行统一的用户权限管理
HDP的数据安全:HDP Security Features
MongoDB的数据安全:信任中心 — MongoDB Cloud Services | MongoDB
证书-解决非对称加密的公钥信任问题 - 知乎
加密算法总结_傲节的博客-CSDN博客_加密算法
Kerberos概述
Kerberos基础及KDC服务(理论知识)_Siobhan. 明鑫的博客-CSDN博客_kdc服务