Why Canada’s banks have weaker passwords than Twitter or Google
theglobeandmail.com
theglobeandmail.com
More worrisome to me is the bank with case-insensitive passwords. I'd like to think they are just .lower()ing the password before proper hashing, but I'd wager they are storing it in clear text (and possibly showing it to bank support agents).
Also, saying that longer password are more difficult to remember is not true. If you let me type a longer password including the space character, I'll use a sentence that is easy to remember for me.
Based on the bank I've worked at and the limited information I've received, it really isn't about the customer experience. It's likely related to legacy systems (someone alluded to this in another comment mentioning COBOL) and some outdated security practice in some of these systems. I think the security teams ideally would like to increase password strength, but costs (and non progressive technology teams) can tend to get in the way of making that change. As the article mentions, they try and mitigate this with reactionary measures and stricter restrictions when it comes to invalid login attacks.
For what it's worth, two-factor is being explored by banks and if I'm not mistaken, the banks do have existing two-factor authentication schemes -- just not for retail banking customers.
Naively, you'd think the compression would make the password field much more prone to preimage attacks (e.g. JtRing a hacked DB dump), but calculating each attempt would still require a full KDF series, even if large amounts of the KDF's output keyspace are getting conflated at the end. You'd likely have a lot of accidental collisions between passwords that happen to hash to the same value in your restricted keyspace, but they'd be no help in finding a purposeful collision, because the input keyspace would be unlimited.
Of course, if you only have 40 bits of output keyspace available (i.e. a field with a capacity for eight base32 characters), you "only" need to KDF 2^40 passwords to generate a probabilistically-complete rainbow table. So, make sure to salt the compression step with something user-specific, e.g. The UID. One simple method of achieving this would be to have the output look like
base32(trunc(40, kdf(pw)) XOR trunc(40, kdf(pw ++ uid)))
This basically means that a successful preimage attack on your compressed KDF be would require a unique collision between the salted and unsalted hash outputs—effectively doubling the output keyspace one would have to search, as well as giving you the regular benefits of per-user salts.---
...or you could just put the hash of a random opaque token in the password field; stand up a modern, separate server that runs a "password service" (in the SOA architecture sense) to keep a map of full (UID, KDF hash) pairs to the opaque tokens; and then have your web service hit the password service to (potentially) return it a token to use as the password in the conversation with the legacy auth system. You know, either way.
If they did what you suggest their users would need to setup one pin for telephone and a different password for online access.
So it is in fact for the user experience, but that only makes sense if you remember telephone banking is still a thing.
If a hacker gets into a bank's systems, they're not going to bother to steal passwords. Passwords have little value (except to blackmail the owner) and hacking into a bank is a very serious crime.
Unless TD recently changed their requirements, this is not true. TD Easyweb (lol) stores a password of 5 to 8 characters.
What's worse is that while TD does allow you to enter passwords greater than 8 characters long and will let you happily believe that it stored the password you entered, it actually only stores the first 8 characters and validates against those. That is to say if when you created your account you entered a password of "Aardvark123zxcv", Easyweb will not mention anything about your password being too long, but your actual password is truncated to "Aardvark". When you log in, Easyweb will accept "Aardvark<anything else>" as a valid password [0].
It took me a year before I accidentally discovered that my 15 characters password was actually being truncated to 8 and I didn't need to type in those last 7 characters as all. There was absolutely no indication from the UI that the extra characters were unnecesary.
[0] http://forums.redflagdeals.com/td-online-banking-should-i-wo...
TDB has password restrictions listed in the article (8-32 characters with some special characters). TDCT restricts one to the 8 character restriction (!), as you pointed out. EasyWeb is the name of the TDCT (Canadian) online banking site. There is no corresponding brandname for the TDB (US) online banking site.
The highly restrictive TDCT password is why I have to keep changing my TDCT password rather often compared to other online banking accounts.
Thanks for calling this out.
That's a UX problem that's hidden from most of us, so to them it's a win. To me, it's a disaster. We spend a lot of time working to improve this experience, and hopefully the banks will start to change the way they think too. We're seeing some movement from them.
Maybe there's a lesson here - a broader approach to security, like implementing checks at every level of operation to make sure nothing bad happens even if an attacker is deep into the system, is better than a singular focus on password length and other login details.
There are also consequences, steal money and you'll probably go to jail. Hack somebodies email, law enforcement probably won't do anything unless it's a high profile case.
Compare to BitCoin. Irreversible anonymous transactions. Far better security and coins are constantly getting stolen. I really don't think BitCoin will succeed since computer security in general is still kinda amateur hour.
Nope, monetizing a hacked account without doing that is trivial (at least here in Europe where money transfers are an everyday occurrence for everyone and few people remember what a "check" is):
Send out spam promising a way to make $$$ from home without qualifications as a "financial agent". Transfer money from hacked accounts to the gullible, desperate schmucks who respond, tell them they can keep 10% as commission and have to transfer the rest via Western Union to someone in Russia.
> Maybe there's a lesson here - a broader approach to security
Defense in depth, should be a widely-known concept by now.
In Brazil, for instance, where hackers get quite creative, some non-business accounts offer 2FA via authenticators.
Some banks even require you to install some "security" Windows software before enabling you to use your home computer. Needless to say, such software is not always easy to remove (as most trojans). I'm not sure how it would work on a Linux (if it would work at all).
And sometimes they also limit online transfers to ridiculously low amounts (e.g. 100$/day).
Despite all that, they only allowed numeric passwords for the online system, consisting of 8 digits (chosen by the user) + 3 characters (chosen by the system). I believe this is to ensure the same password can be used in ATMs as well.
I wonder what makes the banks in the two countries have such different views on security?
Here is the device my bank uses. http://www.vasco.com/Images/DP%20260_DS201109-v1.pdf
Or "what street name did you grow up on" could include some UTF-8 glyphs from Asian immigrants.
Toronto-Dominion Bank: 210 bits
Royal Bank of Canada: 195 bits
Bank of Nova Scotia: 83 bits
CIBC: 71 bits
Bank of Montreal: 36 bits
Tangerine: 20 bits
Specifically, the tendency to lock an account after a few wrong login attempts is effectively a DoS vulnerability for the customer, as it allows anyone who knows your username (which often even is just the account number, so essentially public information) to trivially prevent you from accessing/using your money.
Their only focus is on preventing third parties from accessing my money, but my interest is not that third parties can not access my money, my interest is that I can access my money, which means both not having it taken by third parties, but also not having it taken temporarily by the bank who want to protect themselves (if the bank locks me out from my account, that's functionally equivalent to them taking all my money out of my account for a day or two (or however long it takes to reactivate the login) - while I am locked out, I can pay just as much as when there is no money in the account).
Being locked out of online banking doesn't disable your debit card or your paper checks, does it?
Every added security requirement limits the size of the customer base that's going to use the online system. For myself, a two-factor system with an app or SMS to provide the second factor would work fine, but for my parents it wouldn't. Every increase in security requirements has a tradeoff between customers that will use it and customers that will abandon online banking because it's become "too hard".
For the bank, when a customer abandons online banking, that means that there are longer lines at the branch, which means they need more people to provide the same level of service.
Note that I specifically said "security requirement". If two factor authentication was optional (not a requirement), then some accounts would be more secure than others. This would potentially make the less secure accounts more of a target since attackers may avoid the more secure accounts. There is also all of the development and testing and maintenance efforts required when you make different customers have different authentication methods.
The bank knows all of this and more. They balance their risk (reimbursed customers due to poor security) against the costs (people abandoning online banking, people switching to an easier-to-use competitor, implementation costs, etc).
Personally I'd be scared away from internet banking if my bank had a weak password scheme - and I remember that was the kind of comparisons made between banks by the consumer magazines when internet banking showed up in the late 90's - "which is more secure".
[0] And between 65-74 years, the number is still 60%! http://epp.eurostat.ec.europa.eu/tgm/table.do?tab=table&init...
I'm curious, would anybody rather use that vs a typed password? It works via browser (using getUserMedia) or phone call, but the user most enroll first.
Losing your phone effectively locks you out of all your 2-factor accounts. If it's stolen by the wrong people and unlocked/unencrypted, they'll get access to pretty much all of your accounts through a password reset. I'd say that's pretty bad and we have yet to find a good, secure way to authenticate users.
(edit: that's not a rhetorical question, though I indeed don't see how it is)
It wouldn't be easy for somebody to obtain a recording of my pass phrase, but it's possible.
Also, with all the phone related surveillance going on I would rather put money on the fact that my calls HAVE been recorded rather than that they HAVENT been recorded. I know you can encrypt web traffic, but right away the idea of saying something in ~~plaintext~~ plain voice over the phone seems as secure to me as tattooing my email password on my hand. I'm genuinely curious and not trying to shoot your idea down, but those are questions I would need before trusting it with anything more than a 'login of convenience'. I would use it for Skype let's say, but not my email. I might use it for Hacker News but not banking.
I had the idea of protecting client websites behind a Twilio-powered login to impress clients, but I never did it. I pictured sitting down with a client, opening a laptop to a giant lock with NO obvious text entry. You press the 'login' button and immediately your phone rings in it's pocket. "alpha forest forty five" and suddenly the lock opens and he page refreshes before their eyes. Now want to see the latest designs we have?
Sure, would love to see the designs. That is actually a very similar idea, based on two factor authentication.
>> but it's possible.
Anything is possible.. but if security is your concern, bioauthentication is much more secure than a password. Or proving you are you by.. replying to a text. Anybody could reply to a text, nobody can fake your voice, even if they know your password. Recordings don't generally work (low signal) and are much harder to attain, unless you are the NSA. In which case.. they don't need this anyway.
Security isn't the issue.. usability is. You have to enroll, and there are false negatives... and mainly it is just harder to use than typing.
(i think i actually remember a better article about that, that went into more detail why WoW has better security than banks, but I can't find it. I probably saw the article that I am thinking of on Hacker News)