Commit Graph

105 Commits

Author SHA1 Message Date
luwenpeng
cb15d3340f bugfix: TSG-8003 预防证书链投毒
* 中间证书缓存openssl rebuild trust chain中可惜的中间证书, 不缓存服务端发送证书链中的证书
2021-11-03 16:24:09 +03:00
luwenpeng
f764a4bae1 优化 watchdog tfe worker thread 的实现逻辑 2021-08-20 15:36:58 +08:00
luwenpeng
1fe60d2428 废除 tfe-kmod, tfe 直接与 kni 通信
* 新增 enable_kni_v3=1 配置项
	* develop_build_release 分支关闭 ASAN 检测
	* 修正根据 CMSG 恢复 TCP 链接时没有正确填写 TCP 时间戳启用选项的问题
2021-04-21 13:26:07 +08:00
luwenpeng
1c37ae746d TSG-5978 TFE 与 KNI 保活的 watchdog 线程增加对 tfe worker 线程健康状态检测的功能 2021-04-21 11:51:30 +08:00
luwenpeng
f99cfe9c1c TSG-5246 拦截状态下,使用未装根证书的 firefox 访问 twitter.com 时,功能端未检测出 Pinning 特征 2021-01-11 23:06:19 +06:00
luwenpeng
933f9e3b02 TSG-4965 功能端通过界面下发的 JA3 Fingerprint 识别 Pinning APP 和未装根证书的 APP 2021-01-06 17:28:53 +06:00
luwenpeng
fa3e050bb7 TSG-3445 修正 TFE 从毕方加载可信证书时,SSL 证书校验不可信的 bug 2020-09-28 18:05:59 +08:00
luwenpeng
9d15d655ed TSG-2967 TFE 使用 JA3 优化 SSL pinning 2020-09-22 19:48:28 +08:00
luwenpeng
8c439fdbea TSG-2994 将 TFE 支持的配置项补充到 tfe.conf 中 2020-09-04 13:52:45 +08:00
luwenpeng
ddb1ccba12 TSG-2612 tfe 执行 TCP Options 2020-08-21 11:58:03 +08:00
luwenpeng
f1b2d63816 增加 load_balance 配置项:TFE 支持 round_robin/least_conn 负载均衡算法 2020-08-21 09:45:30 +08:00
luwenpeng
c82429c9d9 TFE 支持 accept/worker 线程绑定 cpu 2020-08-21 09:45:30 +08:00
luwenpeng
b4683daf32 TSG-1531 调用 Maat_clean_status 释放资源;删除重复的代码文件 2020-07-06 16:16:21 +08:00
luwenpeng
cd26e3e6c1 TSG-1531 TFE 新增 DOH 插件
1.DOH 协议解析
2.DOH 协议还原
3.DOH POST请求 early response
4.DOH 策略扫描
5.tfe plugin 支持多个 bussiness 插件调用
6.Maat_feather 的创建从 pangu 剥离(涉及pangu/doh/ssl-policy)
7.增加 kafka 日志
8.增加测试用例
2020-07-06 16:16:21 +08:00
luwenpeng
9a58460460 TSG-700 中间证书缓存条件,与证书校验开关无关,tfe按照x509/openssl的标准校验证书 2020-01-17 14:15:00 +08:00
luwenpeng
7930500cc1 向 tfe 的 FieldStat 中输出可信证书的数量 2020-01-08 14:16:23 +08:00
luwenpeng
67c27a2fb5 TSG-148 修改录入 kafka 数据格式,修正代码格式 2019-12-24 13:46:55 +08:00
luwenpeng
daa1899f91 #177 在用户访问的过程中,缓存未见到过、可信的中间证书到 kafka(TODO kafka 数据录入格式待沟通,待联调测试) 2019-12-24 13:46:55 +08:00
luwenpeng
3a68352964 #177 在用户访问的过程中,获取未见到过、可信的中间证书 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
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
f9420b16bb 增加从配置文件读取 service_cache_succ_as_app_not_pinning_cnt 配置项的功能 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
luqiuwen
dbe9fba033 #159 集成Google Breakpad,用于生成minidump便于后期集中收集崩溃。 2019-08-20 18:41:44 +08:00
luqiuwen
3015d4df86 增加逐流的上、下游收发字节统计并对业务插件提供查询接口。 2019-08-13 19:50:51 +08:00
崔一鸣
fc2791ee90 调整keykeeper证书过期时间 2019-07-26 10:13:09 +08:00
luqiuwen
10ea3ba54e 增加对KNI的Watchdog实现双向保活。 2019-06-18 18:21:00 +08:00
zhengchao
b579c718b3 为了识别第二种pinning:在tcp_stream的event callback中,若接收字节数为0,调用ssl_stream_process_zero_eof。 2019-06-14 22:49:41 +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
luqiuwen
306dcc6ce0 增加在流结束时调用cmsg发送接口的实现 2019-06-02 17:52:48 +08:00
luqiuwen
57f5a4d906 增加sender_scm的初始化调用 2019-06-02 16:30:59 +08:00
崔一鸣
e4f490fcd3 添加sender_scm开关 2019-06-02 16:30:59 +08:00
崔一鸣
cc126a73a1 增加和kni通信接口 2019-06-02 16:30:59 +08:00
luqiuwen
28becac88d 移植KNIv1版本的acceptor到4a分支,兼容原kni的实现。 2019-06-02 16:30:59 +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
1a45ea858c 变更kni系列名称到scm 2019-06-02 16:30:59 +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
崔一鸣
72d170aec2 添加ssl_cipher_suites_convert函数 2019-05-24 23:15:58 +08:00
崔一鸣
75208aad0f 修改chello_parse函数,支持解析supported_versions, supported_groups,signature_algorithms,修改cipher_suites解析结果为原始报文 2019-05-24 20:25:35 +08:00
zhengchao
c85b200f69 手工合并李杰stek-roation分支,支持session ticket rotation,详见 #123 2019-05-24 18:55:33 +08:00
zhengchao
4cd42b9f95 1. 客户端报SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN错误时,不作为maybe pinning; 2. ssl policy中增加protocol_errors的bypass开关。 2019-05-24 18:55:31 +08:00
zhengchao
1f73b4832d 在ssl policy中处理keyring。 2019-05-24 18:55:31 +08:00
zhengchao
e4291c0fda 1. 暴露ssl_stream.h给业务层;2. 将ssl policy功能放到业务层插件目录。 2019-05-24 18:55:30 +08:00
zhengchao
7cbd432a25 业务层拦截策略(ssl policy)对接ssl stream。 2019-05-24 18:52:34 +08:00
zhengchao
61bc647d1f 编写连接业务层的代码。 2019-05-24 18:52:33 +08:00
zhengchao
dda60c674c up session cache校验ssl version,增加ssl状态读写的接口。 2019-05-24 18:52:32 +08:00