在https传输的过程中,我们底层的加密传输协议是ssl/tls.这里所使用的加密算法的秘钥位数(也就是服务器所使用的https证书的位数)可能是1024/2048或者更高,目前1024位的证书已经被证实是不安全的,需要逐步替换掉。
那么如何通过抓包来查看当前连接所采用的实际加密位数呢(注意,这里是抓包查看,如果是网页我们用浏览器直接访问,点击那个小锁然后进行一系列的操作就可以查看到连接信息了,如果有兴趣查看以下链接内容:http://www.wosign.com/FAQ/how_to_check_rootCA_1024bit_2048bit.htm)?
首先我们抓取到相关的数据包(做移动开发的一般都有所了解,这里不再赘述,可以查看博主其他博文或自行百度),博主这里使用的是alipay的网页来进行演示的,后面可以看到ali的最底层根证书仍然是1024位的证书,基于根证书颁发的其他证书是2048位的;
edit->protocol->ssl,进行过滤,follow到相应的数据包以后,查看info栏显示certificate相关内容的包,点击进去查看(如图中length为212的包):
查看到该包的详细信息如下:
我们这里只需要关注ssl层(secure sockets layer)的内容,其他层我们这里无需关注;这里可以看到所有证书相关的信息。我们点击每个证书可以分别查看每个证书的相关信息;
最下面的是根证书信息(可以看到ali的证书来自verisign,这是一个很大的证书颁发机构)。
展开证书信息,点击其中的encrypted,下面的选中部分内容即为秘钥信息;我们可以看到选中的内容共有8行,每行包含了16字节,那么总共就是128字节,换算为bit就是1024bit.可以看到这个根证书是1024bit的;通过同样方法可以查看到这里除了根证书的其他证书都是2048bit的。
----完------此文根据本人经验和网络知识结合实际操作撰写,如有不当之处恳请指出并斧正,非常感谢!