WebApp Sec mailing list archives
RE: one-time password (OTP) authentication
From: "Lyal Collins" <lyal.collins () key2it com au>
Date: Sun, 19 Jun 2005 19:05:38 +1000
Here's another scenario. Hacker installs trojan on client, and intercepts network connections from that client. When a OTP value is entered, hacker a) intercepts the OTP value and immediately returns a 'sorry, try again' message to user and b) uses the OTP value to authenticate themselves. As Bruce Schneier says, OTP merely induces tactical change by attackers - the foregoing is a well discussed scenario against OTP solutions, and lots of variants for all the OTP variants - images, etc. In the meantime, this code may provide a short term benefit - I haven't looked at it. Lyal -----Original Message----- From: james [mailto:james () tlhenterprises net] Sent: Sunday, 19 June 2005 2:16 PM To: webappsec () securityfocus com Subject: one-time password (OTP) authentication Two-factor authentication (authenticating user with something they know AND something they possess) is becoming more and more popular due to increasing security requirements and the prevalence of spyware software. However, in open source projects, solutions such as RSA securID, smartcards, etc. are not always feasible because of funding, licensing, or other constraints. Here is a complete, standards-based, open source, no-hardware solution. Here is a PHP implementation for generating, challenging, and authenticating one-time passwords according to RFC 2289. (go to http://www.dcphp.com/Developers/files/otp_pub.zip to download) Below are two scenarious for OTP use. Scenario A: Users across an organization need access to corporate resources at home, on the road, in airplanes, etc. Users are many (>1000) and geographically distributed. A user applies for access and is approved. The administrator prints off a list of one-time passwords and delivers a hard-copy via physical medium (fax, phone, snail-mail, person-to-person handoff). Scenario B: Users self-register for a commercial (or other) website. Once successfully registered, the user is given the option to generate a list of one-time passwords and use them for authentication in addition to their username/password (of course, user can ignore OTP from certain trusted computers, such as the one they registered from, if they trust it). The user can generate new OTP's at any time once authenticated. When the user logs in, they use their username,password, and a one-time-password (which one depends on which one they are prompted for by the server). The OTP expires immediately upon authentication. Now, if a hacker intercepts all three tokens, they are still unable to perform a replay attack because the third token is already invalidated. Their is a race condition if they are watching real-time, but this can be accounted for via transaction locking in the session handling code. -- the brown cow --
Current thread:
- one-time password (OTP) authentication james (Jun 18)
- RE: one-time password (OTP) authentication Lyal Collins (Jun 19)
- Re: one-time password (OTP) authentication Andrew van der Stock (Jun 19)
- Re: one-time password (OTP) authentication Joseph Miller (Jun 20)
- <Possible follow-ups>
- RE: one-time password (OTP) authentication Cyrill Osterwalder (Jun 20)
- RE: one-time password (OTP) authentication maburns (Jun 20)
- Re: one-time password (OTP) authentication Devdas Bhagat (Jun 21)
- RE: one-time password (OTP) authentication Lyal Collins (Jun 21)
- Re: one-time password (OTP) authentication Achim Hoffmann (Jun 21)
- Re: one-time password (OTP) authentication Devdas Bhagat (Jun 21)
- RE: one-time password (OTP) authentication Lyal Collins (Jun 19)
- RE: one-time password (OTP) authentication maburns (Jun 20)