现在加密方式被广泛地应用到银行系统,微信支付/支付宝支付/其它支付接口对接中,SSL加密能够更加有效的保证数据的准确性,及时性及安全性。

对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secretkey),这种方法在密码学中叫做对称加密算法。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密通常使用的是相对较小的密钥,一般小于256bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用1bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解;但如果你的密钥有1MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。密钥的大小既要照顾到安全性,也要照顾到效率,

非对称加密(AsymmetricCryptography),又称公钥加密

1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(publickey)和私钥(privatekey)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。

SSL握手期间的非对称加密

当你浏览一个使用SSL证书的网站时,浏览器做的第一件事就是和带着证书的服务器实行SSL握手。

这个SSL握手是浏览器查看SSL证书有效性和磋商加密链接细节的关键一环。这一过程在几毫秒的时间里完成。

浏览器确定证书签发自可信CA(如GlobalSign)、依旧有效且没有被撤回后,还要确保有问题的证书是其相应公钥的合法所有者。

你可能听说过公钥私钥。公钥更易识别,常见的有2048位签名密钥。数字越大,密钥越复杂。

公钥私钥是非对称加密的典型例子。公钥负责加密,私钥负责解密。使用非对称加密,连接方式只有一条路。

浏览器使用非对称加密来验证公私钥对,以及扩展证书本身。为此,浏览器将使用随时可用的公钥来加密一小撮一次性数据。如果服务器能够解密这个数据并以明文形式发回,那么它证明了它的私钥对应于公钥。

至此,浏览器和服务器可以开始他们的加密链接了。

会话密钥形式的对称加密

在SSL握手期间使用非对称加密作为一种验证方法之后,浏览器和服务器协商加密连接的条款并交换会话密钥。

会话密钥提供了一种在安全会话期间用于通信的对称加密形式,分为40位,128位,256位。

使用对称加密,密钥可以执行两种功能:既可以加密,也可以解密。这使得拥有相应会话密钥的客户端和服务器能够安全地进行通信。毕竟,没有正确的钥匙,没有人可以监视这个连接,不管第三方,无论多么复杂。

会话密钥在加密连接的整个持续时间内保持活动状态。在连接结束时密钥被丢弃,并且在下一次访问时生成新的密钥。这很简单,但相当有效。

如你所见,对称或非对称密钥的运作方式不同,一种允许双方进行加密和解密,另一种则是单方面通信。但两者都是SSL的组成部分。非对称加密有助于在SSL握手期间验证公钥/私钥对的所有权,而对称加密是在安全连接期间用于实际通信的方法。