OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
From: Matthew S. Hamrick (mh_bugtraqcryptonomicon.net)
Date: Wed Oct 03 2001 - 01:46:28 CDT

  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

    Alzo Spracht Mark Curphey:

    > Does anyone know much about the security of this ?
    >
    > http://www-106.ibm.com/developerworks/webservices/library/ws-phtt/?dwzone=we
    > bservices
    >

    <rant>
    In a previous life, I was the manager of Secure Product Development Group at
    the Visigenic division of Borland / Inprise. While many people criticize
    CORBA for being a heavy-weight monstrosity (and in some respects it is,)
    IIOP remains a viable protocol for most middleware configurations. While I
    am not the worlds largest IIOP or CORBA fan, it did seem to work, and with a
    little bit of tweaking, work well. N-Tier models like the one in the httpr
    description are handled very well by protocols like IIOP passing Object
    Requests.

    From the looks of it, the guys who are specifying HTTPR are ignoring all but
    the most basic security concerns. It appears that their idea of security is,
    "just do httpr over ssl." Clearly they have never had to design a real
    system. In the real world, we have lots of different partners at different
    levels of the value chain; information moves from end entity to gateway to
    application to database.

    In the httpr model, each tier in transaction chain is responsible for it's
    own end entity authentication, session cipher negotiation, and secure
    storage of messages in transit. The only mention of security in the spec or
    message board is a paragraph that says, "you're on your own."

    As nasty and blobular as CORBASec is, at least you could specify delegation
    requirements in an interoperable manner. There was also a non-standard
    standard that described how to specify secure storage of object requests in
    transit, and it was interoperable between at least two implementations.

    This may seem like nothing much, but it did allow us to relatively easily
    specify and implement a system like:

    Handset -> Wireless Gateway -> ASP -> Database (at financial institution)

    Where the Handset was authenticated to the Wireless Gateway via WTLS. The
    Wireless Gateway initiated an object request, specified a portion of the
    request to be encrypted under a key negotiated with the back end database
    (i.e. The ASP could not read that portion of the message.) Meta-Information
    about the transaction was bundled with the object request, and sent to the
    ASP. The Gateway was authenticated to the ASP, and the ASP passed along the
    request along with it's own confirmation that the gateway could be trusted.
    When the request was received by the database, it unraveled the whole object
    request, trusting it based on the transitive trust chain back to the
    wireless gateway.

    Granted, WAP and WTLS are poxes upon the face of computing, but, we were
    able to get a financial application running pretty quickly, and were
    confident that there was no malicious message manipulation. If we had taken
    the further step of initiating the object request on the handset, we
    wouldn't have had to inherently trust the wireless gateway.

    So, what's the moral of the tale? Before you try to convert point-to-point
    technologies into n-tier technologies, go and read up on CORBA. There are a
    lot of things wrong with CORBA, not the least of which being that a mere
    human doesn't have a snowball's chance in hell of really understanding how
    everything fits together. However, they did a lot of things right. And if
    you dig into the OMG site deep enough, you'll find an archive of the issues
    people discussed as things were being discussed.

    To make a long story short, if you want a secure n-tier solution, try
    starting with something that was designed to be n-tier and then had security
    bolted on to it (like CORBA.) Don't start with something that was designed
    as a point-to-point protocol, and then had security bolted on to it (like
    HTTPR.)
    </rant>