Commit Graph

137 Commits

Author SHA1 Message Date
luwenpeng
05c7528bfd TSG-1719 功能端增加 dynamic bypass 选项 trusted_root_cert_is_not_installed_on_client && TSG-1687 pinning 功能优化 2020-05-25 16:35:36 +08:00
luwenpeng
f4b2f1a484 TSG-1518 改进TFE查询Certstore过程的异常处理机制 2020-05-18 20:32:38 +08:00
luwenpeng
7930500cc1 向 tfe 的 FieldStat 中输出可信证书的数量 2020-01-08 14:16:23 +08:00
luwenpeng
daa1899f91 #177 在用户访问的过程中,缓存未见到过、可信的中间证书到 kafka(TODO kafka 数据录入格式待沟通,待联调测试) 2019-12-24 13:46:55 +08:00
luqiuwen
f1fd1d0ad3 #167 增加已拦截连接数、字节数、PASSTHROUGH连接数统计并调整FieldStat状态文件的输出位置。 2019-09-16 16:47:34 +08:00
fengweihao
4b0235d199 修改key_keeper请求为post
修改key_keeper请求连接为长连接
修改HTTP2流id设置时机
2019-09-16 14:01:14 +08:00
luwenpeng
ff19c00dc1 Merge branch 'develop-tfe4a' of https://git.mesalab.cn/tango/tfe into develop-tfe4a 2019-09-05 18:02:41 +08:00
luwenpeng
6b4a45c005 root_cert_not_installed_is_not_pinning 日志中输出 c/s 的地址,方便调试 2019-09-05 18:02:10 +08:00
luqiuwen
611d978b91 修正当进程句柄限制不足时,存在的随机关闭FD的问题并调整SSL关闭时的fd处理位置。
* 原实现在接收fd时,没有考虑可能只接收1个fd的情况。导致程序在接收1个fd时按2个fd处理,越界访问随机关闭fd。
* 现修正,接收2个一下fd时,关闭接收的fd。
* 同时调整SSL连接的FD关闭位置,改为在conn_private销毁时统一关闭,不在ssl部分关闭。
2019-09-05 16:50:18 +08:00
luqiuwen
c9d814e17b 修正部分TCP处理流程中FD所有权转移有误,导致的fd潜在的double-free。 2019-09-05 16:50:18 +08:00
luwenpeng
cd67f0edb7 Merge branch 'feature-root-cert-not-installed-is-not-pinning' into develop-tfe4a
增加 not install root cert not pinning 功能
当开启 dynamic bypass pinning 时,未安装根证书的客户端会被 bypass
2019-09-04 13:46:51 +08:00
luwenpeng
f41c68e8a8 service_cache_succ_as_app_not_pinning_cnt 默认设置为 0 2019-09-04 13:44:09 +08:00
luwenpeng
32ae3e678d root_cert_not_installed_is_not_pinning 默认开启
service_cache_succ_as_app_not_pinning_cnt 默认设置为 1
2019-09-04 10:16:05 +08:00
luwenpeng
8a2a866688 修改 is_app_not_pinning 的判定条件:在 ssl up stream free 之前判定 2019-09-03 19:00:54 +08:00
luwenpeng
3faede0663 修改日志 2019-09-03 11:16:39 +08:00
luwenpeng
dc726801f0 删除无用的代码 2019-09-03 11:16:39 +08:00
luwenpeng
fe78b7e41f 增加异常处理,修复 upstream_ossl_init() 造成的 core dump 2019-09-03 11:16:39 +08:00
luwenpeng
f92b7098da 修改 is_app_not_pinning 的判定条件:原来在 client connected 之后判定,现在在 ssl stream free 之前判定 2019-09-03 11:07:09 +08:00
luwenpeng
f9420b16bb 增加从配置文件读取 service_cache_succ_as_app_not_pinning_cnt 配置项的功能 2019-09-03 11:03:03 +08:00
zhengchao
63bcc591a7 增加app not pinning的统计信息,修复判空。 2019-09-03 11:03:03 +08:00
zhengchao
30fd8889a8 区分未安装证书的客户端和pinning的客户端。若开启tfe.conf中[SSL]root_cert_not_installed_is_not_pinning=1,则未安装证书的客户端不再视为pinning。 2019-09-03 11:03:03 +08:00
luwenpeng
06fe5652c5 设置 UNUSED,修复编译警告 2019-09-02 11:39:19 +08:00
崔一鸣
77e407f4a0 继续修改shutdown相关逻辑 2019-07-19 20:52:11 +08:00
崔一鸣
42c1667f1f 继续修改ssl shutdown相关逻辑 2019-07-19 20:37:35 +08:00
崔一鸣
bd771f22f9 修改ssl shutdown相关逻辑 2019-07-19 20:10:23 +08:00
崔一鸣
0a2bf7b711 修改shutdown引起的内存泄漏 2019-07-19 17:38:58 +08:00
崔一鸣
1b13ef037c 删掉SSL_ERROR_ZERO_RETURN时的retry逻辑 2019-07-19 13:01:45 +08:00
崔一鸣
65000c889e 增加event_del 2019-07-18 19:56:50 +08:00
崔一鸣
455c8c1a93 删掉多余的|| 2019-06-28 12:19:32 +06:00
崔一鸣
53f537397f 修改pinning判断条件 2019-06-28 12:05:47 +06:00
zhengchao
811435ca92 Merge branch 'develop-tfe4a' of git.mesalab.cn:tango/tfe into develop-tfe4a 2019-06-21 17:18:33 +08:00
zhengchao
3187b45c6a 删除session ticket中的无用日志。 2019-06-21 17:18:20 +08:00
zhengchao
8c33bd3a58 处理无sni的ssl。 2019-06-21 16:24:03 +08:00
zhengchao
3b902001c1 ssl policy兼容“sslv3.0”的定义方式 2019-06-17 20:55:20 +08:00
zhengchao
6e6fdfd010 增加trusted_cert_load_local开关,控制是否加载本地的pem bundle文件,默认加载。 2019-06-14 23:43:03 +08:00
zhengchao
b579c718b3 为了识别第二种pinning:在tcp_stream的event callback中,若接收字节数为0,调用ssl_stream_process_zero_eof。 2019-06-14 22:49:41 +08:00
zhengchao
b2eb88a7ad ssl policy增加调试输出。 2019-06-14 18:58:03 +08:00
zhengchao
a396bec434 未完成:在ssl_stream_free中检测pinning。 2019-06-11 15:26:16 +08:00
zhengchao
f18c5efdb1 1、使用服务器IP+端口+sni生成服务端状态 #141,使用客户端IP+Client hello特征生成客户端状态。2、pinning detection的相关阈值可从tfe.conf中配置。 2019-06-11 15:26:16 +08:00
zhengchao
d3afda0d4c 为了减少pinning, protocol error误判带来的影响,将service cache的淘汰方式改为FIFO,独立service_cache_expire_seconds参数,默认5分钟。 2019-06-05 20:43:45 +08:00
zhengchao
ace31ae24a tfe.conf中系统参数的section改为system,兼容kniv1测试完毕。 2019-06-02 18:17:53 +08:00
zhengchao
bc41051da2 ssl stream和ssl policy对接tfe_cmsg_xx。 2019-06-02 16:30:59 +08:00
luqiuwen
77aa3063f7 使用cmsg公共库解析cmsg信息,对业务层提供获取cmsg句柄的接口 2019-06-02 16:30:59 +08:00
luqiuwen
3dfe680a76 修正当ssl在以peek方式解析clienthello并返回not_enough_buff时,没有传入ev_base导致的连接建立失败的问题。 2019-06-02 16:30:59 +08:00
zhengchao
5cdad62fc7 未开启session cache时,关闭upstream ssl的cahce,避免buffer event 报告999:invalid session id:20:SSL routines:369:tls_process_server_hello。 2019-05-30 12:34:42 +08:00
zhengchao
ea1f876eb7 拦截策略支持allow_http2的开关;恢复cmakelist漏掉的HTTP2的编译开关。 2019-05-27 14:17:52 +08:00
zhengchao
7431a0e50a 修改ssl_chello_parse相关函数,处理TLS Grease导致的客户端标识不准确,详见 https://security.stackexchange.com/questions/176951/google-chrome-weird-random-cipher-suite 2019-05-25 15:54:28 +08:00
zhengchao
c85b200f69 手工合并李杰stek-roation分支,支持session ticket rotation,详见 #123 2019-05-24 18:55:33 +08:00
zhengchao
f66658117a 支持通过拦截策略指定ssl最大和最小版本号。 2019-05-24 18:55:32 +08:00
zhengchao
6b197e3347 证书校验选项及校验失败动作自测通过。 2019-05-24 18:55:32 +08:00