Security, recovery & customer care

Layered account protection with human support that respects the security boundary.

Triplem VIP combines hashed account credentials, optional Authenticator App 2FA, protected Smart PIN and recovery, explicit Web Push consent, visitor Live Support and authenticated in-app care while keeping each trust boundary deliberately separate.

bcrypt passwords Encrypted Authenticator 2FA Hashed recovery codes Protected Smart PIN Visitor Live Support Authenticated in-app care

Verification without exposing existing permanent secrets.

Current account authentication separates passwords, sessions, Remember Me persistence and workspace ownership into distinct security controls.

Protection layer

Password hashing and managed users

Current password authentication verifies PostgreSQL pgcrypto-backed bcrypt hashes. Password changes replace the stored hash rather than disclosing the old permanent secret.

  • One-way bcrypt verification
  • No normal readable-password account view
  • Password replacement rather than recovery of the old secret
Protection layer

Opaque, revocable sessions

Application sessions are server-side records with expiry and revocation state. The active browser credential is represented by a server-side hash rather than stored as a readable live token.

  • Expiry and revocation state
  • Logout can revoke active access
  • Session boundary remains distinct from user identity
Protection layer

Protected Remember Me

When chosen, returning credentials are stored in an AES-GCM encrypted browser envelope using Web Crypto and a non-exportable IndexedDB key.

  • AES-GCM browser envelope
  • Non-exportable local key
  • Durable persistence removed when not requested
Protection layer

Owner-scoped workspace

Financial records remain associated with the authorized account context and database access path instead of becoming public client state.

  • Account-aware data access
  • Database ownership controls
  • Support access remains a separate boundary

A second factor is verified before a normal session is created.

When enabled, a correct password creates only a short-lived challenge. A valid Authenticator code or unused recovery code is still required before full workspace entry.

Secret protection

AES-256 encrypted TOTP secret

The Authenticator enrollment secret is encrypted server-side with pgcrypto because restricted verification code must be able to reproduce TOTP values.

Recovery material

Hashed recovery codes

Recovery codes are normalized, bound to the user and stored as SHA-256 hashes rather than readable copies.

Challenge boundary

Short-lived challenges

2FA login challenges expire and carry attempt controls, reducing the usefulness of a stale challenge token.

One-time recovery

Consumed recovery codes

A recovery code that verifies successfully is marked consumed so the same value cannot be reused.

Recovery is structured around verification and replacement, not disclosure.

Smart PIN protection, 2FA recovery and administrator-issued temporary passwords use separate guarded paths.

Smart PIN verification uses a username-bound SHA-256 hash and server-managed failure counters with progressive lockout tiers. Normal user profile responses do not expose the stored Smart PIN hash.

When 2FA is enabled, supported Smart PIN and password recovery can verify an Authenticator code or an unused recovery code. Where administrator-assisted recovery is needed, an authorized administrator can issue a high-entropy temporary password that replaces the old hash, revokes previous sessions and forces creation of a new permanent password before ordinary workspace entry.

Public visitor care and authenticated user support are deliberately different channels.

Support can guide a visitor or registered user without requiring disclosure of passwords, Smart PINs, Authenticator secrets or recovery codes.

Public Live Support

A visitor support session uses a guest capability rather than pretending the visitor is an authenticated account holder.

Authenticated Agent context

Representative actions remain tied to authenticated support context and assignment rules.

Transfer continuity

Conversation transfers use explicit states while keeping the inquiry history attached to the same support thread.

Authenticated in-app support

Registered businesses and individuals can use private in-app support messaging through a separate signed-in support channel where enabled.

AI-to-Agent support

Automated guidance can assist product questions while privileged actions remain behind normal authorization boundaries.

Core secrets stay private

Support does not require a permanent password, Smart PIN, Authenticator enrollment secret or recovery code.

A device permission and an account preference should not be synchronized the same way.

Push subscriptions belong to a browser or device, while a visual theme can safely follow an authenticated account across browsers.

Device-scoped

Notification preference

The consent prompt is remembered locally after presentation. Users can later change the browser-level notification switch without altering another device.

Account-scoped

Workspace theme

The selected theme is stored in the existing authenticated account settings and restored after sign-in elsewhere without changing finance records.

Formal Accounting can be enabled only for the users who need it.

The main administrator controls whether the Accounting workspace appears for each user, adding a role-aware boundary around double-entry books, journals, receivables, payables, reconciliation, tax and reports.

Per-user enablement

Accounting can be turned on for a user whose work requires formal books without exposing the module to every account automatically.

Hidden when disabled

When Accounting access is off, the Accounting tab is not shown for that user and the related permission path remains restricted.

Posted-history controls

Inside Accounting, posted journals are protected from ordinary editing and the owner can use Books Lock Date to protect finalized periods.

Data-safety boundary

Enabling Accounting does not silently rewrite legacy Expenses, Wallets, Inventory, Assets or Loans into journal entries. The present separation preserves existing user records and workflows while formal Accounting can be introduced deliberately.

Clear answers at the trust boundary.

These answers distinguish hashing, encryption, authentication, browser permissions and support access.

Does Triplem VIP store readable passwords?

No. Current password authentication verifies pgcrypto-backed bcrypt hashes. Recovery replaces the hash rather than revealing the existing permanent password.

How is the Authenticator App secret protected?

The TOTP secret is encrypted server-side with AES-256 and is decrypted only inside restricted verification functions that need it.

What happens to 2FA recovery codes?

The server stores SHA-256 hashes bound to the account rather than readable recovery-code copies. A successfully used code is consumed.

Can support ask me for my password or recovery code?

No support workflow requires disclosure of a permanent password, Smart PIN, Authenticator enrollment secret or recovery code.

Why is notification preference local while theme preference syncs?

Browser push subscriptions are device-specific permissions, while a visual theme is an account presentation preference that can be restored after authentication.

Where can I read the deeper architecture?

The Technical Security & Infrastructure page explains database, session, permission, 2FA, Smart PIN, Live Support, offline and Bitcoin trust boundaries in more detail.