WebApp Sec mailing list archives
Password Recovery (long) was Re: "Forgot Password" function
From: Charles Miller <cmiller () pastiche org>
Date: Sat, 19 Oct 2002 21:42:32 +1000
On Saturday, October 19, 2002, at 07:44 AM, Brecrost Jones wrote:
First off, thanks to everyone for their responses!The above outlines perfectly the issue I am worried about, and that is the inherent insecurity of any email-based solution.
This is the start of a more formal examination of the topic. A lot of it is reiterating things from other emails, but I thought I'd collect them all together.
Work in progress: ================= Password RecoveryBy: Charles Miller, acknowledging input from David Bullock, Kevin Spett, Haroon Meer, Jeroen Latour, Chris Shepherd, Bill Smith and Brecrost Jones
=================Password recovery becomes necessary when the user of a system is no longer able to authenticate themselves because they have lost or forgotten their
password. Any systems that require authentication will need to have some policy or procedure for password recovery.The simplest policy is: "Password recovery will not be performed." When combined with a policy that locks inactive accounts, it is also the most secure approach. Users who lose their password are required to repeat the registration process and acquire a new identity. The user will lose their previous identity and any saved information, and the cost of annoying your more careless users must be offset against any benefits in security and simplicity.
If the "no recovery" policy is impossible, then there are two forms of recovery mechanism that may be implemented in some combination:
o Communicating a secret with the user over some pre-arranged secure
channel, and having them use that to re-authenticate. o Providing a secondary means of authentication for the purpose of recovering or resetting the first.In a controlled environment, the second is the most popular. In a corporate environment, the user presents themselves to their manager or IT department, who verifies they are who they say they are, and resets their password. (Of course there's also the "secure channel" of how the IT department communicates the new password to the user, but that's trivial once the authentication has occurred.)
I will assume here that the password recovery is being applied in a situation where the users of the system are customers or clients, and can not be readily identified in this manner.
Good Practices: o When recovering a password, always assign, or require the user to choose a new password. - You shouldn't be storing unhashed passwords anywhere anyway - If the recovery procedure is compromised, the real user will be unable to log in. This makes it easier to detect fraud. o (obviously) log all recovery attempts o Only allow recovery once within a particular time-period (three months) Subsequent recovery attempts will result in a direction to call customer service, where a rep will manually perform the recovery procedure. - When the user calls, the rep can guarantee that the previous recovery attempt was genuine. - It's an opportunity to educate the user. Things to Consider: o Is the process automated, or does it require human intervention? o If the process requires human contact, are you ready to deal with users from other countries, or who do not speak the same language as you? o To what degree can you inconvenience your users before they decide not to bother? Is it a problem if they do? o What steps can you take to make sure the users don't forget their passwords in the first place? In Person =========Obviously, the best thing to do is to have the user physically present themselves to you with 100 points worth of photographic identification. This is a form of secondary-authentication recovery, and is very secure. Like all optimal solutions, this is generally impossible in a web environment, and is a particular inconvenience to users.
That said, if you need security, and you have the luxury of physical offices near the vast majority of your customers (I'm thinking of banks and government departments here), this is worth thinking about.
Advantages: o Best, legally defensible security. o In case of fraud, you might remember what they look like Disadvantages: o Requires human intervention in all cases. o Requires user to take time out (during business hours) to do the recovery. o May be difficult or impossible dependent on user's distance from your offices. Faxed Documentation ===================Another form of secondary authentication, the user does not present themselves, but transmits a facsimile of some kind of official identification such as a passport or drivers license.
Good Practices: o Keep a copy of the identification on file from signup-time, to be compared in the event of recovery. - ID documents look different from state to state and country to country. Unless you have some idea what it _should_ look like, you can easily be fooled by a competent graphic artist. Advantages:o So long as the identification is on file, this is pretty secure, as an attacker must be a competent forger, and know the correct serial
numbers for the documents. If not, this is easily defeated by a committed attacker. Disadvantages: o Requires human intervention in all cases. o User must have access to a fax machine. o Digital forgery is possible, and masked by the quality of the fax.o Identity documents are replaced or renewed, so some secure mechanism
for replacing the filed ID is necessary.o Does not cover how to get the new password to the user after they've
identified themselves over the fax. Simple email ============e-mailing the password to the user's registered address is the most common form of recovery on public websites. It is a weak form of "secure channel" recovery, where it is assumed the path between the server and the user's email client is secure. Of course, this assumption isn't particularly defensible, but the process requires almost no human intervention, and is "secure enough" for most applications.
Good practices:o Send the user a one-time password, based on the user's password hash and a timestamp. That way, the recovery password can only be used until the main password is changed, and can be expired if not used for 24 hours.
- The email does not become a security problem if it's archived. Advantages: o highly automated o familiar, and very easy for the user to understand o Attacks rely on compromising some part of the communications chainbetween server and user. Thus, targetting an attack against a particular
individual requires some effort. Disadvantages: o vulnerable at every point that the email could be intercepted o users may not understand that by sharing their email account with family members, they are making passwords availableo susceptible to opportunistic attacks - once an attacker has access to any mailserver, they can methodically break the accounts of all users
of that server.o if the mailserver or gateway from which the recovery mails originate is
compromised, it's game over for everybody. Encrypted Email ===============A secure channel method, sending an email encrypted with some secret only known to the customer is possible, but is sufficiently impractical that it only deserves one sentence here.
Question and Answer ===================Another form of secondary authentication. When registering the account, the user records some personal information. To recover the password, the user must answer questions based on this personal information, either to a web page, or over the phone to a representative.
The questions and answers become a shared secret, a form of secondary password. Remember how we warn people not to base their passwords on their names, pets names or dates of birth? The security of this technique varies based on the choice of questions: the ease of an attacker guessing the questions, and the ease of researching the answers. It's amazing how many institutions believe that your date of birth and your mother's maiden name are sufficiently obscure to protect your bank account.
One implementation would be to request the information that was supplied during registration, such as address, phone number and credit-card details. This sort of information may, however, be quite easy for an attacker to come across or socially engineer.
Properly managed, this technique is more secure than e-mailing the password in the case of generalised or opportunistic attacks. However, due to its susceptibility to research, it is less secure against targetted attacks.
Good Practices: o Have a large pool of questions, of which the user only has to answer a subset during signup/recovery. - The more questions in the pool, the more research an attacker must do. - On the other hand, having a set of 50 personal questions in the sign-up process will scare people away. o Some systems allow the user to choose the questions as well. Thisis a bad idea, as users don't understand security, and will either make things too easy for an attacker to guess, or too hard for themselves
to work out what the hell they were thinking, six months hence. o If the process is not automated, and for some insane reason youhave the original password on file, "What did you think the password
was?" can be an effective question. Advantages: o Less susceptible to opportunistic attacks than mailed passwords. o Still able to be automated, or performed by untrained employees following scripts and exercising next to no personal judgement. Disadvantages: o Hard to come up with a good set of questions. o The better the attacker knows the target, the less secure it is.Unless the questions got _very_ personal, my brother could probably
answer 90% of them for me. o Users may consider personal questions to be an intrusion.o The answers may not be easy to match automatically, leading to false
rejections. Callback ========Another secure channel method. The user makes a request for a new password, and some human being from the company calls the user on their registered phone number, and delivers the new password over the phone.
This method can be combined with "Question and Answer" for a pretty effective recovery system. It mostly limits attacks to friends and family (who have access to the telephone and the personal information), and since the time of the call is logged and the attacker has to talk to the representative, it's easier to trace fraud.
Advantages: o When combined with Question and Answer, is probably the most effective method after faxed identification. Disadvantages:o Company bears the cost of phone calls, which might be difficult if you
have international users. o Quite resource-intensive.
Current thread:
- "Forgot Password" function Brecrost Jones (Oct 18)
- Re: "Forgot Password" function David Bullock (Oct 18)
- Re: "Forgot Password" function Kevin Spett (Oct 18)
- Re: "Forgot Password" function Haroon Meer (Oct 18)
- Re: "Forgot Password" function Jeroen Latour (Oct 18)
- Re: "Forgot Password" function Chris Shepherd (Oct 18)
- Re: "Forgot Password" function Kevin Spett (Oct 18)
- <Possible follow-ups>
- Re: "Forgot Password" function Mark Curphey (Oct 18)
- Re: "Forgot Password" function Kevin Spett (Oct 18)
- Re: "Forgot Password" function Brecrost Jones (Oct 18)
- Password Recovery (long) was Re: "Forgot Password" function Charles Miller (Oct 19)
- Re: Password Recovery (long) was Re: "Forgot Password" function Sverre H. Huseby (Oct 19)
- Re: Password Recovery (long) was Re: "Forgot Password" function Charles Miller (Oct 19)
- Password Recovery (long) was Re: "Forgot Password" function Charles Miller (Oct 19)
- RE: "Forgot Password" function wsmith (Oct 18)
- RE: "Forgot Password" function Matthew_Chalmers (Oct 19)
- RE: "Forgot Password" function William Bartholomew (Oct 20)
- Re: "Forgot Password" function Kevin Spett (Oct 20)