Twitter Digits
digits.com
digits.com
1. Attacker knows victim's phone number and attempts login
2. Attacker intercepts SMS as it is sent to victim
3. Attacker completes their login process with the SMS code
However, if this catches on, SMS sniffing over the air is going to really pick up! :p SMS messages are often carried over GSM control channels, generally unencrypted over the air.
Even when they are encrypted, it's only A5/1 (already broken).
For example, the SMS contains a short token. The login form has a (non-visible) 128-bit random guid. When the form is submitted, both tokens are sent to the server and the server verifies that they are both correct.
It doesn't matter how secure the SMS is, it's only one part of the secret. If it's intercepted, the attacker won't be able to guess the guid. Alternatively, if someone is at a login form and trying to guess the short code, just limit each guid to a small number of attempts before expiring.
I also will not accept, that someone else (hint hint) sees the comms flow (metadata) from Twitter to my cell phone, let alone the content in there. SMS is leaking like hell. I have more trust in HTTPS than in SMS.
> A successful Digits account creation will return a stable userID to attach or match with your user record, and an oAuth token for the device. A verified phone number is also returned for convenience, but the user’s number may change at any time and should not be used for authentication.
Also, I understand this might be an edge case, but I don't always have the ability to receive SMS. This can happen in places without cell service (but with WiFi). More importantly, it can happen when traveling abroad and using a data-only SIM, which is especially bad if you get asked to re-login due to the location change.
I hope the SDK detects iPads and offers some kind of alternative login mechanism.
It makes no sense to use SMS for a login. We know it's not secure and we know it's both slow and unreliable. As an alternative, 3rd parties can already use e-mail authentication for free. Any username/email could normally be linked in an account profile to a phone number to authenticate with, so numbers shouldn't be required for the login part. But if they use a phone number, those are globally unique and tied to a real person, and it works for people who don't have data plans.
So 3rd parties get a universal login that doesn't require a password or a data plan, they get to avoid captchas, and they get the expensive SMS transport for free. The trade-off is they hand over to Twitter who all their users are, and their users might have to wait a while to login as they try and re-try to re-send the auth token.
Hopefully they'll still support you logging in with an e-mail instead of a phone number, so you can have more than one identity for any of the services you use to auth this way (including Twitter itself).
Email: pros: links instead of confirmations code. You can always get it if you have internet (even when switching simcards if traveling). You don't need to rely on anybody infrastructure.
Also I would argue if you target ppl who don't have email you shouldn't require any authenticated accounts.
A good comparison would be "So when I'm logging into some website, I'm not going to have access to myspace?"
Which is even less likely.
If you a like Twitter and trying to cross-reference people's email/phone from others address book to get people to follow each other, the throwaway email accounts are worthless compared to more stable phone numbers.
EDIT: The documentation is kind of hard to find: https://dev.twitter.com/twitter-kit/ios/digits
http://gyrovague.com/2014/06/27/how-sms-set-back-the-mobile-...
Plus - for a sign-in solution - I think a standalone domain is probably more important than getting one for "just another app."
----
This is another story I've read today about twitter rebranding services they provide into their own brand.
Open source, you can use whatever you want to get the code to the user. It's from Mozilla.