Twitter fanatic glimpses dark side of OAuth
'Secure' authentication can be anything but
A mobile enthusiast and professional internet strategist got a glimpse of OAuth's dark side recently when he received an urgent advisory from Twitter.
The dispatch, generated when Terence Eden tried to log in, said his Twitter account may have been compromised and advised he change his password. After making sure the alert was legitimate, he complied.
That should have been the end of it, but it wasn't. It turns out Eden used OAuth to seamlessly pass content between third-party websites and Twitter, and even after he had changed his Twitter password, OAuth continued to allow those websites access to his account.
"Unless you revoke these tokens when you change your password, a malicious user will still have access to your twitter account," said Eden, who tackles customer usability issues for a large telecommunications company. "Twitter doesn't make that wonderfully clear."
In theory, OAuth is supposed to enhance security by eliminating the need to share Twitter login credentials with other sites. The problem is that the tokens the service uses to authenticate users have to be manually reset. Attackers who get their hands on the tokens of a compromised account will continue to have access to the account long after the user has changed his password.
Eden alternately describes this as a "gaping security hole" and a "usability issue which has strong security implications." Whatever the case, the responsibility seems to lie with Twitter.
If the service is concerned enough to advise a user to change his password, you'd think it would take the added trouble of suggesting he also reset his OAuth credentials, as Google, which on Wednesday said it was opening its own services to work with OAuth, notes here. ®
Complaints against convenience
So, once again we have convenience weighted against security, and a person from one side finds it lacking. How is this different from (other) centralized authentication schemes?
If you are upset that changing your password means that you DON'T have to go around to each and every other site you visited and update the credentials there, why use a centralized scheme to begin with?
Good to see people reinventing the wheel. There was this thing called kerberos once (ok, there still is), and there too people had to manage the "ticket granting ticket". Don't think they ever got around to automating that in a meaningful way, except automatically destroying it when done. Oh, and understanding that it had to reside on a trusted machine (your workstation), not some third party website. Here, well, I think they looked at it and perhaps gotten it ever so slightly wrong. Or they didn't look at it at all and gotten it ever so slightly wrong. Much like openid, really. Privacy? Hah.
No shit, Sherlock
"Unless you revoke these tokens when you change your password, a malicious user will still have access to your twitter account,"
Well, yes. That's what it's for.