Live data from Hacker News

DontDuo: Bypass 2FA with DTMF Tones

dontduo.com

11–20 of 60 posts

Re: DontDuo: Bypass 2FA with DTMF Tones

#11

This is a horrible idea. I just can't. Why does this service even exist. I seriously hope duo figures out the numbers this site is using and blacklists them.

To prove to you that PSTN based 2FA is never a reasonable idea.

What is a reasonable idea when your adversary is the user?

How do you give a person secret knowledge that they need to provide you to authenticate but can’t provide to something else?

Re: DontDuo: Bypass 2FA with DTMF Tones

#12
post #8

Or instead of handing over your second factor authentication to a startup web service, you could buy a Yubikey, leave it on your keyring or plugged into your laptop and just touch it. Some Yubikey models also store the secrets that generate the frustrating 6 character TOTP codes. A pairing a Yubikey with a desktop app, you can copy/paste the codes instead of the error-prone process of manually re-typing them.

>Or instead of handing over your second factor authentication to a startup web service, you could buy a Yubikey

...assuming the service in question accepts yubikeys, or even TOTPs. I've seen plenty of services (mostly financial) that only allow sms or voice calls.

Re: DontDuo: Bypass 2FA with DTMF Tones

#13

This is a horrible idea. I just can't. Why does this service even exist. I seriously hope duo figures out the numbers this site is using and blacklists them.

Those are strong words for a service that claims to save 3 frustrating hours a month. Let it be, it's how capitalism works — solving needs, no matter how tiny. Pretty sure a dev made this for themself and decided to share

Having lived under a terrible bureaucracy that rolled out Duo to everything but make sure to set it up so that every. single. auth. required entering credentials and 2FA and expired all sessions every 12 hours I would have paid anything to get around it.

Services like Duo and Okta are enabling your least favorite IT admin to put users in ‘S’SO hell.

Re: DontDuo: Bypass 2FA with DTMF Tones

#14
post #11

Earlier quoted context omitted.

To prove to you that PSTN based 2FA is never a reasonable idea.

What is a reasonable idea when your adversary is the user? How do you give a person secret knowledge that they need to provide you to authenticate but can’t provide to something else?

TPMs built into managed devices; USB hardware tokens for others.

Re: DontDuo: Bypass 2FA with DTMF Tones

#15
If you fill this out with the same email as the protected account, you're basically inviting an untrusted third party to launch a brute-force attack on your now-defenseless account.

Using this sounds like a good way to take liability when your account gets hacked. It will not look good to be fired for intentionally defeating corporate security systems.

Re: DontDuo: Bypass 2FA with DTMF Tones

#16
post #12
post #8

Or instead of handing over your second factor authentication to a startup web service, you could buy a Yubikey, leave it on your keyring or plugged into your laptop and just touch it. Some Yubikey models also store the secrets that generate the frustrating 6 character TOTP codes. A pairing a Yubikey with a desktop app, you can copy/paste the codes instead of the error-prone process of manually re-typing them.

>Or instead of handing over your second factor authentication to a startup web service, you could buy a Yubikey ...assuming the service in question accepts yubikeys, or even TOTPs. I've seen plenty of services (mostly financial) that only allow sms or voice calls.

Duo implements a proprietary setup layer over HOTP (counter based instead of time based, useful for hardware key generators that don't have a clock). I needed it for my University and internship, and was able to set it up on an Android emulator (or rooted device), copy the secret key and counter off of the app's config file, and then use it on my laptop.

On the computer I have ~/.totp/ which contains files like `github` with the secret key as the file content. In my bashrc I made a function which runs oathtool on the contents of the given filename to generate the 6 digit code and then copies it to the clipboard with xclip (run it like `$ totp github`).

For the duo thing, I had to make the same `name` file with the secret key as the content, and a `name-counter` file with an integer. I put a hotp function in bashrc, so running `hotp name` generates the 6 digit code, copies it to the clipboard, and increments the counter.

I had to tell Duo I was adding a tablet (since the emulator had no phone number), it gives a QR code with a URL as a backup; I opened the URL in the emulator which opened the Duo app in the emulator and finished the setup. Then on the host computer run adb shell and cat out /data/data/com.duosecurity.duomobile/files/duokit/accounts.json from the emulator shell (or the shell on your rooted Android)

Get the 'otpSecret' and counter, at the end of otpSecret replace the \u003d with its actual character: '=', then put the secret into the file ~/.otp/name and the counter into ~/.otp/name-counter

Turns out I actually put a tiny script in my PATH instead of adding a function to bashrc:

    #!/bin/sh
    typeset -i counter=$(~/.otp/name-counter
On macOS there's a `clip` command which you will have to use instead of xclip to copy to clipboard.

I have saved a very old (2 years?) version of the Duo APK which works great for this (or at least was working great the last time I tried, 2 months ago). The newer app versions refuse to run without Google Play Services, but you can still make a throwaway andorid emulator with GPS. I'd like to share the APK I have, but no way to do so without linking this pseudonym to my real identity...

The most idiotic thing is that basically the entire 2FA ecosystem fucked up into turning 2FA into phoneFA. Your password is a secret, it can be guessed by some hacker on the other side of the world, so let's have two secrets, with the second one being unguessably long and only known to your hardware, so that it can make a human-sized login code. There are standards for this like TOTP and HOTP, but instead of having basically password managers for these secret keys, we get SMS auth and Duo and Authy, with no way for a normal person to generate otp codes on their actual computer. Google Authenticator and even the Duo app actually allow you to scan QR codes with TOTP secret keys and get the 6 digit OTPs from their app, but Duo itself won't let you use the standards to login, or to do it on your computer.

For completeness, here's the TOTP function in my bashrc:

    function totp() {
     oathtool --totp -b $(
So if you have a file ~/.totp/github with the secret key as the content, you would open a terminal (or something like Guake/Yakuake) and run the command `totp github` and the 6-digit OTP would be in your clipboard.

Re: DontDuo: Bypass 2FA with DTMF Tones

#17
post #7
post #4

I'm very confused about what this is. Duo as in Google's Duo video calling? There's 2FA on that? I've never seen any. Or is there some other Duo it's referring to?

I assume this is referring to Duo Security, owned by Cisco: https://duo.com/

I was just as lost as OP. Can someone also explain how it uses DTMF tones? Is it using tones to deliver or receive 2FA codes? Scanned the above url but didn't see the info.

Re: DontDuo: Bypass 2FA with DTMF Tones

#18
post #3

This is a horrible idea. I just can't. Why does this service even exist. I seriously hope duo figures out the numbers this site is using and blacklists them.

I think the point is that relying on phone calls and DTMF tones for two factor authentication is trivial to bypass. Anyone can record DTMF tones in a voicemail message and forward calls to that number.

"Anyone can record DTMF tones in a voicemail message and forward calls to that number."

I have never used "duo" and it has taken me a few reads of this to understand exactly what this is, but I think it's worth pointing out that your own personal 'dontduo' service would be trivially simple to set up in a simple twiml bin, at twilio.

I think it would look something like this:

  
  
  
  
  
"Include w to introduce a 0.5s pause between DTMF tones. For example, 1w2 will tell Twilio to pause 0.5s before playing DTMF tone 2. To include 1s of pause, simply add ww."

https://www.twilio.com/docs/voice/twiml/play#attributes-digi...

Re: DontDuo: Bypass 2FA with DTMF Tones

#19
post #7

Earlier quoted context omitted.

I assume this is referring to Duo Security, owned by Cisco: https://duo.com/

I was just as lost as OP. Can someone also explain how it uses DTMF tones? Is it using tones to deliver or receive 2FA codes? Scanned the above url but didn't see the info.

It calls you, and then you need to pick up and press the one key to authenticate yourself.

Re: DontDuo: Bypass 2FA with DTMF Tones

#20
post #12

Earlier quoted context omitted.

>Or instead of handing over your second factor authentication to a startup web service, you could buy a Yubikey ...assuming the service in question accepts yubikeys, or even TOTPs. I've seen plenty of services (mostly financial) that only allow sms or voice calls.

Duo implements a proprietary setup layer over HOTP (counter based instead of time based, useful for hardware key generators that don't have a clock). I needed it for my University and internship, and was able to set it up on an Android emulator (or rooted device), copy the secret key and counter off of the app's config file, and then use it on my laptop. On the computer I have ~/.totp/ which contains files like `gith…

I have been doing the same on AOSP with the andOTP app. Can't get why large companies/universities have boners for proprietary crap like duo. A company comes along and says, "Here's some textbook standard stuff, and here we add our lock-in on top of it. Would you like the lock-in ?" And everyone says, "Yes please."

For those suffering, this helps: https://github.com/puddly/android-otp-extractor

Edit: Responding to your edit

>with the second one being very long and only known to your hardware. There are standards for this like totp and HOTP,

TOTP/HOTP don't provide phishing protection. Neither does Duo (which is largely HOTP), but that's a different issue.

>but instead of having basically password managers for these secret keys, we get SMS auth and duo and authy, with no way for a normal person to generate otp codes on their actual computer

SMS auth is terrible, but TOTP/HOTP are also hard to secure. There isn't a meaningful way of securing the secret, and computers are far more insecure than phones. You don't want your 2nd factor on the computer if that's your first factor too. So the right way forward is hardware based keys. However, it should all still be open standards based. Not some hacked up garbage that needs google play services.

Post reply on HN