Secure TransferVerifiable record integrity · PostgreSQL · Viktor Khudiaiev
Open live lab

A database row should not be enough to move money.

Secure Transfer adds an authenticated path from a payment instruction to its execution. It addresses one specific risk: an attacker can change the primary transaction database, but must not turn those changes into an unauthorized transfer.

01 · THE PROBLEM

SQL access can bypass the application

A database administrator or intruder can insert a fake transfer, change the recipient or replace the amount. If processing trusts that row, a database edit can become a debit.

02 · THE CONTROL

Keep independent evidence of the authorized content

A separate key service authenticates the exact operation with an HMAC tag and saves an independent receipt. Someone controlling only the primary database cannot issue that tag or rewrite the receipt.

03 · THE EXECUTION

Check the exact instruction before changing balances

The processor checks the receipt and MAC, reads the source again, and executes only the checked snapshot. Audit/Protected DB commits both sides of the transfer together and prevents a second debit on retry. Java performs the calculations; the database enforces atomic storage.

04 · THE RESULT AND ITS LIMIT

A changed row does not automatically authorize a payment

A fabricated instruction is quarantined without postings. This guarantee assumes that the application, key service, processor, Audit/Protected DB and local host remain trusted. It does not protect a compromised whole computer or hide database contents.

Run a real local experiment

This document opens directly from disk, without a server or application. The live lab uses simulated money and dedicated accounts. A suspected integrity incident also queues a minimal email alert in protected storage. Local Mailpit captures that alert for inspection; it does not deliver to Gmail. Evidence below separates the latest failed throughput gate from historical successful runs and notification checks.