再谈HTTPS

本文详细探讨了HTTPS的加解密原理,指出HTTPS并非仅使用RSA,而是通过RSA进行身份验证和密钥交换,随后使用对称加密传输数据。解释了对称加密与非对称加密的区别,并以RSA为例阐述了非对称加密的过程。文章还介绍了HTTPS连接建立的步骤,包括身份验证、证书签名验证、密钥交换等,并特别讲解了ECC(椭圆曲线加密)在密钥交换中的应用。此外,讨论了HTTPS证书的类型和申请方式,以及客户端证书的概念。
摘要由CSDN通过智能技术生成

本篇将讨论HTTPS的加解密原理,很多人都知道RSA,以为HTTPS = RSA,使用RSA加解密数据,实际上这是不对的。HTTPS是使用RSA进行身份验证和交换密钥,然后再使用交换的密钥进行加解密数据。身份验证是使用RSA的非对称加密,而数据传输是双方使用相同的密钥进行的对称加密。那么,什么是对称加密和非对称加密?1. 对称加密和非对称加密假设隔壁小王想要约小红出来,但是他不想让小明知道,于是他想用对称加密给小红传了个小纸条,如下图所示:他想发送的数据的数据是"Meet at 5:00 PM"(5点见面,如果是中文的话可以使用UTF-8编码),加密方式是直接在ASCII表进行左移或右移,他的密钥是3,表示在ASCII表往后移3位,就会变成"Phhw#dw#8=33#SP",这样一般人如果截获了不知道是什么意思的。但是我们可以想一下,如果既然他可以载获你的数据,自然也可以截获你的密钥,进而进行解密,如下图所示:所以小王打算用非对称加密,非对称加密的特点是双方都有自己的公钥和私钥对,其中公钥发给对方,密钥不交换自己保管不泄漏,如下图所示:其中小红的公钥为:public_key = (N, e) = (3233, 17)她把公钥发给了小明,她自己的私钥为:private_key = (N, e) = (3233, 2753)这里注意公钥和私钥都是两个数,N通常是一个大整数,e表示一个幂指数。现在小王想给小红发消息,于是他用小红的公钥进行加密,怎么加密呢?他要发送的第一个字母为t = “M”,“M”的ASCII编码为77,77的加密过程如下计算:T = 77 ^ e % N = 77 ^ 17 % 3233 = 3123把77做e次幂然后模以N,便得到了T = 3123,然后把这个数发给小红(其它字母按同样方式处理)。小红收到T之后便用她的私钥进行解密,计算如下:t = T ^ e % N = 3123 ^ 2753 % 3233 = 77计算方法是一样的,这样便把T还原成了t,只要公私钥配对,便可通过一些数学公式证书上面的推算是成立的。这个就是RSA的加解密原理,如果无法知道私钥便无法进行正确解密。反过来,使用私钥进行加密,公钥进行解密也是可行的。那么HTTPS是怎么利用RSA进行加解密的呢,我们从HTTPS连接建立过程说起。2. HTTPS连接建立过程HTTPS主要有以下作用:1. 验证服务方身份,如我访问google.com的时候连的确实就是谷歌服务器2. 防止数据被劫持,例如有些运营商会给http的页面插入广告3. 防止敏感数据被窃取篡改等正如openssl的注释所说这是防止中间人攻击的唯一方法:我们以MDN(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值