Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 节点TLS票证重新建立连接_Node.js_Session_Ssl - Fatal编程技术网

Node.js 节点TLS票证重新建立连接

Node.js 节点TLS票证重新建立连接,node.js,session,ssl,Node.js,Session,Ssl,我正在用nodejs做实验。我正在尝试使用TLS票证恢复TLS会话。因此,在成功连接后,我将让客户端保存TLS票据。关闭后,我希望它使用相同的TLS票证重新建立TLS连接 我找到了node tls命令tlsSocket.getTLSTicket(),但是我不知道如何使用它来重新建立连接,因为它“只对调试有用” 我想要的是能够从客户端获取TLSTicket,并根据nodejs服务器中的TLSTicketKey手动验证它 谢谢在花了我本不该有的时间之后,我发现: 似乎没有任何API或公开的JavaS

我正在用nodejs做实验。我正在尝试使用TLS票证恢复TLS会话。因此,在成功连接后,我将让客户端保存TLS票据。关闭后,我希望它使用相同的TLS票证重新建立TLS连接

我找到了node tls命令
tlsSocket.getTLSTicket()
,但是我不知道如何使用它来重新建立连接,因为它“只对调试有用”

我想要的是能够从客户端获取TLSTicket,并根据nodejs服务器中的TLSTicketKey手动验证它


谢谢

在花了我本不该有的时间之后,我发现:

  • 似乎没有任何API或公开的JavaScript函数允许您验证TLSTickets
  • 通过会话票证重用会话是开箱即用的,该实现对node.js是完全透明的

    但是,正如您将在链接中看到的,可以使用会话存储手动处理会话(这显然违背了TLS票证的目的)

  • 节点使用OpenSSL提供的以下函数进行票证处理。 SSL\u CTX\u set\u tlsext\u票证\u密钥\u cb-为会话票证处理设置回调

  • 详情如下:

    从这里开始:

  • 当节点收到有效的TLS票证时,它不会发出
    resumeSession
    。 下面的GitHub问题描述了为什么,并且是对Node的TLS票证实现细节的简单参考

  • 谢谢,在我接受之前,我要先检查一下自己。我仍然希望它可能会通过一些js黑客攻击暴露出来。
    getTicketKeys
    setTicketKeys
    可能是您正在寻找的函数。然而,我似乎找不到一个叫他们的地方。从设置密钥的openssl文档中,
    当TLS hello消息中显示会话票证扩展时,将为每个客户端发起的TLS会话调用回调函数cb。此函数负责创建或检索加密参数并维护其状态。
    但是,我找不到它是如何完成的,也找不到它的位置。请告诉我您找到了什么,以及您最终如何实现它。也许,如果你能联系Fedor Indutny,你会得到最详细的解释。我怀疑回调是在SecureContext::Init中调用的。因此,我希望在构建一个安全上下文并检查状态之后是可能的。好,所以OpenSSL是一个怪物C++代码库,很难找到发生的地方。现在我想知道是否还有另一个javascript/node代码库,它只具有一个函数,该函数接受TLSTicket和TLSKey,如果有效则返回True,如果无效则返回False,并返回会话键。我在看forge:。