共享密钥加密:
加密和解密用同一个密钥的方式称为共享密钥加密,也交对称密钥加密。
以共享密钥方式加密时必须将密钥也发给对方,可究竟怎样才能安全地转交,在互联网上转发密钥时,如果通信被监听那么密钥怎么保证不被监听,存在一个悖论。
公开密钥加密:
公开密钥加密使用一对非对称的密钥,一把是私钥,一把是公钥。使用公开密钥加密方式,发送密文方会使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私钥进行解密。利用这种方式,不需要发送用来解密的私钥,也不必担心密钥被攻击者窃听而盗走。
另外,要想根据密文和公开密钥,恢复到信息原文是异常困难的,因为解密过程就是在对离散对数进行求值,这很难办到(如果对非常大的整数做快速的因式分解,那可以破解)。
HTTPS采用混合加密机制
HTTPS采用共享密钥加密和公开密钥加密两者并用的混合加密机制。若密钥能够采用实现安全交换,那么有可能会考虑仅使用公开密钥加密来通信。但是公开密钥加密与共享密钥加密相比,其处理速度要慢。所以使用公开密钥加密方式来交换密钥,之后建立通信交换报文阶段使用共享密钥加密方式。
为了确保公开密钥本身的完整性,需要第三方数字证书认证机构介入。
数字证书的认证过程如下:
1.服务器向机构提交公钥申请,机构在判明申请者身份后,对公钥进行数字签名(即用自己的私钥部署至公钥)之后颁发公钥证书。
2.数字证书认证机构的公开密钥已事先植入到浏览器,客户端拿到服务器的公钥证书后,使用数字证书认证机构的公开密钥,向数字证书认证机构验证公钥证书的数字签名,以确认服务器的公开密钥的正式性。
3.使用服务器的公开密钥对报文加密后发送。
4.服务器用私钥对报文解密。
EV SSL证书可证明服务器是否规范及服务器运营的企业是否真实存在(即是否适非法攻击者搭建)
客户端证书也可证明客户端是否为默认通信方的客户端(即是否非法攻击者),但客户端证书需要自行安装(是个门槛),银行的网银系统就采用了客户端证书。