现代密码学对信息的处理主要离不开以下的三种形式:
MD2/4/5/6、SHA0/1/256/512
算法等方式。DES、AES、RC4、IDEA
等方式。jwt 令牌
中就是有一段签名,用于保证负载信息的真实性,签名并不保证信息的私密性。总体来说,它们的分工是:
这三者共同构成了现代密码学的基石,广泛应用于数据保护、身份验证和网络安全等领域。
对称型密钥加密的基本原理是将明文数据通过一个加密算法和一个密钥转换成密文,然后接收方使用相同的密钥和解密算法将密文还原成原始的明文。由于加密和解密都使用同一个密钥,因此被称为对称加密。对称型密钥加密算法的特点是算法简单、速度快,适合于大量数据的加密。常见的对称型密钥加密算法包括:AES (Advanced Encryption Standard)、DES (Data Encryption Standard)、3DES (Triple DES)。
对称型密钥在密钥的保管和分发上面存在困难,因为密钥必须安全地分发给所有需要它的用户,并且每次通信都需要一个新的密钥,这在大规模通信中可能会变得复杂。关于对称型密钥总结如下:
非对称型密钥加密,也称为公钥加密或双密钥加密,是一种使用两个不同密钥的加密方法:一个用于加密(称为公钥),另一个用于解密(称为私钥)。公钥可以公开分享,而私钥则必须保密。
非对称加密的基本原理是:
密钥生成:首先生成一对密钥,包括一个公钥和一个私钥。这两个密钥是数学上相关的,但即使知道了公钥,也无法轻易推导出私钥。
加密:当 A 想要向 B 发送加密信息时,A 会使用 B 的公钥来加密信息。这样,只有拥有相应私钥的 B 才能解密这条信息。
解密:B 收到加密信息后,使用自己的私钥来解密,恢复原始信息。
非对称加密的关键特性是公钥可以公开,而私钥必须保密。这使得非对称加密在某些应用场景中非常有用,但非对称加密的主要缺点是计算复杂,消耗资源,速度慢等,因此它通常与对称加密结合使用:非对称加密用于安全地交换对称密钥,然后使用对称密钥进行实际的数据加密,以提高效率。使用非对称型密钥主要解决两个不信任个体在不安全通信环境下的信息传输问题,解决信息在公开网络中传输的问题,既然被截获也不会受到影响。关于非对称型密钥总结如下:
因此,对称密钥和非对称密钥的区分是为了满足不同的安全需求、提高效率、简化密钥管理,并适应不同的通信场景。单独依靠某一种算法(对称加密、非对称加密)既做不了加密,也做不了签名。在实际应用中,对称加密和非对称加密往往是结合使用的。已混合加密方式来保护信道安全。
具体做法:
混合使用对称和非对称加密方法来传输信息,这样可以同时利用两种加密方式的优势,也称为现代密码学套件。信息传输的终极解决方案 HTTPS 就是基于该方式实现的。
在现实生活中,我们要和一个未曾谋面的人建立信任,通常有两种方式:
在网络世界里面,我们不能认为两台计算机是相互认识并且存在共同的私密信息的,所以解决信任问题只有基于第二种 基于权限的公证人 的方式。
CA 认证中心是负责给计算机的服务端颁发数字证书(Certificate)的机构,类似于上面例子中给警察颁发证件的权威机构类似。当客户端访问服务端时,会检查服务端的证书是有效,确认无误后才会建立安全链接。
服务端的 PKI 证书是遵循 X.509 标准,证书包含了用于 SSL/TLS 通信的信息,具体如下:
前面介绍的繁琐的密钥和证书等机制,最终都是为了安全传输所准备的。如何将复杂的技术无感知的应用在所有人都使用的网络通信中,成为工程师要面对的挑战之一,SSL/TLS 技术也经历的漫长时间和摸索,早在 1994 年就开始尝试。以下是 SSL/TLS 技术的简要发展历:
TLS 在传输之前的握手过程一共需要进行上下两轮、共计四次通信,通过混合使用非对称加密交换密钥,使用对称加密传输信息的方式保障通信安全。如图:
通过四次握手,一个 TLS 安全连接建立。客户端和服务端通过握手协商出许多信息,例如:只有双方才知道的随机密钥,传输过程采用的对称加密算法(例如 AES 128 等)、压缩算法等。TLS 安全连接的建立,最终实现了以下的效果:
这种处理方式对上层的用户,虽然在传输性能上会有下降,但在功能上完全不会感知到有 TLS 的存在。建立在这层安全传输层之上的 HTTP 协议,就被称为 “HTTP over SSL/TLS”,也即是大家所熟知的 HTTPS 了。