With Rising Database Breaches, Two-Factor Authentication Also At Risk (hackaday.com)
Two-factor authentication "protects from an attacker listening in right now," writes Slashdot reader szczys, "but in many case a database breach will negate the protections of two-factor." Hackaday reports:
To fake an app-based 2FA query, someone has to know your TOTP password. That's all, and that's relatively easy. And in the event that the TOTP-key database gets compromised, the bad hackers will know everyone's TOTP keys.
How did this come to pass? In the old days, there was a physical dongle made by RSA that generated pseudorandom numbers in hardware. The secret key was stored in the dongle's flash memory, and the device was shipped with it installed. This was pretty plausibly "something you had" even though it was based on a secret number embedded in silicon. (More like "something you don't know?") The app authenticators are doing something very similar, even though it's all on your computer and the secret is stored somewhere on your hard drive or in your cell phone. The ease of finding this secret pushes it across the plausibility border into "something I know", at least for me. The original submission calls two-factor authentication "an enhancement to password security, but good password practices are far and away still the most important of security protocols." (Meaning complex and frequently-changed passwords.)
How did this come to pass? In the old days, there was a physical dongle made by RSA that generated pseudorandom numbers in hardware. The secret key was stored in the dongle's flash memory, and the device was shipped with it installed. This was pretty plausibly "something you had" even though it was based on a secret number embedded in silicon. (More like "something you don't know?") The app authenticators are doing something very similar, even though it's all on your computer and the secret is stored somewhere on your hard drive or in your cell phone. The ease of finding this secret pushes it across the plausibility border into "something I know", at least for me. The original submission calls two-factor authentication "an enhancement to password security, but good password practices are far and away still the most important of security protocols." (Meaning complex and frequently-changed passwords.)
It's too bad no major web service uses smartcards for client authentication except the DOD and they're trying to get rid of them.
Youâ(TM)re making some assumptions when you say that the system only requires a OTP to function. In a business co text thereâ(TM)s typically a device registration process as well, separate to BaU password usage, to prevent exactly this sort of compromise - you essentially enable a device-level certificate thatâ(TM)s used in combination with your OTP.
At the consumer level, this is less common, granted.
Security has infinite bypasses. As soon as a new layer is added another method appears to circumvent. Life, uh, finds a way.
https://media.giphy.com/media/...
The dangers of knowledge trigger emotional distress in human beings.
One big problem with 2FA is that they can phished. U2F is the neat solution in this space (I'm not not affiliated with them, just impressed with it). It's a little hardware key that...
-not fooled by phishing .... Apple is a no-show thus far.
-each site just gets a big random number at registration, so no user tracking from U2F
-integrates SSL to resist MITM
-it's a free standard and the devices are cheap
-Chrome supports it, Firefox is now in beta. Microsoft has made noises about support.
Apple is
U2F https://en.wikipedia.org/wiki/...
FAQ: https://medium.com/@nparlante/...
"...good password practices are far and away still the most important of security protocols." (Meaning complex and frequently-changed passwords.)"
Frequently changed?
That has been proposed for security repeatedly, but I don't see this as a big help.
(If I had to list one thing, it would be "not re-used for other platforms.")
http://www.geoffreylandis.com
This should make it crystal clear as to the priorities of security for most companies and people.
Pros for hardware tokens:
- The private key is exceptionally difficult to extract, and in cases like RSA tokens, currently impossible.
- Many protection features built into the hardware, such as the key being stored in RAM and a battery that is designed to become disconnected upon disassembly, trace contacts only maintaining connection via points inside the enclosure that are disrupted upon tampering, etc.
- Expiration date enforced by battery life
- Can't be copied so must be taken from you, on the assumption that lack of your token would then become noticed at which time the entire keypair is removed from the trust chain.
Compared with pros for software tokens:
- Cheap, generally free
That's it, just the cost, everything above is given up in exchange for not having to pay for hardware.
Now I'll be the first in line to say I wish RSA tokens were not as expensive as they are. In fact I'm certain I'd have to wait in that line right along with you.
But despite the price you actually are getting quite a lot in return, and many things not possible to duplicate in software simply due to the nature of software.
Phones and even computers that would be running that software are not designed with self-destruct capabilities in mind.
The software requires both saving the private key, which is typically going to be on hardware designed explicitly to be readable (HDs, flash, etc), as well as such that the private key needs to be installed in it meaning that key is likely stored elsewhere to be copied.
Which leads to copying of the software/key as a possibility. With a hardware token I would need to deprive you of its use in order to use it myself, something that should be noticeable and set off red flags.
One may say the same would be true for your cell phone, but the reality is I don't need to deprive you of your phone, I can simply copy the data off of it and/or access it remotely, or being a multi-purpose device use some other software running on it to get at that data (Eg a web browser exploit you initiate yourself)
All of those protection features get traded away completely in exchange for a lower price.
Which really highlights exactly where security falls in the order of priorities when these software apps are used.
Like with the "https everywhere" crowd, there definitely are situations where a software token makes more sense, but equally similar they tend to be edge cases that shouldn't require much security in the first place.
Development work, educational purposes, setting up a test system to protect one server on your LAN from the rest of your LAN just to learn how the backend setup works before deploying the real deal elsewhere. etc.
But for anything "real world" those hardware token features shouldn't be dismissed simply due to cost.
I'm not worried about someone getting my password. I'm worried about someone getting the admin password (or hacking in) and stealing the whole database. A good example is the OPM hack. Same applies to hospitals. If I let a hospital keep my medical records in a huge DB, I assume eventually the whole db will be stolen.
Passwords, two factor passwords, RSA fobs are something of a Maginot Line. Figure out how to walk around them and get the whole db.
I'm thinking specifically about stealing data. I'm not talking about someone getting into a company's account at a bank and transferring funds.
The RSA tokens had exactly the same exposure as the apps. If you gain access to the database of token IDs you know what key it is currently generating.
This actually happened back in 2011 https://arstechnica.com/inform...
There are now Fido U2F keys that work with GMail, GitHub, Vanguard, and a few other sites that have their shit together. They solve this database compromise problem. They also solve a common phishing scenario. Use them. Ask the companies you do business with to support them.
I've wondered why no one creates a USB/bluetooth device for security that has the ability to encrypt data based on a private key stored on that device. Then there would be no need for a database of private keys (nothing to be compromised except the device itself). I imagine it to work like this:
A new device is manufactured and loaded with the private key. The manufacturer then deletes any record of the private key and loads the public key to a public database.
When you need to identify yourself, the website sends to data to your device for encryption. The data is encrypted by your device using your private key and returned to the sender. The website then decrypts the data with the public key. If it decrypts properly, then you are authenticated. The private key never leaves the device and the public database could be protected by a block chain to prevent tampering.
Thoughts?
I read through the analysis. I was surprised to find that the server and client are both sharing the same password. Since the authentication is always assymetric (the client is authenticating to the server) it seems like the rational way to do this would be for the server to send the one time code encrypted in the client's public key. The client decodes it with a private key and then puts those numbers on the screen for the user to type into the web site wanting the authorization code.
the problem with that would be it would not work for SMS directly. But if the server is sending the message to an app it should work fine.
this way there is no database of private keys to steal.
why don't they do it that way?
Some drink at the fountain of knowledge. Others just gargle.
One thing: the big TOTP-key database isn't on your phone or computer or RSA fob/dongle. It's on a server run by whatever service you're authenticating with. And it's that database that's most likely to be compromised. That's true even for the RSA dongles, the host still has to have a database of all the keys so they can validate the code you entered against what your dongle should've generated.
A better solution would be USB hardware-based 2FA using public-key cryptography, and those aren't too expensive. It's just that there's no big money to be made there, by their nature the dongles can't be a locked-in part of a proprietary system so the big vendors and their salespeople have little reason to push for them.
Let's just throw out acronyms and expect that everyone knows WTF you're talking about.
Two-Factor Authentication Also At Risk
Three-Factor authentication. (Can't wait until this escalates ...)
It must have been something you assimilated. . . .
I hadn't considered how a database breach would compromise 2FA by exposing OTP secrets. Today I'm going to implement encryption of our websites' OTP secrets by one of our master secret keys (that's never written to server secondary storage, and so is harder to hack).
I think TFA's assertions are a bit stupid on their face. They are essentially saying "it's not something you have" because it can be reduced to an underlying secret key required to be guarded.
This begs the question what physical factor can possibly exist which at its core does not effectively guard a secret from unwanted disclosure? Guarding secrets is the way ALL "what you have" schemes without exception operate. You can take issue with an implementation or judge relative quality yet to say it's not "something you have" is not a real argument. It doesn't convey any useful information.
In my view the only meaningful way to address large scale credential breaches is decoupling authentication from applications. There should be separate physically secured systems with no other function except to perform authentication and provide evidence of outcomes to application servers. Application servers can store and jungle all the credentials they want... They just can't ever be placed in a position to EVER reason about their meaning or validity.
On the front end people need to stop using PKI to protect clear text passwords and clear text one time codes. When you use a secure authentication protocol the risks associated with information disclosure as a result of authentication are significantly reduced. A secure authentication protocol would for example prevent a customer of realbank.money from being owned as a result of handing their 2FA data to fakebank.money. PKI on the other hand offers no such protection because fakebank.money is just as capable of obtaining a valid certificate as realbank.money and adds completely unnecessary dependencies to the attack tree of the system.
Meaning complex and frequently-changed passwords.
And with this, they undermine the whole thing by displaying little knowledge of what actually makes for good password security. Mistaking complexity for entropy and an avoidance of dictionary attacks / rainbow tables. Password changing doesn't make your password any harder to guess, it just helps limit the failure domain once it's compromised. But really, overlooking password reuse between sites (and corresponding duplication of security question answers) is really the topper - that needs to be in your awareness.
LITTLE GIRL: But which cookie will you eat FIRST? C. MONSTER: Me think you have misconception of cookie-eating process.
Frequently changed passwords is terrible advice and has contributed to why so many people use poor passwords. IT professionals have been forcing stupid password changed and rules on them for decades for absolutely no reason. The trick is to use complex, random passwords, and to have a different one for every login. This is easily accomplished using a quality password manager, when the person only has to remember one strong master passphrase. Combine with 2FA + common sense, and you will be more secure than 99% of people.
... which completely negated the value of the "physical hardware". Oh, the irony!
Incidentally, 2-Factor _requires_ two different, independent devices by definition. And it only gives the added security if it is done according to the definition. Anybody claiming that it can be done on one device is essentially lying to their customers. If it is all on just one computer/phone/whatever or if the devices are not independent, for example a phone backed up to a computer, then it is not 2FA anymore. It is just more complicated 1FA. A lot of vendors make claims these days that 2FA is possible using just one device though and a lot of customers are not smart enough to see what is going on.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
You can find the source for the topic of this post at the folowing site: https://pages.nist.gov/800-63-...
The updates are broken down into 3 sections, with section “b” being the most relevant to this e-mail.
https://pages.nist.gov/800-63-...
https://pages.nist.gov/800-63-...
https://pages.nist.gov/800-63-...
Extract from section 63b:
When processing requests to establish and change memorized secrets, verifiers SHALL compare the prospective secrets against a list that contains values known to be commonly-used, expected, or compromised. For example, the list MAY include (but is not limited to):
Passwords obtained from previous breach corpuses.
Dictionary words.
Repetitive or sequential characters (e.g. ‘aaaaaa’, ‘1234abcd’).
Context specific words, such as the name of the service, the username, and derivatives thereof.
If the chosen secret is found in the list, the CSP or verifier SHALL advise the subscriber that they need to select a different secret, SHALL provide the reason for rejection, and SHALL require the subscriber to choose a different value.
*Verifiers SHALL implement a throttling mechanism that effectively limits the number of failed authentication attempts an attacker can make on the subscriber’s account as described in Section 5.2.2.*
*Verifiers SHOULD NOT impose other composition rules (e.g., mixtures of different character types) on memorized secrets.*
*Verifiers SHOULD NOT require memorized secrets to be changed arbitrarily (e.g., periodically) and SHOULD only require a change if the subscriber requests a change or there is evidence of compromise of the authenticator.*
Forcing password changes just to change the passwords also contributes to this security “fallacy”, that in fact does more to weaken our security than anything else.
When both of these are combined, we should find that the rules are in several ways, much like the TSA at airports, good security theater that causes no end of grief for travelers, yet does almost nothing to make people safer or more secure.
As a follow up, I saw an article in the Wall Street Journal regarding this topic.
https://www.wsj.com/articles/t...
That may be pay-walled, so another variant from Gizmodo.
http://gizmodo.com/the-guy-who...
Interesting to find out that the “supposed” strong password rules were developed by a bureaucrat with very little knowledge about computer security.
Finally, a previous paper I composed as an attempt to point out the fallacy of those laughably weak "strong password rules" several years ago.
You know, every time I see people asking for the ability to enforce "strong" password rules like the above, I have to laugh.
Those kinds of rules actually reduce the safety and "strength" of the passwords.
It wouldn't surprise me at all if those "recommendations" came directly from the NSA with the express purpose of making brute-force cracking of the passwords so much easier for them.
Let's do a little math here.
Start with a typical 8 character password requirement - with 95 printable characters in the ascii character set, we subtract 1 for the "space" character, leaving us with 94 character "options" for each of the 8 spaces.
So now, we do the math, 94 characters for each of the 8 positions gives us just a little over 6 quadrillion possibilities.
Now, we start to add in the "rules".
1 uppercase
Who is general failure, and why is he reading my hard drive?
>The original submission calls two-factor authentication "an enhancement to password security, but good password practices are far and away still the most important of security protocols." (Meaning complex and frequently-changed passwords.)
Complex, frequently changed... and written down on a sticky note.
Frequently changed passwords is an anti-pattern, it encourages weak passwords. Anyone who was actually a security expert would know that.
The actual password best practices are: unique and complex, and use a password manager to make that practical.
We are the best online fun toys shop in India that offers a variety of products both for women and men. Our large range of mater toys include vibrators, love doll, lingerie, lubricants & lotions and much more. We offer free worldwide shipping and guarantee your privacy. We provide you with friendly, fast and efficient customer service, and we protect your anonymity, with discreet packing and billing, all of this to make sure you are satisfied with your purchase and have a great experience using this website. Need a toy? www.mysextoy.in
We have had client-side certificates forever. They make HTTPS more secure, they make us safer, they solve most of our password problems. Why aren't we using them?
Also the frequently changed complex password requirements make passwords less safe, not more.
https://www.engadget.com/2017/...
- Michael T. Babcock (Yes, I blog)
Complex and frequently changing passwords have already been shown to be counter-productive. Passwords should be not guessable. Two or three **unrelated** words strong together are much less guessable than P@$$w0rd! which is in every cracker's dictionary database. No personal info, nothing obvious, and the rule of thumb is if your mom can think of it, it's obvious.
Changing passwords "because it is time" is a waste of effort. Change your password if you've been told the website has been breached. Change your password if you think you've been shoulder-surf'd. Change your password if you were dumb enough to have written it down and the paper is lost or not secured from others. Change your password if you cannot remember it. But if your password isn't easily guessable, is over 12 characters long (any characters as long as they are 12 different ones), and there's not been any exposure, you don't need to change it, just keep it a secret.