Adam and Mallory have to stop shopping! =)

this debate has been going on for years, you just caught onto to it now, and I was in it last time, don't plan on participating again. Have fun with it though!!

Filip


George Sexton wrote:
An even simpler case:

Adam visits a banking site. On entering the site he gets a cookie.

Mallory snoops the session ID on the data stream.

Adam then authenticates to read his account information. The application
sets a session attribute (say a bean with the account name and number) on
the session.


Mallory now enters the secure area of the banking site using the forged
session ID.
Poof. Mallory is logged in as Adam.

Poof. Adam is had and his data is there to be stolen, or wire transferred to
another account.



George Sexton
MH Software, Inc.
http://www.mhsoftware.com/
Voice: 303 438 9585
-----Original Message-----
From: George Sexton [mailto:[EMAIL PROTECTED] Sent: Wednesday, February 15, 2006 2:09 PM
To: 'Tomcat Users List'
Subject: RE: Session Expires At Every Request (Tomcat5.0.28/Firefox)



-----Original Message-----
From: Filip Hanik - Dev Lists [mailto:[EMAIL PROTECTED] Sent: Wednesday, February 15, 2006 1:16 PM
To: Tomcat Users List
Subject: Re: Session Expires At Every Request (Tomcat5.0.28/Firefox)

George Sexton wrote:
Does the code transparently create a new JSessionID value then?
George,
you might wanna rethink your comments, they don't shine any light on the issue and they for sure don't state any facts, let me prove
you I am
right. Below is the headers I tracked with LiveHttpHeaders, as you can see, JSESSIONID remains exactly the same in the browser request when the switch from HTTP to HTTPS happens.
And this is an incredibly major trap that lies waiting for every application developer that uses sessions. You see, I have given a great deal of thought
about sessions and what should happen when a connection transitions to
secure, or from secure to non-secure.

Let's take a simple shopping cart app. User Adam visit a site on a
non-secure connection and receives a session. He shops and puts something in
his cart.

Mallory (crypto speak for the person in the middle) monitors Adam's network
stream and picks up the jsessionid from the data stream.

Adam then goes to the check out screen and starts entering checkout data (name, address, and credit card information). To give ourselves a window, assume that Adam then continues shopping or is just slow, or the credit card
processing procedure takes time...

Mallory can forge a request using the JSessionID, and go to the checkout pages. Since Mallory has the same session, all of the information entered by
Adam is now visible.

This is the flaw. This is why sessions should not transition from non-secure to secure, or if they do transition a new ID should be generated and the old session ID invalidated. The session ID is a key into the data store and if the session key has been exposed to the public, then no confidential data
should be accessed using that session key.

I think this should be submitted as a bug.

George Sexton
MH Software, Inc.
http://www.mhsoftware.com/
Voice: 303 438 9585


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to