I strongly recommend that this topic be posted to derby-user for comment.
Afterall it is their applications that will be impacted should the secure by
default be implemented.  For my part I agree with Kathey, leave the default
as the old behavior (especially for embedded) and strongly recommend that
groups that do not already secure derby at the application level set
SECURITY = ON (or whatever the flag may be).  My experience is that Derby is
not broken in this regard so it need not be fixed.  However, making it very
easy to turn on all the security features is an excellent ease of use
enhancement and I support this.  Had this thread been taken to derby-user
you I would have responded earlier.

Regarding Derby embedded.  The 100+ product release teams I work with that
bundle embedded Derby do so because of it's ease of use.  The embedded Derby
system is protected by the application level security that protects the
larger system.  The teams see elegance in this simplicity, it sets Derby
apart from most other systems.  Many teams have used Derby since version
10.3 and greatly appreciate the simplicity of moving from one version to
another.  It won't be the end of the world should these teams have to add an
additional property to maintain original behavior but some will ask why the
old behavior was not the default. Without taking this to the derby-user
group can the development community say they did due diligence in making
this decision?

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
From: Kathey Marsden <kmarsdende...@sbcglobal.net>
To: derby-dev@db.apache.org
Date: Tue, 13 Sep 2011 15:29:30 -0700
Subject: Re: making Derby secure by default
On 9/13/2011 10:57 AM, Rick Hillegas wrote:

> 2c) To ease the migration to 11.0, it might be possible to add a single
> knob which lets an application opt-out of the 11.0 defaults and instead run
> with the 10.x security defaults.
>
>  I think a single knob is a good idea but the default should be off to
preserve backward compatibility and the zero admin aspects of the product at
this time.   Warnings and education can be used to coax users to transition
and then maybe after multiple releases with the knob the default could be
changed and the major version changed if there is enough experience with the
super knob to understand all the steps that have to be taken in addition to
turning it on.


Concerning topic (1), it seems to me that the biggest hurdle to building a
secure-by-default Derby is our lack of user management. The BUILTIN security
mechanism has many defects which make it unsuitable for use in production.
Here is my short list of security features which I think that we should
build:

o DERBY-866: Derby User Management Enhancements

o DERBY-2133: Detect tampering of installed jar files in an encrypted
database

o DERBY-2206/DERBY-2250/DERBY-22
>
> 53/DERBY-2252: Provide complete security model for Java routines
>
> o DERBY-2363: Add initial handshake on connection setup to determine
> server's required ssl support level and avoid client side attribute
> settings.
>
> o DERBY-2436: SYSCS_IMPORT_TABLE can be used to read derby files
>
> o DERBY-2470: No authentication required to restore a backup
>
> o DERBY-3333: User name corresponding to authentication identifier PUBLIC
> must be rejected
>
> o DERBY-3495/DERBY-3476/DERBY-2109: Enable System Privileges checks
>
> o DERBY-4354: Make it possible to grant java permissions to user jar files
> that are stored in the database
>
> o DERBY-5400: Toggling of network tracing should be protected by requiring
> the user to specify the credentials of the system administrator.
>
> o DERBY-5401: The NetServlet should require system administrator
> credentials in order to perform its operations on a server which requires
> authentication.
>
> I would appreciate your thoughts about this proposal.
>
> Thanks,
> -Rick

Reply via email to