It appears HtmlResponseStateManager uses jsf_tree *OR*  
jsf_tree_64 .  Can anyone give me a high level idea about the 
different circumstances that would affect this?  For example, 
when does SerializedView.getStructure() return a String?  

Likewise, for jsf_state and jsf_state_64.


---- Original message ----
>Date: Wed, 12 Oct 2005 15:57:59 -0400
>From: Mike Kienenberger <[EMAIL PROTECTED]>  
>Subject: Re: t:saveState server/client ... or 
request/session  
>To: MyFaces Discussion <[email protected]>, 
[EMAIL PROTECTED]
>
>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

Reply via email to