XIU2 / SNIProxy

🧷 自用的简单 SNIProxy(常用于网站负载均衡、基于域名(SNI)的端口转发等
GNU General Public License v3.0
351 stars 61 forks source link

谷歌浏览器最新版本 使用异常 #14

Closed Chanli520 closed 5 months ago

Chanli520 commented 5 months ago

问题描述

读取到的数据 [22 3 1 7 30 1 0 7 26 3 3 209 95 123 30 15 130 52 226 234 104 177 127 112 115 190 104 215 231 18 75 11 33 230 196 225 235 51 10 163 211 152 170 32 118 85 179 166 254 91 164 5 18 148 23 193 213 124 61 207 242 239 212 224 162 249 161 117 98 96 87 224 25 152 110 125 0 32 106 106 19 1 19 2 19 3 192 43 192 47 192 44 192 48 204 169 204 168 192 19 192 20 0 156 0 157 0 47 0 53 1 0 6 177 26 26 0 0 0 16 0 14 0 12 2 104 50 8 104 116 116 112 47 49 46 49 0 45 0 2 1 1 254 13 1 26 0 0 1 0 1 244 0 32 218 209 140 137 230 125 121 195 98 72 15 54 51 237 63 55 209 151 252 40 129 86 45 166 247 238 109 118 60 29 194 64 0 240 146 103 192 96 59 66 32 89 113 196 0 112 232 211 82 130 55 205 26 6 26 5 224 252 91 22 99 77 108 146 160 29 120 59 149 104 239 42 174 112 173 149 27 74 9 178 151 255 98 61 202 194 170 238 199 70 121 154 114 220 44 114 251 243 207 116 32 132 240 203 43 171 19 226 168 13 235 47 17 20 245 135 253 51 64 10 48 121 213 165 67 183 206 188 192 48 149 234 120 56 121 156 47 18 188 93 62 221 120 77 139 9 115 125 69 141 189 164 249 194 115 178 168 215 20 212 236 75 106 26 221 89 161 38 175 214 54 203 18 31 250 70 132 79 54 85 208 169 219 74 0 230 238 130 173 249 14 172 44 70 209 73 220 40 56 61 149 152 239 195 71 57 183 132 45 141 122 94 88 183 157 160 55 4 188 160 177 75 174 104 163 209 48 49 159 141 214 19 101 160 83 91 190 195 246 173 213 16 218 116 168 74 5 253 161 74 224 147 250 179 139 34 87 12 201 193 157 253 27 181 134 82 200 219 223 38 134 71 205 217 0 51 4 239 4 237 90 90 0 1 0 99 153 4 192 152 98 143 162 103 160 140 208 223 71 41 206 215 202 115 83 242 209 63 116 60 82 50 19 172 39 30 99 150 54 123 70 28 85 136 55 219 41 206 96 25 3 172 16 75 3 23 182 128 103 240 219 177 28 181 187 56 218 107 179 184 6 128 184 126 170 201 58 111 236 67 187 180 150 253 184 61 76 60 85 194 186 188 209 162 173 134 100 13 43 249 156 211 178 176 145 234 37 22 106 106 128 49 160 63 164 144 66 59 138 244 64 139 77 100 136 67 116 93 132 247 61 107 130 82 116 27 114 83 250 122 242 233 103 205 172 190 97 209 79 41 185 194 150 202 116 254 69 18 0 104 92 159 183 201 134 244 86 92 138 32 36 112 73 22 247 58 7 72 146 13 42 113 41 64 174 233 247 125 234 48 102 231 53 15 20 195 132 151 199 167 201 100 129 121 81 99 248 66 205 142 153 13 156 34 131 244 12 94 115 122 87 49 153 179 18 246 17 36 33 7 184 184 44 138 214 50 113 98 94 96 38 176 6 149 53 61 225 94 230 53 166 220 204 133 31 100 166 187 38 176 85 148 164 29 34 46 129 153 194 45 69 26 10 155 187 22 104 152 185 202 99 99 75 95 103 84 34 33 33 179 139 7 31 242 236 160 165 250 49 182 148 62 136 184 204 195 96 62 73 51 20 187 98 22 88 185 23 164 116 53 141 60 131 143 135 42 81 59 117 126 115 3 145 172 8 42 107 131 58 218 51 107 76 157 16 117 62 132 193 91 144 28 32 80 52 167 27 124 97 90 130 175 231 49 197 94 49 29 116 202 31 180 144 179 182 98 42 79 183 119 117 199 89 13 134 98 57 148 167 129 92 157 169 25 130 192 249 70 20 106 0 83 149 53 200 233 27 217 215 132 171 64 65 242 89 109 198 52 89 237 139 66 194 204 117 175 200 180 60 136 85 169 83 16 149 136 45 125 251 61 44 250 43 1 171 120 148 8 29 84 92 18 130 57 183 237 102 204 3 91 72 246 150 82 18 138 144 252 138 116 77 96 168 103 251 54 76 42 60 182 156 56 103 231 85 231 81 165 201 195 126 220 130 121 36 92 15 155 180 172 81 165 113 63 242 65 72 66 76 198 209 172 23 132 118 76 12 208 215 133 92 226 195 62 1 250 133 30 103 206 101 177 13 204 19 18 59 69 32 101 103 111 143 188 165 197 17 139 109 88 180 110 76 15 42 96 86 103 118 174 190 236 90 4 209 88 28 167 89 109 183 88 144 10 22 237 172 88 240 208 100 150 26 182 155 231 54 37 82 150] 2024/05/11 23:44:26.167 解析 Client Hello 消息失败 2024/05/11 23:44:26.167 未找到 SNI 域名, 忽略...

软件版本

v1.0

附加截图

No response

Chanli520 commented 5 months ago

extensionsLength := int(data[0])<<8 | int(data[1]) data = data[2:] if extensionsLength != len(data) { fmt.Println("错误8") return false } 调试显示这里报错 返回false

Chanli520 commented 5 months ago

好像是浏览器更新默认使用了TLS 1.3 , https://borncity.com/win/2024/05/01/chrome-124-breaks-tls-handshake/

XIU2 commented 5 months ago

并不是单纯的因为 TLS 1.3,因为这货都普及多少年了,早就大范围使用了,有问题也不会现在才出现。

根据这篇文章来看是 Chrome 最新版本默认启用了一项 TLS 1.3 Hybridized Kyber Support,而这个功能对 TLS-X25519Kyber768 密钥封装进行了修改,导致出现该问题。 这篇文章里也提到了:这会中断服务器的 TLS 握手,然后服务器不再知道如何处理客户端 hello 消息中的附加数据。 这和你排查的结果相符。

至于本项目是否要兼容这个 TLS 1.3 变种协议,这个我不做保证(毕竟只是我自用的,而不是那种大商业项目)。

XIU2 commented 2 months ago

忘记跟你说了,4 月 底那那次更新 (v1.0.1) 解决了该问题,其实就是上面说的那个原因,导致 TLS 握手消息变大了,而默认的缓冲区不够导致接收到一半就断了,解决方法就是把缓冲区翻倍。。。 这也是有个人提了 PR 后我才知道的。。。