HTTPS|SSL笔记-SSL双向认证失败(服务端证书信任库不含客户端证书)握手过程(含wireshark分析)

缺乏、安全感 2022-09-10 09:27 278阅读 0赞

这里我把服务端信任库添加了其他证书,不含客户端的证书,这时SSL认证失败报错如下。下面来分析下:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16

  1. 首先是TCP三次握手,对应的包如下:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 1

  1. 握手成功后,客户端发送自己支持的加密套,和随机数给服务端,也就是Client Hello

对应的是这个:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 2

具体内容如下:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 3

其中Random为随机数、Cipher Suites为加密套及signature_algorithms为签名算法。

  1. 服务端收到后回复ACK,对应的包如下:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 4

  1. 服务端发送自己的随机数以及选择一个加密套以及服务端证书给客户端也就是Server Hello

对应的包:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 5

具体如下:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 6

可知Handshake为Server Hello Done。

Random为随机数。Cipher Suite为选择的加密套。

Certificate里面含有证书。

  1. 客户端回复ACK对应的包如下:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 7

  1. 客户端端发送自己的证书,握手类型为Client Key Exchange

对应的包:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 8

具体内容如下:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 9

其中Handshake Protocol为Client Key Exchange。

Certificate为证书。

  1. 服务端收到后回复ACK对应的包如下:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 10

  1. 服务端拿到客户端证书后,发现自己的信任库里面没有此证书,就发出Alert,描述为Bad Certificate,对应的包如下:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 11

具体内容如下:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 12

Alert Message为Fatal,描述为Bad Certificate

  1. 客户端收到服务端的Alert后,回复ACK:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVQxOTk1_size_20_color_FFFFFF_t_70_g_se_x_16 13

  1. 最后就是TCP4次分手了,这里程序写得估计有点问题,在此不截图了,此博文只研究握手过程。

发表评论

表情:
评论列表 (有 0 条评论,278人围观)

还没有评论,来说两句吧...

相关阅读