The Noise Around You Could Strengthen Your Passwords
wired.com
wired.com
Oh, my.
Edit: before you shout "but it's just a signature!" Think of a large entity with huge resources that goes ahead and creates signatures of an entire catalog of recorded English conversations. Now you upload your signature, and that entity can reconstruct your conversation via a catalog search.
To protect your privacy, the app doesn’t upload the audio itself, just the digital signature.
Joe and Bob - were they together on Sunday at 2pm? Well let's check the digital audio signatures to see if they match.
Or, John just uploaded a signature that matches our samples of "Kill the president."
And a few thousand other examples.
On the "probably too simple, but..." side, record 8 seconds of audio. Normalize it. Bucket the net volume audio levels across quarter-second intervals. Fuzzy match a bit. If the levels have some change in them, and the changes match, you're in. Virtually no useful information in that signature.
By contrast, if you get "clever", and want to go with that basic approach, but you want more bits to fuzzy match, so you break apart the frequency bands into 64 bands and sample on 50 millisecond intervals, and you're getting perilously close to revealing speech in the signature with enough processing. (You lose a lot, but you end up with more to work with than we privacy sensitive folks would like.)
The point isn't that either of these are what they are doing. I don't expect either of those would "work" on their own; I kept them simple to describe and simple to understand for the purposes of this post. The point is the info leak on the signature can vary quite widely depending on how they do it, and without knowing the algorithm you can't speculate very effectively. It could be anything from "fairly safe" to "you might as well just send up the audio".
Let's say the audio signature of "Kill the president" is 9a0c0a6868a2a784059d9a634e4a58c0.
"kill the president" in a different tone would be entirely different: ed3e3cd6be6eeb2de9b480e2c9590cc9
Conside that the web browser's desktop/laptop microphone and the cellphone/telephone microphone will probably never produce identical audio samples, if not due to the actual transducers, then simply due to proximity to various ambient audio sources like the user's breathing versus fan motors attached to a laptop shell or desktop case.
1. "Joe and Bob - were they together on Sunday at 2pm?"
Joe and Bob avoid this by not authenticating using the same mechanism in the same room at the same time.
2. "John just uploaded a signature that matches our samples of 'Kill the president'".
Solution 1: John understands how the authentication works by recording ambient sound, and refrains from saying things like "kill the president" during that procedure.
Solution 2: John starts an Internet meme which encourages every user of this authentication mechanism to say "Kill the president" over and over again during the procedure. Now, millions of signatures match.
I'm also not sure how I feel about a second factor that would allow an adversary to authenticate by simply sitting in the same coffee shop as me. Manual authentication seems important, and U2F already addresses some of the nusiances of TOTP-based schemes.
This is a really clever innovation, though.
So, do you trust a third party having that information of you?
Substitute money for information, and I would love to do business with you.
"You are already paying me $20, so you might as well give me $100."
I really don't mind sharing an audio hash with someone that already has my full banking information/history in there. Not only that, I would be EAGER to do it if that will increase the security of the current contract that I have with them, specially since they found a way to do it that it's not bothersome at all.
But yeah, whatever you say naggy HNers.
With regular 2FA it didn't work because you typoed the code, and it's easy to fix that.
Personally I don't find 2FA annoying at all. Most sites just have long-lived cookies so you only have to do 2FA on a new computer, or once every few months.
AWS is the exception which requires you to 2FA every time you login, which is definitely annoying. They should fix that.
Of course, if you're in a particularly erratic environment -- such as songs switching, or sitting in a crowded area -- I'm sure the security mechanism would fail.
Seems frustrating and gimmicky, but maybe that's just me.
Sounds like a new attack vector for me (e.g. when somebody can manipulate the app or replace it by a fake version -- even "smart" apps can have errors) and even when it is not, the possible security win, it might bring, sounds rather small to me.
The main problem, I see, is that this "two factor" authentication gives a wrong feeling of security -- and the users might think, that a secure password is not so important --> think, the old 4digit PIN-code is "OK".
As an attacker, I would simply try a silent room and a time where most people are asleep. When somebody has forgotten to deactivate his phone, I got him.
In general, I distrust any security measure that relies on the possession of my phone. To bundle many security related things on one single thing, is a bad idea. Even with central keys of houses, there are so many problems, but what currently happens is, that the smartphone becomes the key to my home, my bank, my car ... (not kidding, a lock with smartphone access is already sold).
When I loose my phone, I am lost ...
There was a (rather old) film "Filofax" about somebody that found the filofax of another person an practically took over his live. Maybe it is time for a film called "smartphone". We are living in "smarter" times.
1. The phone is equipped with a public/private key.
2. Authentication begins when the client side of the application running on the PC or other device ("authenticating device" or AD) receives a message from the network informing it of the phone's public key, and a challenge token. The AD's goal is to obtain a signed version of that same token from the phone.
3. The phone also receives a message containing the token. A handler on the phone recognizes the message and kicks into action. It retrieves the private key, signs the token, and emits audio representing the signature.
4. The authentication module on AD is listening for this audio, and decodes it. Then it uses the public key to verify the signature against the token. If the signature matches, it declares to the application that the phone is present in the room.
Simpler version, without cumbersome crypto:
1. The phone and AD receive a numeric code.
2. The phone converts the numeric code to a short sequence of musical tones. These are played out the speaker.
3. The AD hears the tones and recognizes the correct numeric code, declaring the phone to be present.
The downside is that the phone makes noise, which may not be acceptable in some circumstances. This can be mitigated by using a simple audio cable with 1/8" plugs from the phone's headset to the mic input on the PC.
Whatever you have then, you can use to succeed in the regular attack. Where is the narrowing of the threat model?
The only thing I can think of is that the actual information of a log in is leaked, without it being exploitable because they don't have your password. This doesn't seem very useful by itself especially considering that they won't know which site you're logging into.
I don't think it's a problem for the average user in the average login scenario. However, it still doesn't mean it isn't a security concern.
As I said above, by that time, it's too late, because the server should detect multiple logins and disable the code (and hopefully alert you that someone has your password).
Other hardware solutions could be found. For instance, an app on the phone could receive a security token string, and use bluetooth to send it to the PC. Or, a QR code (or bar code) could be sent to the phone which pops up on the screen. This is held up to the PC's web cam which scans it. [Insert your idea below.]
The opposite of this (bar code on computer is scanned by the phone) is roughly the user experience of SQRL.
Would Apple ever let an app do this? No, probably not.