有没有办法在 AspNetUser Table 中反序列化 ProtectedTicket?
Is there a way to Deserialize ProtectedTicket in AspNetUser Table?
据我所知(如果我错了请纠正我)'access_token' 等同于 AspNetUser table 中的 'protected ticket' 字段。它只是散列。
我打算做的是反序列化受保护的票证以获得 access_token 值。
我正在尝试支持 SSO 场景,其中用户可以使用相同的访问令牌访问多个应用程序。
不幸的是,如果所使用的散列函数是加密散列,这在环境上是不可能的(或者应该是......)。加密哈希函数被设计为非常昂贵(理想情况下是不可能的)来逆转,因此您拥有的最有效的方法是尝试暴力破解哈希,即运行 通过哈希函数输入,直到你得到一个产生你想要的输出的函数。即便如此,也不知道要花多长时间才能找到它。强烈建议不要编写任何依赖于常规暴力破解加密哈希的内容。
当然,可能的输入非常小(即最多 16 位左右),或者所使用的函数不是加密哈希函数(即类似于 base64 编码或 rot-13) .在这种情况下,您可能有一种方法可以有效地反转 "hash"。
但是,我强烈怀疑情况并非如此。在这方面,我认为你只是运气不好,必须找到另一种方法来获得你想要的功能。
我想我有点晚了,但应该可以。 ProtectedTicket 的数据将由 Microsoft.Owin.Security.ISecureDataFormat.Protect 保护。这不是单向哈希。所以它是可以逆转的。您可以在 Katana 项目(Microsoft 的 Owin 实现)中的 Github 上查找:
如您所见,该接口还提供了一个方法Unprotect。没有测试过,但你可以试一试。
您可以在相同的应用程序上使用相同的令牌,只要 jwt 令牌在每个应用程序上使用相同的凭据(受众和机密)进行签名即可。这允许每个应用程序验证令牌是否有效。然而,这意味着每个应用程序都必须知道后端的受众 ID 和秘密
据我所知(如果我错了请纠正我)'access_token' 等同于 AspNetUser table 中的 'protected ticket' 字段。它只是散列。
我打算做的是反序列化受保护的票证以获得 access_token 值。
我正在尝试支持 SSO 场景,其中用户可以使用相同的访问令牌访问多个应用程序。
不幸的是,如果所使用的散列函数是加密散列,这在环境上是不可能的(或者应该是......)。加密哈希函数被设计为非常昂贵(理想情况下是不可能的)来逆转,因此您拥有的最有效的方法是尝试暴力破解哈希,即运行 通过哈希函数输入,直到你得到一个产生你想要的输出的函数。即便如此,也不知道要花多长时间才能找到它。强烈建议不要编写任何依赖于常规暴力破解加密哈希的内容。
当然,可能的输入非常小(即最多 16 位左右),或者所使用的函数不是加密哈希函数(即类似于 base64 编码或 rot-13) .在这种情况下,您可能有一种方法可以有效地反转 "hash"。
但是,我强烈怀疑情况并非如此。在这方面,我认为你只是运气不好,必须找到另一种方法来获得你想要的功能。
我想我有点晚了,但应该可以。 ProtectedTicket 的数据将由 Microsoft.Owin.Security.ISecureDataFormat.Protect 保护。这不是单向哈希。所以它是可以逆转的。您可以在 Katana 项目(Microsoft 的 Owin 实现)中的 Github 上查找:
如您所见,该接口还提供了一个方法Unprotect。没有测试过,但你可以试一试。
您可以在相同的应用程序上使用相同的令牌,只要 jwt 令牌在每个应用程序上使用相同的凭据(受众和机密)进行签名即可。这允许每个应用程序验证令牌是否有效。然而,这意味着每个应用程序都必须知道后端的受众 ID 和秘密