Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Microsoft

Analysis of Passport Flaws 174

An anonymous reader sent us an excellent (and technical) paper describing problems with Passport its not lame anti ms rhetoric, its actually a well written technical assesment of security problems with the unified login that passport aims to achieve. This is a good read.
This discussion has been archived. No new comments can be posted.

Analysis of Passport Flaws

Comments Filter:
  • by sfe_software ( 220870 ) on Sunday August 05, 2001 @12:43PM (#2111459) Homepage
    As has been pointed out, you can't have literal '/' or '?' in the username portion of the URL (that before the @)... I didn't realize this before, so it does make it a little more difficult.

    Using %-encoding would work for hovering over the link, but not what's shown in the address bar of the browser after the link is clicked.

    On another note, something else the article mentioned was DNS spoofing. One quick way to do that would be to sign up at some large ISP to host "passport.com", and hope that the signup process is automated. Then, for users of that ISP (or rather for users of their name servers), passport.com would resolve to your webserver, assuming that ISP uses the same DNS servers for both authoritive and non-authoritive requests.

    Of course, this would be difficult to pull off, but I'm sure with some creative thinking it could be done. I've seen domains resolve to the wrong host many times due to similar tricks (intentional or otherwise). We once had "firefly.com" (coincidently an MS-owned domain) in our DNS thanks to automated signups for domain hosting; luckily, we only served authoritive requests (we were a webhost, not an ISP).

    - Jman
  • by Nightlight3 ( 248096 ) on Sunday August 05, 2001 @09:36AM (#2114146)
    Probably not, but a secure single sign on would be nice, if the proper privacy and security issues can be addressed.

    It might "be nice," but for whom?

    Why does this info need to be on an external machine at all (other than helping Microsoft or government bureaucrats)? A browser (or an add-on) could do all that with a locally encrypted database (which can be copied or synchronized with, say, your laptop) and you don't have to expose your personal info and browsing habits to some central agency to collect, track and correlate. It need not essentially be any different than the list of bookmarks bookmarks or email addresses we already use. If you have multiple machines, you copy your bookmarks or email address book to other machines.

    The commonly parroted "Passport rationale" could be equally applied to browser bookmarks or email address book and, if it had any merit, we would already have our bookmark lists and email address books on the Microsoft servers to use as they wish. We don't keep them there. And the same will apply to the Passport scam.

    So, could you explain, where is the gain for the user (not Microsoft or government bureaucrats) in keeping personal info on Microsoft servers, and how does that same reasoning fail to apply to your bookmarks or email address books.

  • by CTho9305 ( 264265 ) on Sunday August 05, 2001 @08:53AM (#2114966) Homepage
    I think it would work better... it solves ALL problems listed except for poor passwords. However, the "average" user will never remember a password that is any good - and will demand some "remember my login" feature. This combination ensures INsecurity. Until people are willing to remember a short (6+) character sequence, and are willing to type it in (and change it periodically, there can be no good security (using passwords). The main disadvantage to kerberos is that most browsers do not inherently support it - you need plugins and sometimes a completely separate application.
  • Comment removed (Score:2, Interesting)

    by account_deleted ( 4530225 ) on Sunday August 05, 2001 @09:56AM (#2115582)
    Comment removed based on user account deletion
  • Hailstorm. (Score:3, Interesting)

    by slashkitty ( 21637 ) on Sunday August 05, 2001 @08:43AM (#2116696) Homepage
    Yes, some sites use Passport now, but soon, many many sites may be using it in combination with Hailstorm. This posses more problems as well. More users will be using it. They will have to use it more often. More data will be stored accessible with a Passport login.

    Many people agree that this is the start of Microsoft's goal of "collecting a toll on every transaction on the internet". As others have suggested, upcoming versions of MS server software will make it easier and easier to use Passport when building web services. At the same time, they will make it harder not to use it... Adding more hoops to go through to set up something else... Like how they are removing Java from XP: one more hoop to to through to run Java.

    As you can see, any security flaws in Passport could become a huge problem. Couple this with things like Sircam and CodeRed worm, and you have something that could drain bank accounts and do stock trades for you.

  • by emin ( 149044 ) on Sunday August 05, 2001 @12:12PM (#2117823) Homepage
    Although I don't know much about the design decisions involved in implementing passport, I don't see why they don't use a zero-knowledge protocol (ZKP). Basically a ZKP is a way for Alice to prove to Bob that a certain claim, C, is true. Furthermore, under certain assumptions (e.g. factoring is hard, graph-isomorphism is hard, etc.) you can prove that Bob doesn't learn anything beyond the fact that C is true.

    How would this be used for authentication? I generate an instance of a hard problem, P, along with a claim, C, which I only I can prove. I publish (P,C) as a type of public key. If I want to prove to slashdot or Hotmail that I am me, I use a ZKP to prove C thus authenticating myself. Since I used a ZKP, even though slashdot now knows C is true, slashdot doesn't know how to prove C itself. So slashdot can't pretend to be me when talking to Hotmail (unless slashdot can factor or solve my chosen hard problem).

    Some benefits of using a ZKP include:

    • I only need to log into my computer with a single passphrase and then my computer can use a ZKP to convince all the other web sites of my identity.
    • The system is provably secure under certain assumptions.
    • No central authentication server has a list of passwords or other information it can use to impersonate me.
    • Since no central authentication server is necessary, the authentication prover (i.e. the program that runs on my computer to prove who I am) and the authentication verifier (i.e. the program that runs on slashdot to check my identity) could be implemented by different companies. Thus you could use an open source prover with an MS verifier allowing interoperability.

    So my question is why doesn't MS use a zero-knowledeg protocol to implement passport? Is this type of idea patented, or are there are other issues such as security, speed, etc.? I'm not trying to bash MS since I know that they have some pretty smart people there I'm just trying to find out why they didn't use ZKP.

    I suspect the answer is because a ZKP based system would probably be easy to clone by open source people or other companies. On the other hand, passport seems to give them significant business advantages at the cost of security, interoperability, elegance, etc.

  • Security Flaws (Score:2, Interesting)

    by lavaforge ( 245529 ) on Sunday August 05, 2001 @08:40AM (#2120154)
    If found this following quote interesting: "Presumably, the Hotmail logout button is used to remove the Hotmail credentials, while the Passport signout button is used to remove the Passport credentials to all services. While this may be clear to computer security experts, it is unlikely that the average non-expert computer user will understand the distinction."

    This is a bit unusual; most of Microsoft's various 'innovations' are renowned for their user interface, and here we have the interface acting as a potential security flaw.

    Who wants to place bets on how long it will take before somebody starts harvesting ID's from the local libraries?

  • by j-beda ( 85386 ) on Sunday August 05, 2001 @08:35AM (#2121100) Homepage
    Do we really *need* Passport?

    Probably not, but a secure single sign on would be nice, if the proper privacy and security issues can be addressed. I think that XNS [xns.org] has a chance of doing this type of thing better than any of the closed source alternatively like Passport.

  • by Godwin O'Hitler ( 205945 ) on Sunday August 05, 2001 @10:32AM (#2126179) Journal
    Passport can be as watertight as a duck's arse or as full of holes as a sieve for all I care. For me the only question is, why the hell would I choose Microsoft as my sole broker in the first place? - I haven't as far as I'm aware gone stark raving nuts yet!

    It seems likely that some if not a lot of people are going to use the passport service outside of hotmail. It seems likely that some or a lot of them are going to regret it. While I don't wish those people any harm, they could be well the ones who bring this latest Microsoft ruse to a speedy end.

  • by sfe_software ( 220870 ) on Sunday August 05, 2001 @09:58AM (#2126326) Homepage
    The article mentions the possibility of one registering pasport.com (note the missing 's') to fool users into giving their username/password to the wrong site. A much easier way would be to redirect the user to a URL like this:

    https://www.passport.com/very/long/path@evilhacker .com

    Crafted to look like a legitimate Passport login URL before the '@'. Then, put a passport spoof site at evilhacker.com. Everything before the '@' is ignored, and the user will simply see a long passport.com URL in the address bar. The browser actually connects to evilhacker.com.

    So it's much easier than the article describes to trick a user into providing credentials to the wrong site; all that is needed is an SSL cert, a copy of the Passport login screen, and a clever URL...

    As the article notes, users won't check the cert (as long as it's valid and doesn't give a warning). They'll just type in their username and password. Even if they glance at the address bar, most users won't have any clue about the '@' trick, and if the URL is long enough they won't even see it.

    Over all, I think the article makes a very good analisys of the problems in Passport (or really any central login system).

    - Jman
  • by Old Wolf ( 56093 ) on Sunday August 05, 2001 @09:32AM (#2127399)
    I have some experience to draw on here. While developing an internet-based payment system [perceptions.co.nz], I had to evaluate various security scenarios. The payment system is a server (Apache+PHP :) with connections to a transaction switch which is connected to a bank; a Merchant shopping site will redirect a customer to the payment page, who will make their payment there, and return a success or failure flag to the Merchant. The Merchant will tally up cash with us or with the banks in their regular settlement.

    The first scenario I decided on and implemented was the similar as what Passport is using, but with the 3DES-key optional (so that Merchants with poor web coders could still participate). For the rest of this discussion, I'll only refer to the version with the DES protection.

    Also, being a payment system,there was only one ever call and one return with results -- not a login and logout process.

    We found that by using various SSL, cookie methods, and so on, we could get around all security flaws, but the downside is that the Merchant has an awful lot of responsibilities, including:

    • Verifying, encrypting and decrypting the 3DES keys
    • Keeping its 3DES key secure...
    • ...which entails keeping its system totally secure from hacking
    • Implementing the rest of the protocol to communicate with the Passport etc. server via cookies
    • Generating cookies that work correctly in any version of any browser (even getting them to work correctly in one browser is a hassle!)
    • Detecting duplicate transactions (for example, J.Hacker does a valid purchase for $1; and records the connection, then comes back later, begins a purchase for $10000, and intercepts the connection and responds with the $1 packet)
    and the list goes on. In the end I decided that while it was a security model that held together, and if I were coding for the Merchant I could do it correctly, but there are many Merchants that would simply fail to do it right, and either have it work buggily or insecurely, or not at all, and then blame the system (or the customers would blame the system).

    It's easy to say "Well, they should do it right," but when you've been in the commercial world a while, you realise just how incompetent many companies are.

    In the end, tired of patching up small hole after small hole and writing merchant integration documents, I changed my mind and chose an alternative scheme which may seem harder for Merchants at first, but in fact leaves them as little room for going wrong, even if the transactions run a little slower.

    Conclusion? Hack just one of the merchants involved in Passport, grab their 3DES key, and you're in and untraceable (bar the merchant actually keeping valid authentication logs and being able to follow them; in which case the worst that could happen is that they change their 3DES key). The security will deter script kiddies but a hacker with serious skills will have a field day.

  • by J'raxis ( 248192 ) on Sunday August 05, 2001 @12:27PM (#2138473) Homepage
    Nope. What you have there won't quite work. What you have before the "@" cannot contain literal slashes, among other characters. It can contain %-encoded entities, so you can put the slashes in that way ("%2F") -- most browsers translate this entity back to "/" when displaying the URL on hover.

    Oh, and some browsers have already patched this "semantic attack [ebiz.co.za]."

  • by jilles ( 20976 ) on Sunday August 05, 2001 @10:23AM (#2140821) Homepage
    The situation without passport is even more insecure because:
    - it relies on individual vendors to provide security for communication
    - consumers trust these vendors to do so in most cases
    - any vendor protocol is subject to the same security risks as passport
    - most vendors are script kiddies rather than security experts (i.e. they are quite clueless about implementing proper security)

    Any solution that improves the current situation is a step forward. That being said, the real issue is trust and I am a bit hesitant to trust a commercial company with privacy sensitive information (this is not anti MS, I wouldn't trust Red Hat with it either). The only way I could trust a passport server would be if it were protected by laws making every kind of abuse (including using the information for marketing purposes) illegal AND if it were maintained by an organization (preferably governmental) that has no interest in abusing this information. MS fails both requirements.

    Interestingly, laws for the first requirement exist in some countries. It wouldn't surprise me if MS would run into legal trouble at some point for violating such privacy protecting laws.

Software production is assumed to be a line function, but it is run like a staff function. -- Paul Licker

Working...