首页 > 编程知识 正文

简述ssl的工作原理(ssl加密原理)

时间:2023-05-06 00:39:32 阅读:124105 作者:4542

ssl加密原理个人博客地址: https://www.de 009.top/SSL-encryption-principle.html

第一,对称加密对称加密是指服务器和客户端都使用相同上的私钥加密和解密数据

用户和服务器建立加密连接后,用户将获得服务器唯一上的数据加密私钥。 所有用户(包括服务器)都使用此唯一的私钥加密自己的信息。

例如,当客户端a利用私钥k加密和发送经加密的密文被发送到服务器时,服务器可以使用相同私钥k解密a发送的密文。

此时,用户b也与服务器建立加密连接,并且用户b使用的秘密密钥也能够利用k即b的秘密密钥对a的加密信息进行解密。

这表明了对称加密的巨大漏洞。秘钥的唯一性

在对称加密算法中,所有加密消息可由相同开放私钥k解密。

用户b在请求服务器和私钥k后通过分组到a,用私钥k解密a的所有加密消息并获得a的隐私信息。

图解如下。

因此,对称加密由于秘密密钥k的唯一性,其与明文传输几乎相等,因此不可用。

二是不对称加密不提供对称加密的不安全性,因此会出现新的加密方式。非对称加密

首先,对称加密的两大缺点是秘钥的唯一性秘钥的公开性。 但是,在不对称加密中,这两个缺点都得到了很好的解决。

非对称加密、zjdbz、客户端和服务器两者使用的加密私钥不同。 在非对称加密中,原始唯一私钥k被分成两个不同的私钥。 分别是服务器的秘密密钥SK和客户机的公开密钥PK。

在此,公开密钥PK是向用户公开取得的,而秘密密钥SK一直保存在服务器侧,未向外部公开。

不对称的加密解密过程,利用私钥SK加密的消息只能用公钥PK解密,而利用公钥PK加密的消息只能用私钥SK解密。

#私钥: SK#公钥: PK#客户端数据: a数据#服务器数据: s数据#客户端加密消息: Y#服务器加密消息: y ` (a数据PK )=y(ysk ) ) a DDA

以上是不对称加密的基本原理。

因此,所有客户都只有公钥,黑客将无法获得用户发送的隐私信息。 但是黑客仍然有公钥,所以可以解密服务器发送的信息。 不对称加密还不安全。

第三,对称非对称加密将对称加密和非对称加密的各个优点结合起来,创建了对称非对称加密,因为非对称机密仍然不安全。

首先,让我们总结一下前面两种加密方法各自的优缺点。

对称加密:客户和服务器都使用相同的私钥进行加密。

只要私钥不泄露,黑客就无法知道双方的信息。

不对称加密:客户端和服务器使用不同的私钥进行加密。

黑客只能知道服务器发送的信息。

既然对称加密的私钥不会泄露,黑客就无法获取隐私信息。

使用不对称加密,黑客无法获取客户端发送的信息。

使用非对称加密加密对称加密的私钥,使用对称加密,其他用户将无法知道自己使用的私钥。

这就是对称非对称加密的创立思想。 接下来,详细说明其原理。 客户端向服务器请求公钥,由服务器发布,

客户端用公钥加密自己对称加密的私钥,并将其发送到服务器。

服务器分析后,使用对称加密与客户端进行通信。

这样,黑客就无法知道客户端发送到服务器的私钥,客户端和服务器端的信息都无法用黑色知道。

#私钥: SK#公钥: PK#私钥: K#客户端数据: A Data#服务器数据: S Data#X :非对称加密的K#客户端加密消息: Y#服务器加密消息: Y`(PK K )

如上图所示,

服务器首先分发公钥,为客户端(黑客可以知道)指定私钥k,用公钥PK加密后发送给服务器(黑客不能解密)服务器接收密文,用私钥SK解密,使用用k加密的信息进行客户端客户端继续用k加密信息并进行通信。 [黑客不知道]这样,对称非对称加密的加密方式可以防止其他用户解密用户的信息,无论是服务器的信息还是客户端的信息。

四、中间人攻击对称不对称加密看起来已经十分安全,但仍然存在漏洞。

想想看。 假设黑客在客户端访问服务器之前进行了DNS劫持,访问了客户端自己创建的伪装服务器,并且伪装服务器有自己的私钥公钥对。 客户端申请的公钥是伪装服务器的假公钥(FPK ),客户端使用FKP与伪装服务器建立连接后,黑客可以用自己的假公钥和假私钥解密客户端发送的所有加密消息。 使用客户端发送的信息与真正的服务器进行通信,并将服务器响应的信息通过自己的虚拟服务器返回给客户端。

图解:

通过这种方式,黑客可以在自己的伪造服务器上知道客户端的所有隐私信息,但客户端不知道黑客的存在

然认为自己在与真正的服务器进行通讯。

五、CA认证

既然对称+非对称加密也是不安全的,那么我们仍然需要一项新的技术来保证我们http通讯的安全。
首先,我们来分析一下中间人攻击所利用的漏洞:
客户端向服务器发起连接,服务器下发秘钥,进行连接。如此一来,客户端其实并不能判断自己是否是在与真正的服务器端进行连接。这也就给了黑客伪造服务器的机会。
那如果利用下发的公钥来判断服务器的身份的话,就可以确保自己在与真正的服务器进行连接了。
那么,我们该如何使公钥可以验证服务器的身份呢?
这里我们引入一个第三方验证机构,所有的公网服务器都要向这个第三方验证机构进行身份核实,然后第三方验证机构向他发送一个证书,证明这个服务器是真实的。
在真实环境中,这个所谓的第三方验证机构叫做CA证书机构(Certificate Authority),而服务器的身份是指服务器所使用的DNS域名。
CA提供一套非对称加密系统,所有希望被CA认证的服务器都要将自己的公钥发送给CA,当CA认证了服务器的身份(DNS域名)后,就就会用自己的私钥(CSK)来加密服务器的公钥PK,加密后的文件便是该服务器的证书(Lience),并返还给该服务器。
当客户端要与服务器通讯时,客户端先向服务器请求证书,收到证书后,由于证书是有CA证书颁发中心的私钥CSK加密的,所以需要公钥CPK解密,但是如果客户端向CA证书服务器请求的话,就又会被中间人攻击。所以,为了防止这种情况的发生,所有有效的CA证书颁发机构的公钥CPK都是被写死在操作系统中的,客户端不用想CA中心申请,直接使用本地操作系统内的CPK,这样就避免了被中间人攻击。
在解密证书(Lience)后,客户端得到了公钥PK,同时由于证书可以被信任的CPK解密,所以该服务器是可信任的,之后,便可和服务器进行通讯了。
图解:
CA证书申请


至此,CA证书验证系统的基础原理已经讲完了。
现在几乎所有的https加密协议都是使用CA证书的验证。
如果这篇文章对你有帮助,点个赞可否?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。