Oh, and here's another one ;-) SSL encrypts everything. This is often a problem for high volume systems where there is only a small chunk of data needing to be hidden.
---- Original message ---- >Date: Wed, 12 Oct 2005 22:02:39 +0200 >From: Werner Punz <[EMAIL PROTECTED]> >Subject: Re: t:saveState server/client ... or request/session >To: users@myfaces.apache.org > >Ok sorry did not think of that anymore, understandable after >13 hours of coding ;-) > >Werner > > >Mike Kienenberger wrote: >> Werner, >> >> We're talking about encryption of the client state data at the client, >> not of the data channel between the client and the server. Right now, >> an end-user can do a view-source, then Base64 decode the state tree >> field to see all stored data. Depending on what the application is >> doing, this could contain sensitive information. It's a >> recommendation of the JSF 1.2 spec to encrypt this data. >> >> On 10/12/05, Werner Punz <[EMAIL PROTECTED]> wrote: >> >>>I do not think encryption is that important, signing probably yes, >>>but if you want encryption you always can switch to a ssl layer which >>>is easier to handle. >>> >>> >>> >>> >>>Mike Kienenberger wrote: >>> >>>>I did a search on the JSF 1.2 spec, and the four references to >>>>encrypting are all vague and general ("It is advisable that this >>>>[client saved state] information be encrypted and tamper evident, >>>>since it is being sent down to the client, where it may persist for >>>>some time."), so we're on our own here. >>>> >>>>There's a few different approaches. The first is to simply generate >>>>a new key on startup and effectively expire all sessions when the >>>>server is restarted. It's not a bad "first draft" implementation. >>>>However, it won't work in clustered environments nor across restarts. >>>> >>>>Saving the key in each session might work. The environment may >>>>preserve server-side sessions across restarts, depending on the >>>>configuration. >>>> >>>>Another approach is to find some centralized location to store the >>>>encryption key. I'm not really sure what's available. Maybe a file >>>>in "temp", and that has its own security concerns, but those are >>>>probably subordinate to client-side state saving concerns. >>>> >>>>As you stated, you could also store the key in the application as an >>>>unchangable attribute. Maybe that's not a bad way to go either, but >>>>if that were the case, I'd like to be able to store it as a JNDI >>>>property. I'd be a bit concerned about keeping the same key forever. >>>> I think some "random" data would need to be padded into the state >>>>values, especially for shorter state values, in order to keep the >>>>encryption secure. >>>> >>>>I'd also like to recommend that the data is signed rather than just >>>>encrypted. For me, having a cryptologically-signed state is more >>>>important than encrypting the state. I'm not concerned that the >>>>end-user can read the state (after all, most of the state is visible >>>>in another form already). I just don't want the end- user to be able >>>>to modify it. >>>> >>>>On 10/11/05, Dennis Byrne <[EMAIL PROTECTED]> wrote: >>>> >>> >>> >> > Dennis Byrne