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

Use time-based authentication codes #16

Merged
merged 18 commits into from
Mar 4, 2014
Merged

Conversation

mattmueller
Copy link
Contributor

This changeset reworks the manner in which secondary authentication codes are generated and verified. Much of the work is based off of this article.

This has the following benefits:

  • Gem is now much closer to compliance with RFC 6238 with the ability to be fully compliant based on how it is implemented.
  • Google Authenticator is now supported as a mechanism by which one-time codes can be retrieved.
  • Some level of testing is introduced.

This is definitely a breaking change so would require a major version bump - would love to hear any thoughts and welcome any additional changes to this PR.

@Houdini
Copy link
Owner

Houdini commented Feb 28, 2014

Thanks, I didn't notice this commit 8 days ago, I'll check it in close 2 days

@mattmueller
Copy link
Contributor Author

Sounds great - thanks!

@Houdini
Copy link
Owner

Houdini commented Mar 4, 2014

Ok,
I really like your commits in the way they modify library.
Special thanks for specs :)
However I also don't like

  • User should added both has_one_time_password and devise :two_factor_authenticatable
  • Some question are still open. How server will share secret with user? I'm absolutely sure that gem have to answer to this question. One solution: when user has no otp_secret_key, then gem renders intermediate page with form where user can submit secret or accept server's one.
  • What if user has no top-class smartphone and he can't use google authenticator. I want to say that sms is still simple and good way for two_factor_authentication without time limits.

@Houdini
Copy link
Owner

Houdini commented Mar 4, 2014

Your commit gave me power to return to gem development and I'd like to complete it.
Could you give me an advice about sharing secret between user and server? What's the best way?

Houdini added a commit that referenced this pull request Mar 4, 2014
Use time-based authentication codes
@Houdini Houdini merged commit 4d5e289 into Houdini:master Mar 4, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants