带有Golang带外预共享密钥PSK的TLS

问题描述

我正在寻找一种使用Go中的越界 PSK建立TLS会话的方法。我同时控制服务器和客户端。

在读取Golang TLS implementation时,似乎该库仅在会话恢复中支持PSK,而会话恢复是从先前的会话中获取PSK的。但是,在我的场景中,在服务器和客户端之间建立带外PSK,根据RFC 8446“允许” AFAIK(“可以在带外建立TLS PSK”。)有人知道吗? Go是否已经支持它,或者是否有其他TLS库支持

解决方法

标准库当前不支持

TLS-PSK(或RSA / DHE变体)(Go 1.15)。

自2013年以来,an issue已开放,但没有动静。该问题中的多条评论宣传了crypto/tls的分支,并声称支持外部预共享密钥;使用风险自负。