Extend DPB / Connection String to specify database being it's own security one 
(self-security database)
-------------------------------------------------------------------------------------------------------

                 Key: CORE-5186
                 URL: http://tracker.firebirdsql.org/browse/CORE-5186
             Project: Firebird Core
          Issue Type: Improvement
    Affects Versions: 3.0 RC2
            Reporter: Arioch


In "wild world" use of FB 2.x there are repetitive patterns where central 
security database becomes unavailable.
Occasional FB de-installation, database move to another server, installation of 
another bundled software that removes silently FB and installs its own version, 
etc.
It is not always that FB-using application has a dedicated server and dedicated 
administrator. Being low-footprint and low-maintenance was always a feature of 
IB/FB family.
 
Also for some workloads it would be great to give regular users ability to 
create/fork databases, without giving them root/admin grants over the server 
machine itself to edit database.conf

Security considerations: 
1. If the database file contains authentication data - then it is designed to 
be self-secured and no security hole is added.
2. Different auth-plugins might have different auth-data and the database can 
bear two auth-data sets, for two different plugins (say, after migration from 
one plugin to another). This can be hardened by
2.1. Extending RDB$DATABASE to specify the only allowed, selected auth-plugin, 
or
2.2. Providing a command to purge from the acting security database any 
auth-data for a specified plugin ("revoking" auth-rights from that plugin for a 
specified db) and then enumerating through all available auth-pugins that would 
try to recognize application-given credentials and find ther auth-data in the 
self-secured DB.
3. Some plugins may have no auth-data inside the database, exclusively relying 
on external authentication (like OS-level Trusted Auth).
3.1. If it would be decided to only have one plugin per self-secured DB and to 
extend RDB$Database, then that poses no security risk
3.2. If it would be decided to allow several auth-plugins simultaneously work 
with a self-secured DB then only Trusted Authentication plugin should be 
allowed to work without having explicit auth-data in the target database. Other 
auth-plugins that do not mandatory leave footprints in the security database 
should be demanded to refuse to operate in self-security mode.

It would also be nice if a standard name for Connection String parameter be 
documented for this feature, so different connection libraries ( ADO, ODBC, 
JDBC, Python, Delphi, etc ) - thus different developers and application users - 
would more or less uniformly specify this feature when parsing given settings 
into DPB array.

PS. This ticket is essentially a scaled-down version of over-bloated 
http://tracker.firebirdsql.org/browse/CORE-4641
More rationale and discussion can be found there.
Since this ticket has more narrow focus and less security implication i vote to 
close CORE-4641 (won't do or invalid) and let it remain in archive for 
reference purposes only.

PPS. I hope that there would be 3.0.x or 3.x build that can implement this 
relatively isolated feature, as waiting two more years for 4.0 just to recover 
a minor connection-level feature from 2.x seems a bit long.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to