OpenNIT

Quelltext des aktuellen Standes

Fassung 1.1.1

202_audit_canonical_anchor.sql

1 KB
-- ============================================================
-- Audit-Log: signierte Grenze der kanonischen Prüfsummen
-- ============================================================
-- Die Prüfsumme eines Audit-Eintrags geht über seine JSON-Felder. Ab dieser
-- Grenze werden diese Felder in kanonischer Schreibweise signiert, damit die
-- Prüfsumme den Inhalt belegt und nicht die Formatierung, in der die Datenbank
-- den Wert zurückliefert. Unterhalb der Grenze gilt zusätzlich die frühere
-- Rohtext-Form.
--
-- boundary_id wird beim ersten kanonisch signierten Schreibvorgang gesetzt und
-- mit dem Anwendungsschlüssel signiert, damit sie sich ohne Geheimnis nicht
-- verschieben lässt.
-- Idempotent: CREATE TABLE IF NOT EXISTS, kein Dateninhalt.

CREATE TABLE IF NOT EXISTS `audit_canonical_anchor` (
    `id` TINYINT UNSIGNED NOT NULL DEFAULT 1,
    `boundary_id` BIGINT UNSIGNED NOT NULL COMMENT 'Letzter Eintrag vor der kanonischen Signatur',
    `signature` CHAR(64) NOT NULL COMMENT 'HMAC-SHA-256 der Grenze mit APP_KEY',
    `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;