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