You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Daniel John Debrunner <dj...@apache.org> on 2008/02/07 18:46:27 UTC

Re: Protecting system properties

John Embretsen wrote:

[lots of good comments snipped]

> We, as Derby developers, should strive to keep the sensitivity of the
> information stored as (derby) system properties to a minimum. For 
> example, we
> should recommend against defining usernames and passwords in cleartext 
> as system
> properties (especially in scenarios where remote JMX is enabled), and 
> should
> provide better alternatives to the users.

A better alternative already exists today. Derby system level properties 
can be specified in derby.properties, none of these values are then set 
as JVM system properties, and thus they will not appear to any standard 
jmx bean.

Exposing these (or a security conscious subset of them) through Derby's 
SystemMBean is fine, though I'm not sure that's what is being proposed 
by the jmx changes. I.e. does SystemMbean just display the value of the 
jvm system property or the value that derby is using (set as a jvm 
system property or in derby.properties)?

Dan.



Re: Protecting system properties

Posted by "John H. Embretsen" <Jo...@Sun.COM>.
Daniel John Debrunner wrote:
> John Embretsen wrote:
>
> [lots of good comments snipped]
>
>> We, as Derby developers, should strive to keep the sensitivity of the
>> information stored as (derby) system properties to a minimum. For 
>> example, we
>> should recommend against defining usernames and passwords in 
>> cleartext as system
>> properties (especially in scenarios where remote JMX is enabled), and 
>> should
>> provide better alternatives to the users.
>
> A better alternative already exists today. Derby system level 
> properties can be specified in derby.properties, none of these values 
> are then set as JVM system properties, and thus they will not appear 
> to any standard jmx bean.

Yes, this is a good thing. Still not optimal, but it certainly helps. We 
could probably be more explicit about the differences in the manuals.

> Exposing these (or a security conscious subset of them) through 
> Derby's SystemMBean is fine, though I'm not sure that's what is being 
> proposed by the jmx changes. I.e. does SystemMbean just display the 
> value of the jvm system property or the value that derby is using (set 
> as a jvm system property or in derby.properties)?

I think the latter (the value derby is using). I think this is best,
from a usability perspective. (In the SystemMBean, most properties are
fetched using the getSystemProperty(...) method of
org.apache.derby.iapi.services.property.PropertyUtil). What to expose
through our own JMX beans is luckily easier to control than what is
available via platform features.

-- 
John





Re: Protecting system properties

Posted by Rick Hillegas <Ri...@Sun.COM>.
Daniel John Debrunner wrote:
> John Embretsen wrote:
>
> [lots of good comments snipped]
>
>> We, as Derby developers, should strive to keep the sensitivity of the
>> information stored as (derby) system properties to a minimum. For 
>> example, we
>> should recommend against defining usernames and passwords in 
>> cleartext as system
>> properties (especially in scenarios where remote JMX is enabled), and 
>> should
>> provide better alternatives to the users.
>
> A better alternative already exists today. Derby system level 
> properties can be specified in derby.properties, none of these values 
> are then set as JVM system properties, and thus they will not appear 
> to any standard jmx bean.
I think this will be a sensible recommendation to make when we roll out 
JMX-based tools for Derby. Potentially "derby.system.home" will still be 
visible as a system property.
>
> Exposing these (or a security conscious subset of them) through 
> Derby's SystemMBean is fine, though I'm not sure that's what is being 
> proposed by the jmx changes. I.e. does SystemMbean just display the 
> value of the jvm system property or the value that derby is using (set 
> as a jvm system property or in derby.properties)?
>
> Dan.
>
>