It's like https://getclef.com/ or SQRL or Mozilla Persona, but not exactly a manager.
By being a protocol it can be _legitimately_ deterministic (you know why deterministic managers aren't great, Tony Arcieri wrote a good post)
By being deterministic it can be absolutely free and scalable
By being scalable and free I hope it has a chance for being popular (no vendor lock-in).
No real innovation, definitely, but in little details it's a good balance of existing things.
Some questions/comments:
1. The github would be clearer (to me, anyway) if the protocol were written out in prose rather than in code. That may account for the following question:
2. It's not clear to me how the origin of the auth request is validated on the auth GET. I.e. how does the "relying party" (so to speak) validate that the SecureLogin client is following an auth link that wasn't MITM'ed by a phishing page?
3. I actually think the URI-scheme/browser-integration is a clever idea, and the UX flow seems fairly nice to me.
4. I think you're sort of kidding yourself if you say that lost-password recovery is not a big deal for big providers like Google and Facebook. For smaller providers, falling back to email verification is fine--or maybe doing nothing. Big providers offer all kinds of verification--email, SMS, domain-ownership, credit card--and a human customer support path. That doesn't change with TOTP or U2F, and wouldn't change here. Not a dealbreaker, really, but it's worth noting this weakness (lost-auth recovery) is probably here for the foreseeable future.
5. Having to enter your master password sometimes is a UX feature, not a bug--it teaches users to remember the master password. Just something to keep in mind on the client apps.
2. I'm not sure if that's what you meant but I just realized pretty bad bug in current callback=ping flow. When malicions page opens my.app for me and second later opens securelogin://#state=THEIRSTATE... so my sltoken will be matched with their state and they will log into my account. That requires good timing so not super severe but definitely will be fixed: if someone opens the app twice in a raw it will notify the user. Thanks
3. There's pretty much no alternatives working cross platform.
4. Which paragraph are you refering too? When I try to reset my Gmail password it boils down to: "dude you forgot your password, no backup email... we cant help here".
Checking now, I cannot setup a gmail account without a phone number or backup email. I can also reset my password as long as I have access to my phone which is currently logged in.
> In the end of any authentication scheme there will be a password that you just cannot forget. In SecureLogin we removed unnecessary levels of "backups" and "recovery codes", our scheme boils down to one master password, not to master password and backup file/paper/SIM card/email account etc.
I don't think a backup is "unnecessary". It lowers the chance of being completely locked out.
What happens if I forget my master password? Does it mean I can never log into the sights using the same account ever again?
> Does it mean I can never log into the sights using the same account ever again?
It's up to the websites, they could use your email for reset + lots of personal info you have about account activity.
Have Google changed something? I had to go through account recovery a while back on a gmail account (with no backup email/number set).
They asked a bunch of questions to try and prove whether I was actually familiar with the account (when did you create the account, provide an address you've emailed more than once in the last month etc). It was a PITA, but I eventually regained access
4: I don't think that's true. Gmail has a heuristic recovery based on knowledge tests. It's _easier_ if you have a backup email or SMS, but not required in all cases.
As an aside, another downside of this approach is that it requires server-side state. Not a huge deal in most cases, but it can present a scalability limit versus cookie-only (signature-based) auth schemes. If the client were able to relay cookies or redirects back to the browser--which seems like it should be possible by simply opening a redirect in the https:// scheme--you could avoid that, no?
4. Have you tried? Because they seem to ask too hard questions like exact date your account was created.
> downside of this approach is that it requires server-side state
Using key-value for delivering signed token to first request? there's callback=direct that opens the link instead of pinging it, but it's a huge pain to figure out which browser you used if not the default one.
4. Yeah. It's a pain in the ass, but they do offer lost-password fallback. Anyway, I wasn't trying to belabor the point; just noting that big sites will probably always offer some lost-password recovery.
> there's callback=direct that opens the link instead of pinging it, but it's a huge pain to figure out which browser you used if not the default one.
Where can I read docs on the different behavior between callback=ping and callback=direct? I know I could read the source code, but I do enough of that in the office. ;)