• last updated 12 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Stronger password hashes for OpenACS

This change introduces the possibility to use either the classical

OpenACS password hash algorithm "salted-sha1" or the SCRAM passord

function "scram-sha-256". The latter can be used by (a) using the

most recent version of NaviServer (from Sept 28, 2021 or newer) and

(b) by configuring the password hash preferences via Kernel package

parameter "PasswordHashAlgorithm". The package parameter can contain a

list of multiple hash algorithms in preference order. The most

preferred available algorithm is chosen.

By default, the "PasswordHashAlgorithm" is "salted-sha1", and the

behavior is as before. After upgrading to the new version of acs-tcl

and acs-kernel, the preference list can be configured. When a user

logs in and the preferred available algorithm is different from the

previously used algorithm, the upgrade is performed for the user

automatically.

The usage of SHA1 in OpenACS is easily target of security audits (see

[1]). The biggest danger is that if somebody gets full access to the

"users" table (e.g. when decommissioning a hard disk). In this case

the hashes can be attacked with dictionaries by using some crypto

hardware (when someone gets raw access to the DB, one has usually some

other big problems). However, by using the "scram-sha-256" hash

function this danger is substantially reduced. This function computes

a password hash using PBKDF2 (Password-Based Key Derivation Function

2). This function is used to reduce vulnerabilities of brute-force

attacks against password hashes. The hash function of SCRAM is PBKDF2

[RFC2898] with HMAC as the pseudorandom function (PRF) and with dkLen

== output length of HMAC == output length of the digest function. So,

it uses a better hash algorithm (sha-256 vs. sha1) and applies this a

high number of times (15K times for a password hash computation).

NaviServer supports as well the even better SCRYPT algorithm, but this

is only available when NaviServer is compiled with OpenSSL 3.0 or

newer. On the contrary, scram-sha-256 (actually PKCS5_PBKDF2_HMAC) is

available since OpenSSL 1.0.0 (2015).

All the improved hash functions require NaviServer with its tight

integration to the crypto functions of OpenSSL.

[1] https://openacs.org/forums/message-view?message_id=5522562

    • -0
    • +47
    ./postgresql/upgrade/upgrade-5.10.0-5.10.1d1.sql
  1. … 5 more files in changeset.
file upgrade-5.10.0d32-5.10.0d33.sql was initially added on branch oacs-5-10.

    • -0
    • +0
    ./oracle/upgrade/upgrade-5.10.0d32-5.10.0d33.sql
    • -0
    • +0
    ./postgresql/upgrade/upgrade-5.10.0d32-5.10.0d33.sql
As we now enforce emails to be lowercase, also sanitize existing data

    • -0
    • +5
    ./postgresql/upgrade/upgrade-5.10.0d32-5.10.0d33.sql
  1. … 1 more file in changeset.
Added constraint site_nodes_parent_id_ck to table "site_nodes" to avoid certain simple loops on parent_ids

    • -0
    • +13
    ./postgresql/upgrade/upgrade-5.10.0d31-5.10.0d32.sql
  1. … 1 more file in changeset.
file upgrade-5.10.0d31-5.10.0d32.sql was initially added on branch oacs-5-10.

    • -0
    • +0
    ./oracle/upgrade/upgrade-5.10.0d31-5.10.0d32.sql
    • -0
    • +0
    ./postgresql/upgrade/upgrade-5.10.0d31-5.10.0d32.sql
added oracle upgrade scripts for new check constraints

file upgrade-5.10.0d30-5.10.0d31.sql was initially added on branch oacs-5-10.

    • -0
    • +0
    ./oracle/upgrade/upgrade-5.10.0d30-5.10.0d31.sql
added constraint acs_objects_context_id_ck to avoid certain simple loops on context_ids

    • -1
    • +10
    ./postgresql/acs-objects-create.sql
    • -0
    • +13
    ./postgresql/upgrade/upgrade-5.10.0d30-5.10.0d31.sql
  1. … 1 more file in changeset.
file upgrade-5.10.0d30-5.10.0d31.sql was initially added on branch oacs-5-10.

    • -0
    • +0
    ./postgresql/upgrade/upgrade-5.10.0d30-5.10.0d31.sql
add explicit cast to all max_n_rels with value null to increase readability and to ease function disambiguation

    • -6
    • +6
    ./postgresql/test/rel-segments-test-types-create.sql
  1. … 3 more files in changeset.
file upgrade-5.10.0d29-5.10.0d30.sql was initially added on branch oacs-5-10.

    • -0
    • +0
    ./postgresql/upgrade/upgrade-5.10.0d29-5.10.0d30.sql
Fix attribute datatype discrepancy

    • -0
    • +9
    ./postgresql/upgrade/upgrade-5.10.0d29-5.10.0d30.sql
  1. … 1 more file in changeset.
white-space changes

    • -84
    • +84
    ./postgresql/utilities-create.sql
add as well support for schema name to util__table_column_exists and util__view_exists

    • -0
    • +65
    ./postgresql/upgrade/upgrade-5.10.0d29-5.10.0d29.sql
address issue #3436: support for schema name in util__table_exists

TODO: Oracle version is missing

    • -0
    • +31
    ./postgresql/upgrade/upgrade-5.10.0d29-5.10.0d29.sql
  1. … 1 more file in changeset.
file upgrade-5.10.0d29-5.10.0d29.sql was initially added on branch oacs-5-10.

    • -0
    • +0
    ./postgresql/upgrade/upgrade-5.10.0d29-5.10.0d29.sql
Added index on foreign key column to reduce sequential reads on delete

operations, since the optimizer brain fart ((c)Don Baccus) that existed

17 years ago in pg 7.2 seems to be gone

(https://openacs.org/forums/message-view?message_id=142769)

    • -0
    • +4
    ./postgresql/upgrade/upgrade-5.10.0d27-5.10.0d28.sql
  1. … 1 more file in changeset.
file upgrade-5.10.0d27-5.10.0d28.sql was initially added on branch oacs-5-10.

    • -0
    • +0
    ./oracle/upgrade/upgrade-5.10.0d27-5.10.0d28.sql
    • -0
    • +0
    ./postgresql/upgrade/upgrade-5.10.0d27-5.10.0d28.sql
add editor hints, whitespace changes

    • -177
    • +184
    ./postgresql/groups-body-create.sql
    • -63
    • +69
    ./postgresql/site-nodes-create.sql
whitespace changes

    • -148
    • +148
    ./postgresql/groups-body-create.sql
    • -86
    • +85
    ./postgresql/site-nodes-create.sql
- Convert frequenty used functions from plpgsql

to strict and stable SQL functions, which allow

the PostgreSQL more optimizations

* acs_group__member_p/3

* site_node__url/1

- bump version number to 5.10.0d27

    • -17
    • +20
    ./postgresql/groups-body-create.sql
    • -0
    • +59
    ./postgresql/upgrade/upgrade-5.10.0d26-5.10.0d27.sql
  1. … 1 more file in changeset.
file upgrade-5.10.0d26-5.10.0d27.sql was initially added on branch oacs-5-10.

    • -0
    • +0
    ./postgresql/upgrade/upgrade-5.10.0d26-5.10.0d27.sql
Attribute discrepancy fix for object_types in OpenACS.

Some attributes are not created for new instances since 2006, but an upgrade

script deleting the already existing ones was never done.

Original datatype change:

https://fisheye.openacs.org/changelog/OpenACS?cs=MAIN%3Avictorg%3A20060727200933

https://github.com/openacs/openacs-core/commit/7e30fa270483dcbc866ffbf6f5cf4f30447987cb

    • -0
    • +57
    ./oracle/upgrade/upgrade-5.10.0d25-5.10.0d26.sql
    • -0
    • +60
    ./postgresql/upgrade/upgrade-5.10.0d25-5.10.0d26.sql
  1. … 1 more file in changeset.
file upgrade-5.10.0d25-5.10.0d26.sql was initially added on branch oacs-5-10.

    • -0
    • +0
    ./oracle/upgrade/upgrade-5.10.0d25-5.10.0d26.sql
    • -0
    • +0
    ./postgresql/upgrade/upgrade-5.10.0d25-5.10.0d26.sql
Add oracle upgrade logic for previous attribute datatype discrepancy package upgrades, and fix typo in postgres upgrade script

    • -0
    • +18
    ./oracle/upgrade/upgrade-5.10.0d24-5.10.0d25.sql
    • -1
    • +1
    ./postgresql/upgrade/upgrade-5.10.0d24-5.10.0d25.sql
  1. … 1 more file in changeset.
file upgrade-5.10.0d24-5.10.0d25.sql was initially added on branch oacs-5-10.

    • -0
    • +0
    ./oracle/upgrade/upgrade-5.10.0d24-5.10.0d25.sql
Fix attribute datatype discrepancy, introduced in 2006 but never fixed for already existing instances.

Original datatype change:

https://fisheye.openacs.org/changelog/OpenACS?cs=MAIN%3Avictorg%3A20060727200933

https://github.com/openacs/openacs-core/commit/7e30fa270483dcbc866ffbf6f5cf4f30447987cb

    • -0
    • +18
    ./postgresql/upgrade/upgrade-5.10.0d24-5.10.0d25.sql
  1. … 3 more files in changeset.
file upgrade-5.10.0d24-5.10.0d25.sql was initially added on branch oacs-5-10.

    • -0
    • +0
    ./postgresql/upgrade/upgrade-5.10.0d24-5.10.0d25.sql
Index acs_object's creation and modification date

    • -0
    • +4
    ./postgresql/upgrade/upgrade-5.10.0d23-5.10.0d24.sql
  1. … 1 more file in changeset.
file upgrade-5.10.0d23-5.10.0d24.sql was initially added on branch oacs-5-10.

    • -0
    • +0
    ./postgresql/upgrade/upgrade-5.10.0d23-5.10.0d24.sql