mysql 登陆鉴权_MySQL登陆的二次鉴权问题

客户端登录到MySQL的方式,是经典的三次握手方式,相关资料网上都有,不再赘述。但今天采用php5.5的mysql_connect方式登陆mysql5.6以上版本时, 发现登陆方式不是3次握手,而是5次握手。 这是tcpdump出来的包:

22:04:17.476594 IP 10.10.225.193.mysql > 10.10.117.26.50666: Flags [S.], seq 1383769468, ack 3669311543, win 14020, options [mss 1414,sackOK,TS val 2879321384 ecr 2223682561,nop,wscale 9], length 0

0x0000: 4500 003c 0000 4000 3f06 d0cc 0a0a e1c1 E..<..>

0x0010: 0a0a 751a 0cea c5ea 527a a57c dab5 4037 ..u.....Rz.|..@7

0x0020: a012 36c4 e75b 0000 0204 0586 0402 080a ..6..[..........

0x0030: ab9e f528 848a b401 0103 0309 ...(........

22:04:17.476623 IP 10.10.117.26.50666 > 10.10.225.193.mysql: Flags [.], ack 1, win 111, options [nop,nop,TS val 2223682562 ecr 2879321384], length 0

0x0000: 4500 0034 f438 4000 4006 db9b 0a0a 751a E..4.8@.@.....u.

0x0010: 0a0a e1c1 c5ea 0cea dab5 4037 527a a57d ..........@7Rz.}

0x0020: 8010 006f 4c50 0000 0101 080a 848a b402 ...oLP..........

0x0030: ab9e f528 ...(

22:04:17.477131 IP 10.10.225.193.mysql > 10.10.117.26.50666: Flags [P.], seq 1:94, ack 1, win 28, options [nop,nop,TS val 2879321384 ecr 2223682562], length 93

0x0000: 4500 0091 5055 4000 3f06 8022 0a0a e1c1 E...PU@.?.."....

0x0010: 0a0a 751a 0cea c5ea 527a a57d dab5 4037 ..u.....Rz.}..@7

0x0020: 8018 001c 253c 0000 0101 080a ab9e f528 ....%<.........>

0x0030: 848a b402 5900 0000 0a35 2e36 2e32 302d ....Y....5.6.20-

0x0040: 7563 6c6f 7564 7265 6c31 2d6c 6f67 0088 ucloudrel1-log..

0x0050: e873 0147 5a71 4956 562f 2500 fff7 2102 .s.GZqIVV/%...!.

0x0060: 007f 8015 0000 0000 0000 0000 0000 6860 ..............h`

0x0070: 2b51 3659 4071 3a6a 2c38 006d 7973 716c +Q6Y@q:j,8.mysql

0x0080: 5f6e 6174 6976 655f 7061 7373 776f 7264 _native_password

0x0090: 00 .

22:04:17.477156 IP 10.10.117.26.50666 > 10.10.225.193.mysql: Flags [.], ack 94, win 111, options [nop,nop,TS val 2223682562 ecr 2879321384], length 0

0x0000: 4500 0034 f439 4000 4006 db9a 0a0a 751a E..4.9@.@.....u.

0x0010: 0a0a e1c1 c5ea 0cea dab5 4037 527a a5da ..........@7Rz..

0x0020: 8010 006f 4bf3 0000 0101 080a 848a b402 ...oK...........

0x0030: ab9e f528 ...(

22:04:17.477265 IP 10.10.117.26.50666 > 10.10.225.193.mysql: Flags [P.], seq 1:116, ack 94, win 111, options [nop,nop,TS val 2223682562 ecr 2879321384], length 115

0x0000: 4500 00a7 f43a 4000 4006 db26 0a0a 751a E....:@.@..&..u.

0x0010: 0a0a e1c1 c5ea 0cea dab5 4037 527a a5da ..........@7Rz..

0x0020: 8018 006f 6b89 0000 0101 080a 848a b402 ...ok...........

0x0030: ab9e f528 6f00 0001 85a2 0e00 0000 00c0 ...(o...........

0x0040: 2100 0000 0000 0000 0000 0000 0000 0000 !...............

0x0050: 0000 0000 0000 0000 7461 6e67 646f 755f ........tangdou_

0x0060: 7465 7374 0014 ca42 1c92 ae99 b645 52b2 test...B.....ER.

0x0070: e534 c9b7 f7ed f325 c41a 006d 7973 716c .4.....%...mysql

0x0080: 5f6e 6174 6976 655f 7061 7373 776f 7264 _native_password

0x0090: 0015 0c5f 636c 6965 6e74 5f6e 616d 6507 ..._client_name.

0x00a0: 6d79 7371 6c6e 64 mysqlnd

22:04:17.477384 IP 10.10.225.193.mysql > 10.10.117.26.50666: Flags [.], ack 116, win 28, options [nop,nop,TS val 2879321384 ecr 2223682562], length 0

0x0000: 4500 0034 5056 4000 3f06 807e 0a0a e1c1 E..4PV@.?..~....

0x0010: 0a0a 751a 0cea c5ea 527a a5da dab5 40aa ..u.....Rz....@.

0x0020: 8010 001c 4bd3 0000 0101 080a ab9e f528 ....K..........(

0x0030: 848a b402 ....

22:04:17.477520 IP 10.10.225.193.mysql > 10.10.117.26.50666: Flags [P.], seq 94:142, ack 116, win 28, options [nop,nop,TS val 2879321385 ecr 2223682562], length 48

0x0000: 4500 0064 5057 4000 3f06 804d 0a0a e1c1 E..dPW@.?..M....

0x0010: 0a0a 751a 0cea c5ea 527a a5da dab5 40aa ..u.....Rz....@.

0x0020: 8018 001c 9b39 0000 0101 080a ab9e f529 .....9.........)

0x0030: 848a b402 2c00 0002 fe6d 7973 716c 5f6e ....,....mysql_n

0x0040: 6174 6976 655f 7061 7373 776f 7264 0047 ative_password.G

0x0050: 5a71 4956 562f 2568 602b 5136 5940 713a ZqIVV/%h`+Q6Y@q:

0x0060: 6a2c 3800 j,8.

22:04:17.477591 IP 10.10.117.26.50666 > 10.10.225.193.mysql: Flags [P.], seq 116:140, ack 142, win 111, options [nop,nop,TS val 2223682563 ecr 2879321385], length 24

0x0000: 4500 004c f43b 4000 4006 db80 0a0a 751a E..L.;@.@.....u.

0x0010: 0a0a e1c1 c5ea 0cea dab5 40aa 527a a60a ..........@.Rz..

0x0020: 8018 006f 6b2e 0000 0101 080a 848a b403 ...ok...........

0x0030: ab9e f529 1400 0003 ca42 1c92 ae99 b645 ...).....B.....E

0x0040: 52b2 e534 c9b7 f7ed f325 c41a R..4.....%..

22:04:17.477813 IP 10.10.225.193.mysql > 10.10.117.26.50666: Flags [P.], seq 142:153, ack 140, win 28, options [nop,nop,TS val 2879321385 ecr 2223682563], length 11

0x0000: 4500 003f 5058 4000 3f06 8071 0a0a e1c1 E..?PX@.?..q....

0x0010: 0a0a 751a 0cea c5ea 527a a60a dab5 40c2 ..u.....Rz....@.

0x0020: 8018 001c 4470 0000 0101 080a ab9e f529 ....Dp.........)

0x0030: 848a b403 0700 0004 0000 0002 0000 00 ...............

其原因大概是mysql从某个版本后,开始支持插件式登陆。 而php5.5并不支持这个方式,无法按这个方式发送正确协议;为了容错, mysql再次向php5.5发送按照native password登陆的消息, 此后php5.5发送原生的登录包:

22:04:17.477591 IP 10.10.117.26.50666 > 10.10.225.193.mysql: Flags [P.], seq 116:140, ack 142, win 111, options [nop,nop,TS val 2223682563 ecr 2879321385], length 24

0x0000: 4500 004c f43b 4000 4006 db80 0a0a 751a E..L.;@.@.....u.

0x0010: 0a0a e1c1 c5ea 0cea dab5 40aa 527a a60a ..........@.Rz..

0x0020: 8018 006f 6b2e 0000 0101 080a 848a b403 ...ok...........

0x0030: ab9e f529 1400 0003 ca42 1c92 ae99 b645 ...).....B.....E

0x0040: 52b2 e534 c9b7 f7ed f325 c41a R..4.....%..

这个包内容很简单。除了4个字节的头之外,剩下20字节,就是根据密码经过加盐后生成的挑战鉴权数据。 这20个字节,其实在客户端发送的第一个鉴权包中就有:

dad05a5e1df1

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值