Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Peer Review Request]Restls: A Perfect Impersonation of TLS Handshake #66

Open
3andne opened this issue Feb 5, 2023 · 3 comments
Open

Comments

@3andne
Copy link

3andne commented Feb 5, 2023

@ihciah
Hi there,
I hope you are having a good day.
We're currently working on a brand new protocol named Restls which can be used as an extension to Shadowsocks. It shares a similar goal with ShadowTLS to circumvent GFW whitelisting but tries to fix ShadowTLS' fundamental flaw of not being able to provide server authentication.
If that sounds good, you might want to take a look at the draft:
Restls: A Perfect Impersonation of TLS Handshake
You can find a proof-of-concept implementation in the same repo.
----------------------
你们好,
希望你们一切顺利。
我们正在设计一个新的协议,名为Restls,它可以作为Shadowsocks的插件使用。它的目标与ShadowTLS类似——绕过GFW的白名单机制,但它试图解决ShadowTLS在协议设计中未能实现的服务端认证,从而避免被准确封杀。
如果你觉得这听起来还行,你或许想看一看这个协议的设计稿:
Restls: 对TLS握手的完美伪装
这个仓库同样包含了一个实现以及其使用方式。

@ihciah
Copy link
Owner

ihciah commented Feb 5, 2023

看起来很不错!它确实可以解决 ShadowTLS 存在的流量劫持风险。三次传递认证信息,并分别解决不同阶段的问题,这个idea非常棒。
我最近在想设计一套新的 v3 协议,期望它能更便于实现,并在尽量弱感知 TLS 协议细节的基础上解决上述问题。但是目前没有想到较为通用的解决客户端对服务端鉴定的方式,可能你的方式是更好的解。
谢谢你的分享!

@3andne
Copy link
Author

3andne commented Feb 5, 2023

感谢@ihciah 的评价,Restls的设计深深地受到了ShadowTLS的启发,1)把握手包转发出去从而高质量地解决证书来源问题;2)本身不关注后续流量的加密,直接复用现成方案;3)我们也直接受益于您和社区中的讨论。 🫡🫡🫡

@ihciah
Copy link
Owner

ihciah commented Feb 11, 2023

参考了你的握手相关的设计,shadow-tls 发布了 v3 的协议版本,这个版本应该能解决所有已知问题。

https://github.com/ihciah/shadow-tls/blob/master/docs/protocol-v3-zh.md

当前也给出了一个实现,可能后续需要限制一下cipher等来满足安全性需要。

谢谢

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

No branches or pull requests

2 participants