开篇 ECDHE_RSA浅析
凡事都有个起因,这是本人的第一篇博客,之前工作中,当碰到技术问题时,在度娘一搜,如果有CSDN等各种博客的文章弹出,基本问题都可以得到解决,所以一致很佩服也很羡慕各种博主大神,因此自己也有想写点东西的想法,但是各种原因一直未能实现。最新在学习wireshark,看了一本书,作者谈到关于记录总结的重要性,自己也颇有感触,尤其是现在年龄大了,很多做过的东西或解决的问题,很快就忘了,因此决定开始写点东西,主要是为自己以后查看方便。
最近在使用Wireshark学习TLS协议,发现抓的TLS握手包中的密码套件都是TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,密码套件从功能上一般就三部分:密钥交换、加密、hash。所以从名称中可以看出:ECDHE_RSA是用于密码交换,AES_128_GCM是加密(带有MAC功能),SHA256是hash算法。
这里ECDHE_RSA是让我感到迷惑的地方,因为ECDHE是椭圆曲线的密钥交换算法,那为什么还要RSA呢,因为从技术实现上,没有必要在使用ECC的地方还使用RSA。
后来抓包发现,TLS握手中的证书使用的是RSA算法,而密钥交换使用的是ECDHE,然后使用RSA的公钥(证书中)对ECDHE的密钥交换参数进行了签名(这点是推断,具体数据未用RSA算法进行验证),以防止中间人攻击,感觉确实有点绕。
后来思考了一下原因,感觉可能是由于证书采用了RSA算法导致的原因,并不是技术原因,RSA目前的应用范围确实要比ECC更加广泛。
2020年,新冠病毒肆虐,科比离去,祝大家都能安好!!!