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

Deprecation proposal #54

Closed
foxx opened this issue Dec 3, 2015 · 4 comments
Closed

Deprecation proposal #54

foxx opened this issue Dec 3, 2015 · 4 comments

Comments

@foxx
Copy link

foxx commented Dec 3, 2015

Having read through the docs, it would seem that JWT is now a better solution. It covers more use cases, has more language implementations and is also an RFC standard. Many of the languages, in particular Python, have much more active repos and commit history.

Is there anything in particular that itsdangerous does, which JWT does not cover? If not, I would like to propose deprecating this library in favour of JWT.

@mitsuhiko
Copy link
Contributor

I find JWT tricky to use securely which is why I avoid it like the plague whenever I can for my own stuff. You cannot avoid JWT much for external interoperability obviously but I will not deprecate itsdangerous as a result :)

@foxx
Copy link
Author

foxx commented Dec 3, 2015

Thanks for the quick reply. Just out of curiosity, which aspect of JWT security do you find tricky to use? There were several implementation bugs a while back, e.g. none algo being allowed by default, but those have all been fixed now.

@mitsuhiko
Copy link
Contributor

none is just the obvious example but the entire algorithm negotation is not thought through well. You would need to match the algorithm exactly against what you issued with a sliding window for potential upgrades and not a single JWT library supports this. none was just obviously broken because it disable the signature entirely. But you can still downgrade to signature to the shittiest version someone accepts. This is particularly problematic if a public part of one protocol becomes the private part of another.

For instance the server thinks it will get an RSA token but you actually send an HMAC token then the public part of the RSA key will be used for the secret of the HMAC token. But this is just an example, there are many more cases where libraries completely fail currently.

JWT is just too complex of a system that people would write good implementations for.

@foxx
Copy link
Author

foxx commented Dec 4, 2015

Interesting insights, thank you for sharing!

This was referenced Apr 2, 2019
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 9, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants