Skip to content

Comments

TLS client: Simplify cert's verification code#5656

Merged
RPRX merged 3 commits intomainfrom
cert-pin
Feb 6, 2026
Merged

TLS client: Simplify cert's verification code#5656
RPRX merged 3 commits intomainfrom
cert-pin

Conversation

@Fangliding
Copy link
Member

之前有点弄错了 第一个证书必为leaf 稍微简化一下代码

@RPRX
Copy link
Member

RPRX commented Feb 5, 2026

Ready 了吗

@Fangliding
Copy link
Member Author

Ready 了吗

应该没啥问题 不过这个是break leafCertHash 被我改成 certHash 了 现在输出整个文件的指纹

@RPRX
Copy link
Member

RPRX commented Feb 5, 2026

整个证书链的?

@Fangliding
Copy link
Member Author

跟tls ping一样一个个分开展示

@RPRX
Copy link
Member

RPRX commented Feb 5, 2026

还没懂旧代码为什么不 work 以及哪里 break 了

@Fangliding
Copy link
Member Author

还没懂旧代码为什么不 work 以及哪里 break 了

因为部分自签证书生成的畸形证书尽管直接用于tls但是IsCA是true 以前会把它强制识别成CA 现在不会了 按顺序判断是否是CA 就可以判断了

break的地方是命令改名了 上面提了

@RPRX
Copy link
Member

RPRX commented Feb 5, 2026

简单点,名字改成 hash 吧

@RPRX RPRX changed the title Simplify cert verify code TLS client: Simplify cert's verification code Feb 6, 2026
@RPRX RPRX merged commit 4632984 into main Feb 6, 2026
78 checks passed
@RPRX
Copy link
Member

RPRX commented Feb 9, 2026

这项修改可能导致的一个攻击向量是,假如用户 pin 了 CA 证书 sha256,若 MITM 只发这个 CA 证书,就会导致证书验证直接通过,但是由于中间人没有该 CA 证书中公钥所对应的私钥,无法签发出有效的 TLS finished 消息,所以该攻击并不成立

除非中间人有私钥,一种极端的场景是恶意 CA 不想触发证书透明度查询但又想 MITM,但是这种行为似乎更容易被发现

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants