FW: BRUTE FORCE FLAW in .NET Passport "Change Password" utility

From: Lawrence Garvin (LGARVIN) (lgarvin_at_EFOREST.NET)
Date: 06/29/03

  • Next message: Russ: "SP4 problems"
    Date:         Sat, 28 Jun 2003 19:05:34 -0500
    To: NTBUGTRAQ@LISTSERV.NTBUGTRAQ.COM
    
    

        Well, I shared this with Microsoft. From the verbage in their reply,
    which took them a whole week to work up... they're of the opinion that this
    is no big deal.

        Maybe it's not a big deal... but it certainly violates every fundamental
    principal of how to write a "login" interface that I've read in the past
    twenty years.

        To summarize. In the .NET Passport "Change Password" utility -- if one
    chooses this utility, first they are prompted to enter their State and Zip
    Code, having already been supplied with the account name and country. I'm
    not sure what functional verification this supports. In my thoughts, it has
    minimal security value, since an account holder's "State" and "Zip Code" are
    hardly "secret" material.

        Then, the next screen, has three fields. The answer to the secret
    question, and two fields to enter and verify the NEW password.

        The user is prompted with their chosen "secret question". In fact, any
    person who correctly guesses the home state and zip code of any .NET
    Passport user, will now be presented with this screen. Microsoft, however,
    doesn't suggest at any time in the .NET Passport registration that this
    "secret question" should be manufactured based on REAL SECRET information.
    When I registered, I created the question "What is my father's middle
    name?". Certainly not readily available information to the average person,
    but also not information that is totally unavailable to somebody that spent
    a few minutes looking. Microsoft doesn't mention that virtually anybody can
    be presented with that question; that the question/answer combination should
    be something that only I know; or that this question/answer combination is
    the only piece of information that permits or denies a person's ability to
    change a password. In fact, Microsoft didn't even respond to my notes about
    that issue.

        But here's the critical issue. Having been presented with this secret
    question, and assuming that the answer to the question is not readily
    available to somebody wishing to compromise an account -- it's quite
    possible for an individual, through brute force methods, to guess the
    correct answer. The problem here is that Microsoft apparently equates "brute
    force" to "automated high-speed methods". Microsoft points out that a user's
    account is "locked" when such attempts happen. I also personally noted that
    such locks expire in only a few minutes.

        Furthermore, if one correctly guesses the answer to the secret question,
    Microsoft actually tells the user they've guessed the correct answer? How is
    this done? Put the proposed answer to the secret question in all three
    fields. If the answer is wrong, Microsoft kindly tells the user that the
    answer is incorrect. If the answer is correct, however, Microsoft replies
    that one cannot have a password equal to the answer to the secret question.

        The fundamental flaw here is that the programmers assumed that nobody
    would want to use the answer to the secret questoin as their password,
    therefore attempting to do so, must be an error. Unfortunately, providing
    the information that the password cannot be the same as the answer to the
    secret question ONLY when the answer to the secret is correct is a serious
    flaw. The correct response is to provide that answer ALWAYS when the values
    are identical, and that test should occur before the answer is evaluated
    against the question. Apparently, Microsoft disagrees.

        Having successfully guessed the correct answer to the secret question
    (assuming one couldn't simply "look up" the correct answer because the user
    chose a poor question to start with), one can now change the password at
    will.

        As is noted from the official Microsoft response, they don't seem to
    think this is a problem, and apparently plan to take no action to change
    anything in the design or implementation of this utility.

        Am I wrong..... or does the Passport community have a serious challenge?

        Lawrence Garvin
        Houston, Texas

    -----Original Message-----
    From: Microsoft Security Response Center [mailto:secure@microsoft.com]
    Sent: Friday, June 27, 2003 8:05 PM
    To: lgarvin@eforest.net
    Cc: Microsoft Security Response Center
    Subject: RE: BRUTE FORCE FLAW in .NET Passport "Change Password" utility
    !!!!! IMMEDIATE RESPONSE IMPERATIVE!!!! [pz]

    Dear Mr. Garvin;

    Your feedback is well-taken and very much appreciated. However, if my
    understanding of your concerns is correct, they do not appear to be
    vulnerabilities in the Passport password reset system.

    I have isolated some quotes from your mail that appear to be your main
    concerns and copied them below, along with some information from our side
    that will hopefully help alleviate them.

    "So here's the fundamental FLAW in this screen. If one enters the SAME WORD
    for the Secret Question and the NEW PASSWORD fields, and the ANSWER to the
    Secret Question is incorrect, one gets a notice that the answer was
    incorrect."

    No unauthorized account information can be viewed or changed until the
    answer to the secret question has been verified. Therefore, any entry in the
    "New Password" field is not considered until the correct answer to the
    secret question is entered. The informative error message is used to help
    our customers understand why they were not granted access to their account
    -- regardless of their level of technical knowledge or experience.

    "If one actually gets the CORRECT ANSWER to the "Secret Question", the .NET
    Passport "Change My Password" utility actually tells the user that they
    GUESSED the correct ANSWER to the "Secret Question"!!! Specifically it
    responds in big red type: Your password cannot be a part of your secret
    answer. The message itself really isn't the problem, except that this answer
    only appears when the answer to the "secret question" is CORRECT!"

    The secret question & answer system is a means of identifying a user as the
    owner of a specific account (like a password). This system allows our
    customers to employ a very high level of security on their account by using
    a secret question that is very difficult for anyone else but them to answer
    correctly. As with a password, however, the answer to the secret question
    must be guarded. In order for someone to receive the "new password" error
    message you mentioned above, they would have to already know the correct
    answer to the secret question.

    Lastly, you mentioned a concern about the potential effects of a "brute
    force" attack on this tool. We have employed several countermeasures to help
    combat such attacks. For instance, one method we use is to temporarily
    suspend a Passport account after a certain number of sign-in attempts to
    that account have failed. This, and other security measures are already in
    use, and are reviewed and updated on a regular basis.

    Please be assured that protecting our customers is our top priority. We
    appreciate you taking the time to bring your concerns to our attention.

    If you have further concerns or comments, please feel free to send them to
    us at SECURE@MICROSOFT.COM.

    Many thanks once again;

    Paul

    -----Original Message-----
    From: Microsoft Security Response Center
    Sent: Tuesday, June 24, 2003 10:09 PM
    To: 'lgarvin@eforest.net'
    Cc: Microsoft Security Response Center
    Subject: RE: BRUTE FORCE FLAW in .NET Passport "Change Password" utility
    !!!!! IMMEDIATE RESPONSE IMPERATIVE!!!! [pz]

    Dear Mr. Garvin;

    Thank you for contacting the Microsoft Security Response Center regarding
    your security concerns. We will investigate these concerns, and update you
    with our findings shortly.

    Please feel free to reply to this mail with questions or further input about
    this matter.

    Thank you again -

    Paul
    secure@microsoft.com <mailto:secure@microsoft.com>

    -----Original Message-----
    From: Lawrence Garvin (LGARVIN) [mailto:lgarvin@eforest.net]
    Sent: Friday, June 20, 2003 8:04 PM
    To: Passport Privacy Questions; Security - Corporate Security Services
    Subject: ITG: BRUTE FORCE FLAW in .NET Passport "Change Password" utility
    !!!!! IMMEDIATE RESPONSE IMPERATIVE!!!!

            Ahh.. A REAL email address.... Much better than those stupid
    web-based forms which seem to have limits on the number of characters in the
    message, which makes it impossible to relay the whole story.

            Since this seems to be the ONLY email address published on the NET
    Passport web site, would you kindly forward this message to the people who
    handle SECURITY for .NET Passport Services. I'm sincerely hoping they'll be
    interested in this issue. Just as a shot in the dark, I've also copied this
    message to 'security@microsoft.com' -- maybe the obvious email address will
    get this where it needs to go also.

            The .NET Passport "Change my password" utility has a Brute Force
    FLAW in it's implementation, and should be reprogrammed immediately. In
    fact, it probably ought to be redesigned, since the DESIGN of the "Change my
    password" process is about as lame as any security process for
    self-modification of a password that I've seen in over twenty years in the
    industry.

            After supplying the State and Zip Code for a given Passport account
    (in this case mine, but certainly not secret information to anybody who
    wishes to compromise a Passport account), the next screen appears, inviting
    the user to answer their "secret question" (the question being automatically
    provided), and enter their new password.

            In effect, the ONLY thing in this entire process that "protects"
    somebody from changing the password of a Passport account, is knowing the
    ANSWER to the "secret question". Unfortunately, the sign-up web pages do a
    very POOR job of describing to the user that Microsoft really means this to
    be a SECRET question.. One that only the respondent would ever know the
    answer to. In my case, I chose the question "What is my father's middle
    name?" In reality, there are probably only six people in the entire world
    that know my (deceased) father's middle name from memory. Nevertheless, it
    is a matter of public record for somebody who really wanted to find it.
    Complicate that with the fact that this is on the account
    "lawrencegarvin@msn.com" -- how many Lawrence Garvin's do you imagine there
    are in the United States?

            So here's the fundamental FLAW in this screen. If one enters the
    SAME WORD for the Secret Question and the NEW PASSWORD fields, and the
    ANSWER to the Secret Question is incorrect, one gets a notice that the
    answer was incorrect. Now, for as long as people have been writing security
    handbooks about usernames and passwords, it's been generally accepted best
    practice not to tell the user what part of their answer was incorrect --
    but, here we see, .NET Passport does exactly that!

            But that's not even the part I'm writing about. If one actually gets
    the CORRECT ANSWER to the "Secret Question", the .NET Passport "Change My
    Password" utility actually tells the user that they GUESSED the correct
    ANSWER to the "Secret Question"!!!

            Specifically it responds in big red type: Your password cannot be a
    part of your secret answer. The message itself really isn't the problem,
    except that this answer only appears when the answer to the "secret
    question" is CORRECT!

            Now.. How much of an effort, via brute force techniques, do you
    imagine it would take for many of the .NET Passport clients to identify the
    correct answer to the PUBLISHED "Secret Question"??? All one has to do is
    identify the correct ANSWER to the Secret Question, change the password, and
    PRESTO! -- the account is permanently compromised.

            Recommendation for changes:

            1. Assuming the utility is not redesigned (which it should be), at
    a minimum, ANYTIME a user enters an answer to the "secret question" that is
    identical to the value entered in the password field, the preceding error
    message should be displayed, including if the answer to the "secret
    question" is INCORRECT!

            2. Redesign the utility.

                    a. Ask the user for the answer to the "secret question" --
    but provide no additional blanks to fill in.

                    b. Additional enhancement -- require the user to SELECT the
    correct "secret question" from a list of four or five possible choices
    BEFORE providing the answer.

                    c. AFTER identifying the correct answer to the "secret
    question", display a SECOND SCREEN to enter the new password.

            Please respond to this message upon initial receipt, upon advisory
    that it has been forwarded to the appropriate people, as well as advice that
    the security flaw will be fixed.

            In the event that I do not receive a response from Microsoft by the
    30th of June, it is my intend, in conformance with the philosopy of "full
    disclosure", to post this "brute force" flaw to the appropriate mailing
    lists at SecurityFocus.

    _________________________________________
    Lawrence Garvin
    Principal/CEO
    Onsite West Houston
     <http://onsite.eforest.net> http://onsite.eforest.net
    ICQ#: 38440195
    _________________________________________

    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
    Are You "Certifiable"? Summer's Hottest Certification Just Got HOTTER!

    With a growth rate exceeding 110%, the TICSA security practitioner
    certification is one of the hottest IT credentials available. And now, for
    a limited time, you can save 33% off of the TICSA certification exam! To
    learn more about the TICSA certification, and to register as a TICSA
    candidate online, just go to

    http://www.trusecure.com/offer/s0100/

    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo


  • Next message: Russ: "SP4 problems"

    Relevant Pages

    • Re: I cant get my Password Back :(
      ... and he changed my secret question and ... On the .NET Passport Member Services page ( ... Now either answer your secret question to reset or leave everything ...
      (microsoft.public.security)
    • Re: is trading...
      ... How about 'my ISP account got stolen';-) ... Kind of hard unless you have dail-up I guess. ... secret question to get your password back. ... name" or "mothers maidens name" questions many mail services seem to ...
      (alt.games.warcraft)
    • Re: WoW CD Key Extraction
      ... So I called Blizzard EU today and they ... give me the "secret question" answer over the phone because when i set ... never forget my account password and i didn't want it to be a security ...
      (alt.games.warcraft)
    • Re: is trading...
      ... How about 'someone stole my flat and uses my ADSL' ... secret question to get your password back. ... one and I can't find it in my account details. ... name" or "mothers maidens name" questions many mail services seem to ...
      (alt.games.warcraft)
    • Re: Anyone else get this note from eBay?
      ... The simplest way to verify is to "view source" of the email. ... I recently did get some weird emails from my own account ... > offers to sell items outside of eBay. ... > new secret question and answer. ...
      (rec.music.makers.percussion)