SSL背后的加密技术——非对称加密和对称加密

SSL背后的加密技术——非对称加密和对称加密

SSL(安全套接字层)是一种标准的安全技术,用于在服务器和客户端之间建立加密连接。安装SSL证书后,就可以建立此安全连接。但这是如何实现的?数据是如何加密的?本文介绍了SSL背后的加密技术,它涵盖了非对称加密和对称加密以及它们如何协同工作以创建SSL加密连接。

一、非对称加密

非对称加密(或公钥加密)使用单独的密钥进行加密和解密。任何人都可以使用加密密钥(公钥)来加密消息。但是,解密密钥(私钥)是秘密的。这样,只有预期的接收者才能解密该消息。最常见的非对称加密算法是RSA。

非对称密钥通常为2048位,小于2048位的密钥不再被认为是安全的。2048位密钥有足够的唯一加密代码,虽然可以创建更大的密钥,但是会增加计算负担。而且,破解2048位的证书需要超过140亿年的普通计算机。

二、对称加密

对称加密(或预共享密钥加密)使用单个密钥来加密和解密数据。发送方和接收方都需要相同的密钥才能进行通信。

对称密钥大小通常为128或256位,密钥大小越大,密钥越难破解。是使用128位还是256位密钥取决于服务器和客户端软件的加密功能。SSL证书不指定使用的密钥大小。

三、SSL如何使用非对称和对称加密

公钥基础结构(PKI)是创建,管理,分发,使用,存储和撤销数字证书所需的一组硬件,软件,人员,策略和过程。PKI也是通过证书颁发机构(CA)将密钥与用户身份绑定的方式。PKI使用混合密码系统,并且可以使用这两种类型的加密。例如,在SSL通信中,服务器的SSL证书包含非对称公钥和私钥对。服务器和浏览器在SSL握手期间创建的会话密钥是对称的。这将在下图中进一步解释。

① 服务器发送其非对称公钥的副本。

② 浏览器创建对称会话密钥,并使用服务器的非对称公钥对其进行加密。然后将其发送到服务器。

③ 服务器使用其非对称私钥解密加密的会话密钥以获得对称会话密钥。

④服务器和浏览器现在使用对称会话密钥加密和解密所有传输的数据。这允许安全通道,因为只有浏览器和服务器知道对称会话密钥,并且会话密钥仅用于该会话。如果浏览器第二天要连接到同一服务器,则会创建一个新的会话密钥。

四、加密算法介绍

公钥加密(非对称)使用RSA和椭圆曲线加密(ECC)等加密算法来创建公钥和私钥。通过非对称加密,可以轻松地生成公钥和私钥,使用公钥加密消息,以及使用私钥解密消息。但是,任何人都很难(或不可能)仅基于公钥导出私钥。

1、RSA

RSA基于假定的大整数因子分解(整数分解)。在假设不存在用于整数分解的有效算法的情况下,认为RSA密文的完全解密是不可行的。RSA的用户创建并发布两个大质数的乘积以及辅助值作为其公钥。主要因素必须保密。任何人都可以使用公钥来加密消息,但只有了解主要因素的人才能切实地解码消息。

RSA代表Ron Rivest,Adi Shamir和Leonard Adleman– 1977年首次公开描述该算法的人。

2、ECC

椭圆曲线密码学(ECC)依赖于有限域上椭圆曲线的代数结构。假设发现与公知基点相关的随机椭圆曲线元素的离散对数是不切实际的。ECC算法优于RSA的优点是密钥可以更小,从而提高了速度和安全性。缺点在于并非所有服务和应用程序都可与基于ECC的SSL证书互操作。

1985年,Neal Koblitz和Victor S. Miller独立地提出了在密码学中使用椭圆曲线; ECC算法于2004年投入使用。

3、预共享密钥加密算法

预共享密钥加密(对称)使用Twofish,AES或Blowfish等算法来创建,目前最受欢迎的密钥——AES。所有这些加密算法分为两种类型:流密码和分组密码。流密码将加密密钥和算法应用于数据流中的每个二进制数字,一次一位。分组密码将加密密钥和算法作为一组应用于数据块(例如,64个连续位)。分组密码是目前最常用的对称加密算法。

全球可信CA机构